*WHEN/*ENDWHEN

Структура WHEN / ENDWHEN работает так же, как структура SELECTCASE / ENDSELECT, с операторами *REC( ), которые создают новые записи.

Они имеют следующий синтаксис:

*WHEN {criteria}

*IS [=]{value1}[,{value2},…] | <>{value}

*REC(FACTOR={Real number}|EXPRESSION={Expression}[,{dim1}={member},{dim2}=…])

[ *REC(FACTOR={Real number}|EXPRESSION={Expression}[,{dim1}={member},{dim2}=…])]

[*ELSE]

*ENDWHEN

где

{criteria} - объект тестирования. Обычно это свойство текущего элемента измерения. Используется синтаксис DimensionName.Property | DimensionName, например *WHEN ACCOUNT.RATETYPE. Если свойство не указано, предполагается свойство идентификатора. Например, *WHEN ACCOUNT equals to *WHEN ACCOUNT.ID.

{ValidCondition} - одно или несколько значений, соответствующих критериям. Можно заключить их в двойные кавычки, чтобы они обрабатывались как строки. Пропустите кавычки, если они представляют числовые значения. Например:

*IS "AVG","END"

*IS 10,20,30

Если оператор не указан, утверждение *IS предполагает наличие знака равенства (*IS = "AVG", "END").

{value} должно быть только литералами, а не переменными. Поэтому следующий пример не поддерживается:

*IS dimension.property

Примечание

Между двумя символами оператора знака неравенства (<>) не должно быть пробела. Между операторами и значением можно вставить один или несколько пробелов.

Если используется знак неравенства (<>), можно передать только одно значение. Поэтому синтаксис *IS <> 2,3,4 недействителен.

Другие операторы отношения, такие как AND, OR и NOT, в настоящее время не поддерживаются.

Вложение WHEN / ENDWHEN

Структуры WHEN / ENDWHEN можно делать вложенными с использованием любого количества уровней и в любой последовательности, как показано в следующем примере:

*WHEN xxx

*IS "A"

*REC(…)

*REC(…)

*IS "B"

*REC(…)

*WHEN yyy

*IS "C","D","E"

*REC(…)

*ELSE

*REC(…)

*ENDWHEN

*ENDWHEN

Любое кодирование программного обеспечения и/или строки текста программы ("Код"), включенные в эту документацию, являются только примерами и не предназначены для использования в среде продуктивной системы. Код предназначен лишь для лучшего объяснения и наглядного представления синтаксиса и правил построения выражений в определенном кодировании. SAP не гарантирует правильность и полноту приведенного здесь Кода. SAP не будет нести ответственность за ошибки и ущерб, возникшие по причине использования этого Кода, за исключением случаев, если такой ущерб нанесен со стороны SAP намеренно или по грубой неосторожности.