ZDOC_587

Забавное использование стратегии деривации – в качестве хранилища данных

Транзакция FMDERIVE может использоваться как хранилище данных настроек.

    В первую очередь для того, чтобы не плодить Z-таблицы. Причем можно использовать и в целях не связанных с модулем FM.

В качестве минусов, конечно, можно отметить:

  • Нецелевое использование функциональности
  • Сложность распределения прав

В ней очень удобно хранить некоторые данные – полей в структуре достаточно много, разрешены диапазоны, сроки действия, выстроена система переноса.

Примеры использования:

  • Соответствие МВЗ и счетов затрат
  • Список допустимых комбинаций Счет + МВЗ + Заказ
    Для этого заходим в транзакцию FMDERIVE и создаём там новую стратегию:

    image

    Конечно ни к каким балансовым единицам её привязывать не нужно.

    В рамках этой стратегии создаём новый шаг – правило деривации:

    image

    В данном случае я задаю три исходных поля и одно целевое в качестве пустышки (требуется хотя бы одно поле).

    Затем приступаем к заполнению данными:

    image

    Используем при необходимости диапазоны и сроки действия.

    Ну и остался момент для того, чтобы использовать эту таблицу в собственном коде.

    Сначала заглянем в таблицу TABADRS и ищем запись нашего шага стратегии:

    image

    PARAM_1 – это сгенерированная таблица где хранятся наши данные:

    image

    PARAM_2 – это инклюд с подпрограммами доступа к этой таблице, использовать ли его – дело вкуса.

    Вот на основании всего этого и пишем наш собственный код

    Сначала определения и инициализация:

    image

    И далее код вытягивания данных и реакции на результат:

    image

    Остаётся только попробовать в реальной работе…да и варианты использования можно ещё придумать…