Определение инструкций и процедур бизнес-правил Flex

В системе можно задать инструкции Flex SQL, чтобы определить правила проверки, относящиеся именно к вашей организации. Можно задать одну или несколько инструкций, которые будут обрабатываться для событий post-insert или post-update.

Обработка Flex SQL поддерживает инструкции запроса данных (select) и обработки данных (insert, update, delete). Используйте инструкции select для выполнения проверки условия.

В инструкциях SQL разрешены символы верхнего и нижнего регистра. Однако маркер идентификатора строки должен указываться либо только прописными, либо только строчными буквами (например, :ROWID или :rowid).

Для каждой инструкции Flex SQL нужно использовать предварительно заданный маркер :ROWID. Этот маркер ссылается на идентификатор строки базы данных для получения обрабатываемой записи из указанной таблицы. Инструкция выполняется для каждой записи в таблице, на которую влияет операция вставки (insert) или обновления (update).

Максимальная длина инструкции составляет 4000 символов. Не требуется символ окончания инструкции (;).

Инструкции обработки данных разрешены, но убедитесь, что не начинаете бесконечный каскад действий триггера. Например, в общем случае не рекомендуется создавать инструкцию Flex SQL, которая обновляет базовую таблицу, указанную в поле «Таблица».

Примечание. 

Infor рекомендует определять процедуры работы с процедурами Flex SQL в тесном сотрудничестве с консультантом Infor EAM.

  1. Нажмите «Администрирование» > «Конфигурация экранов» > «Бизнес-правила Flex».
  2. В поле «Таблица» укажите таблицу, для которой нужно определить инструкции и процедуры Flex SQL.
  3. Нажмите «Добавить Flex SQL».
  4. Укажите описанную далее информацию.
    Порядковый номер
    Укажите порядок обработки Flex SQL.
    Триггер
    Укажите операцию базы данных, которая запускает данное событие. Система поддерживает триггеры после вставки и после обновления.
    Инструкция SQL
    Укажите инструкцию SQL, которая должна выполняться, когда для таблицы выполняется указанная операция.
    Сообщение об отказе
    Укажите сообщение, которое нужно вывести на экран при сбое инструкции Flex SQL. Инструкция Flex SQL считается успешно выполненной, когда она обработала одну или несколько строк в таблице. Сбой инструкции Flex SQL — это ситуация, когда не удается обработать ни одну строку. Чтобы активировать сообщение о неполадке, установите флажок «Прервать при сбое».
    Комментарии
    Укажите описание цели инструкции Flex SQL.
  5. Можно установить флажок «Должен существовать», чтобы обработчик Flex SQL прекращал обработку дальнейших инструкций Flex SQL, если текущая инструкция не может обработать ни одну строку.
  6. Можно установить флажок «Прервать при сбое», чтобы останавливать выполнение текущей операции в случае сбоя и выводить сообщение об ошибке.
  7. Можно установить флажок «Обратить возвращаемый код», чтобы автоматически менять возвращаемый код статуса на противоположный для текущей инструкция Flex SQL. Если этот флажок установлен и инструкция обрабатывает одну или несколько строк, то обработчик возвращает статус сбоя. Если же инструкции не удается обработать ни одну строку, то обработчик возвращает статус успешного выполнения.
  8. Можно установить флажок «Активно», чтобы активировать данную инструкцию Flex SQL.
  9. Нажмите «Тест Flex SQL», чтобы убедиться в том, что текущая инструкция Flex SQL действительна. Если инструкция содержит ошибки (например, неверный синтаксис), на экран выводится сообщение.
  10. Нажмите кнопку «Отправить».
    Далее приводятся примеры определений Flex SQL.
    Пример 1
    Укажите инструкции для проверки или изменения, которые дополняют стандартную обработку в Infor EAM. Например, вводить значение кода затрат не обязательно при создании заявки в Infor EAM. Если конкретная система зависит от использования кода затрат для получения значений сегментов счетов, то нужно определить инструкцию проверки, которая не позволяет изменять или вставлять заявки без значения кода затрат.

    В следующем примере приводится инструкция проверки, которая дополняет стандартную обработку создания заявки в Infor EAM.

    • Таблица
      Укажите R5REQUISITIONS.
    • Триггер
      Укажите POST-INSERT.
    • Порядковый номер
      Укажите 10.
    • Инструкция SQL
      Укажите следующую инструкцию SQL, которую нужно выполнить.
                           SELECT NULL
                           FROM R5REQUISITIONS
                           WHERE ROWID=:ROWID
                           AND REQ_COSTCODE IS NOT NULL
    • Сообщение об отказе
      Укажите Введите значение кода затрат.
    • Установите флажок «Должен существовать».
    • Установите флажок «Прервать при сбое».
    Пример 2
    Создайте строки для записей и транзакций, используемых для обмена данными с Oracle Financials, в таблице R5ACCOUNTDETAIL в Infor EAM на экране «Flex SQL».

    В следующем примере создаются строки для записей параметров счетов с использованием постоянных значений по умолчанию. Эта инструкция следует за инструкцией проверки из предыдущего примера, обеспечивающей ввод значений кода затрат при создании заявок. Порядковый номер определяет порядок, в котором выполняются инструкции Flex SQL.

    • Таблица
      Укажите R5REQUISITIONS.
    • Триггер
      Укажите POST-INSERT.
    • Порядковый номер
      Укажите 20.
    • Инструкция SQL
      Укажите следующую инструкцию SQL, которую нужно выполнить.
                           INSERT INTO R5ACCOUNTDETAIL
                           (ACD_CODE, ACD_RENTITY, ACD_SEGMENT1, ACD_SEGMENT2, ACD_SEGMENT3,
                           ACD_SEGMENT4)
                           SELECT REQ_ACD, 'REQ',
                           '01',
                           '000',
                           '000',
                           '0000'
                           FROM R5REQUISITIONS                      
                           WHERE ROWID=:ROWID
      
    • Сообщение об отказе
      Укажите Ошибка при создании параметров учета.
    • Установите флажок «Должен существовать».
    • Установите флажок «Прервать при сбое».
    • Установите флажок «Активно».

    В примере выше показана ссылка заявки на таблицу R5ACCOUNTDETAIL, для которой поле REQ_ACD уже заполнено. Infor EAM автоматически создает ключ параметров счета заявки. Нет необходимости создавать значение ключа параметров учета с использованием Flex SQL.

    Определение инструкций Flex SQL, которые нужно использовать в Infor EAM для параметров учета, зависит от того, какие модули Infor EAM и ERP интегрированы. Начинать следует с описания процесса закупок в целом. Затем нужно поработать с каждым набором транзакций, чтобы определить необходимость проверять и создавать счета. Они должны быть уникальными не только для каждого сценария интеграции, но также и для каждого клиента в рамках сценария. Поэтому крайне важно внимательно рассмотреть весь процесс в целом.