Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => Тема начата: themax от Октябрь 13, 2023, 08:06:25 am
-
Всем добрый день.
Много всякой инфы по автоматизации создания СПП элементов, но столкнулся со следующей проблемой. Есть программа пакетного ввода по созданию СПП элементов с помощью BAPI_PROJECT_MAINTAIN. Пакетник работает нормально. СПП элементы создаются. Возникла необходимость создания СПП элементов иерархически. В BAPI_PROJECT_MAINTAIN есть табличка i_wbs_hierarchie_table. Передаёшь туда нужные параметры и создаются СПП элементы с нужной иерархией, но это работает только тогда когда иерархия создаётся с нуля, если же пытаешься создать СПП элементы в уже существующей иерархии BAPI выдаёт ошибку The transfered hierarchy is inconsistent. Вот, собственно код, где я пытаюсь добавить СПП элемент в существующую иерархию. Не пойму, что не так?
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.
-
Нашёл ноту 1906715 - How to maintain table I_METHOD_PROJECT and I_WBS_HIERARCHIE_TABLE to create project and WBS with BAPI_PROJECT_MAINTAIN https://me.sap.com/notes/1906715/E (https://me.sap.com/notes/1906715/E).
Там есть пример заполнения таблицы I_WBS_HIERARCHIE_TABLE. Там пишется, что необходимо сначала считать всю существующую иерархию проекта в таблицу, затем добавить туда новую запись СПП элемента и передать эту таблицу в BAPI_PROJECT_MAINTAIN. Передаю эту заполненную табличку в BAPI_PROJECT_MAINTAIN. Система выдаёт такую же ошибку.
-
BAPI_PROJECT_SAVEREPLICA - А такой модуль пробовал для создания? Вроде как пишут что даля ALE создания, может будет лучше работать? Кстати попробуй сначала считать данные через BAPI_PROJECT_GETINFO а потом так же из засунуть в создание. Может что-то не правлиьно сам заоплняешь? А так считаешь и оно заоплнит тебе таблицы правильно. Или ты так и делаешь?
-
BAPI_PROJECT_SAVEREPLICA - А такой модуль пробовал для создания? Вроде как пишут что даля ALE создания, может будет лучше работать? Кстати попробуй сначала считать данные через BAPI_PROJECT_GETINFO а потом так же из засунуть в создание. Может что-то не правлиьно сам заоплняешь? А так считаешь и оно заоплнит тебе таблицы правильно. Или ты так и делаешь?
В общем пытался по разному. Наверное что то не так заполняю. Сначала считываю через BAPI_PROJECT_GETINFO. Затем пытаюсь втиснуть туда ещё одну запись типа
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 = 'WBS/01/02'.
APPEND gt_wbs_hier.
Если не получится буду пробовать другие BAPi, в том числе и BAPI_PROJECT_SAVEREPLICA. Правда придётся прогу переписывать, подумал может кто сталкивался с этим. В инете полно вопросов именно с этой ошибкой, но ни одного ответа.
-
В инете полно вопросов именно с этой ошибкой, но ни одного ответа.
А там код ошибки есть или просто ФМ отваливается?
-
А там код ошибки есть или просто ФМ отваливается?
Код ошибки CJ815 E The transfered hierarchy is inconsistent
-
В общем задолбался искать решение с BAPI BAPI_PROJECT_MAINTAIN. Протестировал BAPI_BUS2054_CREATE_MULTI, вроде бы понимает иерархию и всё создаёт без проблем. Подправил программу под этот BAPI. Вот пример https://sapforum.biz/index.php?topic=1978.0 (https://sapforum.biz/index.php?topic=1978.0)
-
В общем задолбался искать решение с BAPI BAPI_PROJECT_MAINTAIN. Протестировал BAPI_BUS2054_CREATE_MULTI, вроде бы понимает иерархию и всё создаёт без проблем. Подправил программу под этот BAPI. Вот пример https://sapforum.biz/index.php?topic=1978.0 (https://sapforum.biz/index.php?topic=1978.0)
Если работает то тоже неплохое решение.