Добрый день Всем.
Есть надобность в пакетнике сетевых графиков. Нашёл такой ФМ 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'.
Безрезультатно. Это как то связано с нумерацией сетевых графиков, но как это обойти? Может кто то, что то делал подобное?