Как мы можем использовать SAP-PI для последовательного выполнения команд sql и гарантировать выполнение каждой команды до остановки другой?

Я работаю над системой, которой необходимо загружать некоторые кодовые таблицы с использованием данных из SAP. Мы планировали использовать трехэтапный процесс:

  1. Обрезать промежуточные таблицы
  2. Загрузите промежуточные таблицы из SAP
  3. Объединить данные из промежуточных таблиц в активные таблицы

Один из моих коллег, который много работает с SAP (но не специально с SAP-PI), предположил, что мы могли бы сделать это с помощью SAP-PI, а не генерировать извлечения плоских файлов и разрабатывать процесс для анализа и загрузки плоских файлов. Разработчику SAP, с которым мы работаем, не очень удобно работать с адаптером JDBC SQL. В прошлом они использовали хранимые процедуры для получения данных и выполнения некоторых обновлений данных.

После того, как мы успешно протестировали прямую вставку в промежуточные таблицы (например, <TAB_LOAD action="INSERT">) Я попросил их выполнить тест всего процесса с использованием SAP-PI - т.е. они выполняют хранимую процедуру, которая усекает все промежуточные таблицы, затем они вставляют данные во все промежуточные таблицы и, наконец, они выполняют хранимую процедуру, которая объединяет данные. Они сказали мне, что могут выполнить все три шага, но не могли гарантировать, что они будут выполнены в том порядке, в котором я хотел. Я спросил, почему, и они объяснили, что все шаги 1, 2 и 3 будут запускаться и выполняться одновременно - не дожидаясь завершения предыдущего шага перед выполнением следующего. Я спросил, есть ли способ добавить логику для проверки результатов предыдущего шага перед выполнением следующего шага, и мне сказали, что этого нет. Мне объяснили это так:

Поскольку данные поступают из SAP и выходят, задача планируется в SAP, что не имеет логики. Он просто помещает запросы в очередь, где работник извлекает сообщения и отправляет их. Если данные поступают из внешнего источника (например, SQL), то задача планируется в SAP-PI. Очевидными последующими вопросами были: можете ли вы планировать задачи исходящих данных с помощью SAP-PI и позволяет ли SAP-PI использовать больше логики при планировании задач. Ответ был "Нет".

Итак, наш текущий обходной путь состоит в том, чтобы запланировать задание SQL для выполнения шага 1 во время x:xx и позволить буферу завершиться до того, как SAP выполнит запланированное задание для выполнения шага 2, вставив данные в промежуточные таблицы. Затем, по прошествии определенного времени в буфере, у нас есть еще одно задание SQL для выполнения шага 3, который объединяет данные. Было бы хорошо, если бы все это можно было делать последовательно в одной системе (например, SAP-PI). Кто-нибудь знает, как это сделать?

0 ответов

Другие вопросы по тегам