Николай написал(а):
Необходимо обрабатывать входящие айдоки не сразу кучей (сколько их там на сервере лежит), а по одному. Т.е. один обработался - второй всосался.
То, что вы хотите, наиболее логично организовать с помощью выбора "Collective processing" в WE20 и потом периодически гонять программу RBDAPP01 без parallel processing и с Packet size = 1.
Но тут есть такая фишка, что RBDAPP01 фактически только инициирует последовательную обработку IDoc'oв (т.е. вызывает соответствующие функции и т.п. в SAP), а вот в процессе уже возможны сюрпризы, т.к. некоторые locks убираются до того, как IDoc полностью закончил обработку. В результате получаем IDoc # 1 со статусом ОК, а следующий IDoc # 2 со статусом 51 и какой-нибудь "data locked by...". Т.е. фактически обработка # 1 еще крутится где-то там на фоне, а RBDAPP01 думает, что там уже все покончалось и смело запускает # 2. Можно попробовать поиграть настройками в BD51 (
информация о них весьма скупая), но не факт, что это поможет. Скорее всего будет просто медленнее.
Жаловались в SAP (если не выбран parallel processing в RBDAPP01, то почему
de facto он происходит?), те нас долго футболили, а потом заявили, что это дизайн такой, "to preserve data integrity". Посоветовали выставить late lock на ОМ, а мы уже давно выставили и это все равно не помогает.
Так что если найдете решение, кроме как написания собственной программы обработки, - свистните.