*COMMIT

Файл логики может содержать формулы, которые зависят от результатов расчетов, выполненных моделью, а эти расчеты, в свою очередь, зависят от результатов других формул в той же логике.

Пример

[P_ACCT].[#CE0004030] = ( [P_ACCT].[CE0004010] + [P_ACCT].[CE0004020] ) * 0.15

[P_ACCT].[#CE0661000] =

( [P_ACCT].[CE0004010] + [P_ACCT].[CE0004020] + [P_ACCT].[#CE0004030] ) / [P_ACCT].[CE0652000]

В этом примере CE0661000 зависит от первого расчета, а этот расчет, в свою очередь, зависит от расчета CE0004030.

Логика, если она написана в упомянутом выше формате, не работает правильно, потому что CE0004030 нельзя извлечь из модели, пока его результат не передан в модель. Для получения правильных результатов CE0004030 должен быть рассчитан и сохранен в модели. Только затем рассчитанный результат может быть получен из модели и использован для расчета CE0661000.

Чтобы инициировать принудительную обратную запись результата расчета CE0004030 в модель перед расчетом CE0661000, можно вставить между этими двумя расчетами инструкцию *COMMIT. Тогда логика работает, если написана следующим образом:

Пример

[P_ACCT].[#CE0004030] = ( [P_ACCT].[CE0004010] + [P_ACCT].[CE0004020] ) * 0.15

*COMMIT

[P_ACCT].[#CE0661000] =

( [P_ACCT].[CE0004010] + [P_ACCT].[CE0004020] + [P_ACCT].[CE0004030] ) / [P_ACCT].[CE0652000]

В этом случае CE0004030 во второй формуле не имеет знака решетки (#), поскольку является сохраненной величиной, считываемой из модели.

Примечание

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

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