[ERP-системы] Зачем в ABAP нужен оператор SET UPDATE TASK LOCAL

Автор Сообщение
news_bot ®

Стаж: 6 лет 7 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
12-Авг-2020 16:38

И что делать, если после вызова стандартного BAPI оператор COMMIT WORK AND WAIT не дожидается выполнения всех V1-модулей обновления.
Проблема синхронизации модулей обновления
В системе SAP R/3 для транзакционного сохранения дополнительных данных, связанных с основными, используются модули обновления. Более подробно об этом можно почитать, например, здесь.
Для консистентности данных после сохранения необходимо дождаться выполнения модулей типа V1. В общем случае это достигается выполнением команды COMMIT WORK AND WAIT.
В тексте некоторых стандартных функциональных модулей BAPI вызывается COMMIT WORK. После выполнения такого ФМ-а вы не сможете убедиться в завершенности процесса сохранения никакими простыми командами. Некоторые программисты для решения этой проблемы пишут какие-то сложные запросы к таблице VB или ждут ничем не обоснованные n секунд. Все намного проще.
SET UPDATE TASK LOCAL приходит на помощь
Если кратко — он запускает локальный режим выполнения для V1-модулей обновления. Режим активируется для V1-модулей обновления, зарегистрированных с момента вызова оператора и до момента завершения текущего DB LUW-а. При этом V1-модули:
  • сохраняются в ABAP-memory, а не в таблицу обновлений VB;
  • выполняются в текущем процессе, а не в параллельном;
  • синхронизируются оператором COMMIT WORK.

То есть при вызове COMMIT WORK программа будет ждать, пока выполнятся модули обновления типа V1, зарегистрированные локально. Разница показана на рисунке:

Итого SET UPDATE TASK LOCAL пригодится, если вы не можете управлять оператором COMMIT WORK и хотите дождаться выполнения всех V1-модулей для какого-то процесса.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_erpsistemy (ERP-системы), #_abap, #_abap_sap, #_erpsistemy (
ERP-системы
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 05-Окт 14:51
Часовой пояс: UTC + 5