Мы пытаемся реализовать Правило включения сборки в JD Edwards EnterpriseOne 9.1, используя вычисляемую таблицу, которая возвращает несколько сегментов. Кажется, что он работает нормально, когда в таблице есть допустимая запись для входных сегментов, но когда задан неправильный ввод, возвращаемые сегменты кажутся пустыми, а не обычным символом ошибки.

В большинстве случаев это нормально, но если я хочу использовать это возвращаемое значение в межсегментном правиле редактирования для обнаружения ошибки, он не отвечает на сравнение его с * BLANK.

Пример:

  • У меня есть таблица, использующая 3 входа и 2 выхода.
  • Один из выходных данных является цветным и помещается в вычисляемый сегмент.
  • Если входные данные верны, они будут найдены в таблице, и мы можем использовать вычисленный цветовой сегмент для создания умной детали.
  • Если введенные данные неверны, я хочу отобразить сообщение об ошибке для пользователя. Ранее мы использовали возвращаемое значение 1 (ошибка) в правиле редактирования перекрестных сегментов. Теперь, когда оно пустое, как мне проверить его?

1 ответ1

0

Возвращаемое значение на самом деле пустое, или, что еще лучше, «не меняйте то, что было».

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

Для таблиц расчета это может быть проблемой, поскольку нет способа обнаружить ошибку. Если только вы сами не установите флаг ошибки.

Возвращаясь к примеру в вопросе, предположим, что три входных сегмента - это S1, S2 и S3, и давайте предположим, что выходные сегменты - это S101 и S102. Расчетная таблица имеет название C.0001.

Самый простой способ - сделать настроенный элемент однопроходным. Это работает сразу, но это устаревшая функция, поэтому мы попытаемся использовать статический расчет.

Мы хотим запустить правило, когда один из входных сегментов изменяется, и установить выходные сегменты в "error" перед вызовом таблицы расчетов. Мы проверяем входные сегменты, сравнивая их со значением, которое они никогда не получат, или даже * BLANK (кажется, пока они появляются в тесте, это работает).

Итак, вот правила C, которые мы используем, чтобы заставить все это работать:

I ( S1   NE 'XYZ'
O   S2   NE 'XYZ'
O   S3   NE *BLANK )
*   S101 EQ 1
*   S102 EQ 2
*              C.0001

Кажется, это работает во всех случаях, которые мы тестировали. Дайте мне знать, если есть обстоятельства, в которых это не работает, или вы знаете лучший способ сделать это!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .