SAPфорум.RU https://sapboard.ru/forum/ |
|
BAPI для пакетника сетевых графиков https://sapboard.ru/forum/viewtopic.php?f=9&t=100317 |
Страница 1 из 1 |
Автор: | Maksimka [ Чт, мар 30 2023, 14:55 ] |
Заголовок сообщения: | BAPI для пакетника сетевых графиков |
Добрый день Всем. Есть надобность в пакетнике сетевых графиков. Нашёл такой ФМ BAPI_BUS2002_CREATE. Вроде как позволяет создавать заголовки сетевых графиков. Мне в общем то достаточно. Создал Проект и СПП элемент к нему. Далее программно пытаюсь создать сетевой график. Code: data: it_bapi_bus2002_new type standard table of bapi_bus2002_new, wa_bapi_bus2002_new type bapi_bus2002_new, it_bapiret2 type standard table of bapiret2, wa_bapiret2 type bapiret2. clear : wa_bapi_bus2002_new. wa_bapi_bus2002_new-project_definition = 'OP23070'. wa_bapi_bus2002_new-wbs_element = 'OP230701'. wa_bapi_bus2002_new-short_text = 'Сетевой график OP230701'. wa_bapi_bus2002_new-network_type = 'PS07'. wa_bapi_bus2002_new-plant = '3000'. " wa_bapi_bus2002_new-mrp_controller = '100'. call function 'BAPI_PS_INITIALIZATION'. call function 'BAPI_BUS2002_CREATE' exporting i_network = wa_bapi_bus2002_new tables et_return = it_bapiret2. loop at it_bapiret2 into wa_bapiret2 where type ca 'AE'. message id wa_bapiret2-id type wa_bapiret2-type number wa_bapiret2-number into wa_bapiret2-message with wa_bapiret2-message_v1 wa_bapiret2-message_v2 wa_bapiret2-message_v3 wa_bapiret2-message_v4. write:/ 'Ошибка',wa_bapiret2-message. endloop. if sy-subrc eq 0. call function 'PS_FLAG_INIT_GLOBAL_FLAGS'. call function 'PS_FLAG_SET_GLOBAL_FLAGS' exporting i_precommit_ok = 'Y'. endif. check sy-subrc ne 0. call function 'BAPI_PS_PRECOMMIT' tables et_return = it_bapiret2. loop at it_bapiret2 into wa_bapiret2 where type ca 'AE'. message id wa_bapiret2-id type wa_bapiret2-type number wa_bapiret2-number into wa_bapiret2-message with wa_bapiret2-message_v1 wa_bapiret2-message_v2 wa_bapiret2-message_v3 wa_bapiret2-message_v4. write:/ 'Ошибка:',wa_bapiret2-message. endloop. if sy-subrc eq 0. call function 'BAPI_TRANSACTION_ROLLBACK' importing return = it_bapiret2. call function 'PS_FLAG_INIT_GLOBAL_FLAGS'. call function 'PS_FLAG_SET_GLOBAL_FLAGS' exporting i_precommit_ok = 'Y'. else. call function 'BAPI_TRANSACTION_COMMIT' exporting wait = 'X' importing return = wa_bapiret2. write:/ 'Уведомление:',wa_bapiret2-message. * endif. В итоге создаёт сетевой график. Система присваивает сетевому графику внутренний номер OP3070. И тут возникает проблема. При попытке создания ещё одного сетевого графика bapi ругается и возвращает Code: Ошибка Объект Сетевой график создать было невозможно Ошибка Сетевой график/заказ с номеромомер OP3070 уже существует Т.е. система пытается опять создать сетевой график с этим же номером. Когда это делаешь через транзакцию CJ20N система говорит о том, что сетевой график с таким номером уже существует и предлагает в ручную ввести номер следующего сетевого графика. Введя следующий по порядку номер, график создаётся. Пытался добавить в BAPI в ручную следующий номер сетевого графика, там есть поле. Code: wa_bapi_bus2002_new-network = 'OP3071'. Безрезультатно. Это как то связано с нумерацией сетевых графиков, но как это обойти? Может кто то, что то делал подобное? |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |