*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 намеренно или по грубой неосторожности.