Всем добрый день.
Много всякой инфы по автоматизации создания СПП элементов, но столкнулся со следующей проблемой. Есть программа пакетного ввода по созданию СПП элементов с помощью BAPI_PROJECT_MAINTAIN. Пакетник работает нормально. СПП элементы создаются. Возникла необходимость создания СПП элементов иерархически. В BAPI_PROJECT_MAINTAIN есть табличка i_wbs_hierarchie_table. Передаёшь туда нужные параметры и создаются СПП элементы с нужной иерархией, но это работает только тогда когда иерархия создаётся с нуля, если же пытаешься создать СПП элементы в уже существующей иерархии BAPI выдаёт ошибку The transfered hierarchy is inconsistent. Вот, собственно код, где я пытаюсь добавить СПП элемент в существующую иерархию. Не пойму, что не так?
Code:
gs_def_upd-project_definition = 'X'.
gs_def_upd-description = 'X'.
* Project definition
gs_def-project_definition = 'Project'.
gt_method-refnumber = '000001'.
gt_method-objecttype = 'WBS-ELEMENT'.
gt_method-METHOD = 'CREATE'.
gt_method-objectkey = 'WBS/01/03'.
APPEND gt_method.
gt_method-refnumber = space.
gt_method-objecttype = 'WBS-HIERARCHY'.
gt_method-METHOD = 'CREATE'.
gt_method-objectkey = space.
APPEND gt_method.
gt_method-refnumber = space.
gt_method-objecttype = space.
gt_method-METHOD = 'SAVE'.
gt_method-objectkey = space.
APPEND gt_method.
gt_wbs-project_definition = 'Project'.
gt_wbs-wbs_element = 'WBS/01/03'.
gt_wbs-description = 'Иерархия 1.3'.
gt_wbs-wbs_planning_element = 'X'.
gt_wbs-comp_code = 'CC'.
gt_wbs-plant = '3000'.
gt_wbs-respsbl_cctr_controlling_area = '2000'.
gt_wbs-respsbl_cctr = 'CC-01'.
APPEND gt_wbs.
gt_wbs_hier-project_definition = 'Project'.
gt_wbs_hier-wbs_element = 'WBS/01/03'.
gt_wbs_hier-UP = 'WBS/01'.
gt_wbs_hier-down = space.
gt_wbs_hier-right = space.
gt_wbs_hier-LEFT = space.
APPEND gt_wbs_hier.
CALL FUNCTION 'BAPI_PROJECT_MAINTAIN'
EXPORTING
i_project_definition = gs_def
i_project_definition_upd = gs_def_upd
TABLES
i_method_project = gt_method
i_wbs_element_table = gt_wbs
i_wbs_hierarchie_table = gt_wbs_hier
e_message_table = gt_message.
IF gt_message[] IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.