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

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

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

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

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

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

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

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

    image

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

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

    image

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

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

    image

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

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

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

    image

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

    image

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

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

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

    image

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

    image

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

    2 комментария

    1. Для контроллинговых контировок можно использовать стандартную транзакцию:
      OKB9 — Изменение АвтоматПрисвоенКонтировок.
      (Для ведения большого числа записей можно делать LSMW используя «Позиционирование»).

      Ещё можно использовать FI-CO замещения и проверки в т.ч. писать свои расширения для них.
      GGB0 — Обработка проверок
      GGB1 — Обработка замещений

      В случае если меняется состав полей (исходных либо целевых) таблица деривации перегенерируется, да и переносом деривации можно затереть.
      Посмотреть название таблицы деривации можно также если провалиться в шаг деривации и выбрать функцию «Обзор» (Shift+F6). Дело в том, что порядковый номер правила может быть изменен. Например, Ваше фиктивное правило стоит 30-м, а нужно добавить 2 правила перед 10-м. Т.о., такие правила должны быть неактивными и стоять самыми первыми, чтобы не возникла необходимость их двигать.

    Добавить комментарий

    Ваш адрес email не будет опубликован.