SAPфорум.RU https://www.sapboard.ru/forum/ |
|
Проблема при вызове BAPI_BUS2054_CREATE_MULTI https://www.sapboard.ru/forum/viewtopic.php?f=13&t=53289 |
Страница 1 из 1 |
Автор: | slim [ Пт, сен 11 2009, 06:19 ] |
Заголовок сообщения: | Проблема при вызове BAPI_BUS2054_CREATE_MULTI |
Здравствуйте коллеги. Подскажите, пожалуйста, есть ли альтернативная функция BAPI_BUS2054_CREATE_MULTI??? Заранее спасибо. |
Автор: | John Doe [ Пт, сен 11 2009, 22:38 ] |
Заголовок сообщения: | Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI |
Альтернативы нет. Проблема в чем? |
Автор: | slim [ Пн, сен 14 2009, 04:26 ] |
Заголовок сообщения: | Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI |
John Doe написал: Альтернативы нет. Проблема в чем? При вызове функции BAPI_BUS2054_CREATE_MULTI она вылетает в Дамп, если в структуре CI_PRPS есть поля типа CURR, NUM. Пропускает только типы CHAR, DATS и CUKY. А чем отличается функция BAPI_BUS2054_CREATE_MULTI от BAPI_PROJECT_MAINTAIN. BAPI_PROJECT_MAINTAIN при тех же условиях отрабатывает нормально. |
Автор: | John Doe [ Пн, сен 14 2009, 07:53 ] |
Заголовок сообщения: | Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI |
Первый для работы с СПП-элементами, второй - с определениями проекта. А Вы правильную последовательность ФМ вызываете? BAPI_PS_INITIALIZATION BAPI_BUS2054_CREATE_MULTI BAPI_PS_PRECOMMIT BAPI_TRANSACTION_COMMIT |
Автор: | slim [ Пн, сен 14 2009, 08:04 ] |
Заголовок сообщения: | Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI |
John Doe написал: Первый для работы с СПП-элементами, второй - с определениями проекта. А Вы правильную последовательность ФМ вызываете? BAPI_PS_INITIALIZATION BAPI_BUS2054_CREATE_MULTI BAPI_PS_PRECOMMIT BAPI_TRANSACTION_COMMIT Последовательность тут не важна. Раскопал в ФМ BAPI_BUS2054_CREATE_MULTI то, что при передачи параметра EXTENSIONIN (z-ПОЛЯ), в самом ФМ зашита премерно следующая строчка: Code: bapi_struct like BAPI_TE_WBS_ELEM. move EXTENSIONIN to bapi_struct. А с помощью ФМ BAPI_PROJECT_MAINTAIN можно все создавать: и определение проекта и СПП и сетевые графики и т.п. Пример кода создания определения проекта: Code: FORM CREATE_DEFINITION USING DEFINITION LIKE PROJ-PSPID " КОД ОПРЕДЕЛЕНИЯ ПРОЕКТА DESCRIPTION " НАИМЕНОВАНИЕ ОПРЕДЕЛЕНИЯ ПРОЕКТА PROJECT_PROFILE " ПРОФИЛЬ ПРОЕКТА CHANGING ERROR. CLEAR: ERROR. DATA: IS_PROJ_DEF LIKE BAPI_PROJECT_DEFINITION, IS_PROJ_DEF_UPD LIKE BAPI_PROJECT_DEFINITION_UP, RETURN LIKE BAPIRETURN1, I_METHOD_PROJECT LIKE BAPI_METHOD_PROJECT OCCURS 0 WITH HEADER LINE, E_MESSAGE_TABLE LIKE BAPI_METH_MESSAGE OCCURS 0 WITH HEADER LINE. * ПРОВЕРЯЕМ СОЗДАНО ЛИ УЖЕ ОПРЕДЕЛЕНИЕ ПРОЕКТА С ТАКИМ КОДОМ SELECT SINGLE A~PSPID INTO DEFINITION FROM PROJ AS A WHERE A~PSPID = DEFINITION. IF SY-SUBRC <> 0. * КОД ОПРЕДЕЛЕНИЯ ПРОЕКТА IS_PROJ_DEF-PROJECT_DEFINITION = DEFINITION. * ПРОФИЛЬ ПРОЕКТА IS_PROJ_DEF-PROJECT_PROFILE = PROJECT_PROFILE. * НАИМЕНОВАНИЕ ОПРЕДЕЛЕНИЯ ПРОЕКТА IS_PROJ_DEF-DESCRIPTION = DESCRIPTION. * ОПИСАНИЕ МЕТОДА СОЗДАНИЯ ОПРЕДЕЛЕНИЯ ПРОЕКТА I_METHOD_PROJECT-OBJECTTYPE = 'ProjectDefinition' . I_METHOD_PROJECT-METHOD = 'CREATE' . I_METHOD_PROJECT-OBJECTKEY = DEFINITION. I_METHOD_PROJECT-REFNUMBER = '000001' . APPEND I_METHOD_PROJECT . * ОПИСАНИЕ МЕТОДА СОХРАНЕНИЯ I_METHOD_PROJECT-OBJECTTYPE = '' . I_METHOD_PROJECT-METHOD = 'SAVE' . I_METHOD_PROJECT-OBJECTKEY = '' . I_METHOD_PROJECT-REFNUMBER = '' . APPEND I_METHOD_PROJECT. * СОЗДАЕМ ОПРЕДЕЛЕНИЕ ПРОЕКТА CLEAR RETURN. CALL FUNCTION 'BAPI_PROJECT_MAINTAIN' EXPORTING I_PROJECT_DEFINITION = IS_PROJ_DEF I_PROJECT_DEFINITION_UPD = IS_PROJ_DEF_UPD IMPORTING RETURN = RETURN TABLES I_METHOD_PROJECT = I_METHOD_PROJECT E_MESSAGE_TABLE = E_MESSAGE_TABLE. IF RETURN IS NOT INITIAL. READ TABLE E_MESSAGE_TABLE INDEX 1. ERROR = E_MESSAGE_TABLE-MESSAGE_TEXT. ENDIF. ENDIF. ENDFORM. Пример кода создания СПП: Code: DATA: IS_PROJ_DEF LIKE BAPI_PROJECT_DEFINITION, IS_PROJ_DEF_UPD LIKE BAPI_PROJECT_DEFINITION_UP, RETURN LIKE BAPIRETURN1, I_METHOD_PROJECT LIKE BAPI_METHOD_PROJECT OCCURS 0 WITH HEADER LINE, I_WBS_ELEMENT_TABLE LIKE BAPI_WBS_ELEMENT OCCURS 0 WITH HEADER LINE, I_WBS_HIERARCHIE_TABLE LIKE BAPI_WBS_HIERARCHIE OCCURS 0 WITH HEADER LINE, E_MESSAGE_TABLE LIKE BAPI_METH_MESSAGE OCCURS 0 WITH HEADER LINE. IS_PROJ_DEF-PROJECT_DEFINITION = DIFIN. I_METHOD_PROJECT-OBJECTTYPE = 'WBS-ELEMENT' . I_METHOD_PROJECT-METHOD = 'CREATE' . I_METHOD_PROJECT-OBJECTKEY = SPP_NUM. I_METHOD_PROJECT-REFNUMBER = '000001' . APPEND I_METHOD_PROJECT . I_METHOD_PROJECT-OBJECTTYPE = 'WBS HIERARCHY' . I_METHOD_PROJECT-METHOD = 'CREATE' . I_METHOD_PROJECT-OBJECTKEY = ''. I_METHOD_PROJECT-REFNUMBER = ''. APPEND I_METHOD_PROJECT . I_METHOD_PROJECT-OBJECTTYPE = '' . I_METHOD_PROJECT-METHOD = 'SAVE'. I_METHOD_PROJECT-OBJECTKEY = '' . I_METHOD_PROJECT-REFNUMBER = '' . APPEND I_METHOD_PROJECT . * НОМЕР СПП I_WBS_ELEMENT_TABLE-WBS_ELEMENT = SPP_NUM. * НАИМЕНОВАНИЕ СПП I_WBS_ELEMENT_TABLE-DESCRIPTION = DESC. * ВАЛЮТА I_WBS_ELEMENT_TABLE-CURRENCY = PWPOS. * ЗАКАЗЧИК ОПРОЕКТА(АВТОР ЗАЯВКИ) I_WBS_ELEMENT_TABLE-APPLICANT_NO = ASTNR. * РУКОВОДИТЕЛЬ ПРОЕКТА(ОТВЕТСТВЕННЫЙ) I_WBS_ELEMENT_TABLE-RESPONSIBLE_NO = VERNR. * НАЧАЛО РЕАЛИЗАЦИИ I_WBS_ELEMENT_TABLE-WBS_BASIC_START_DATE = PSTRT. * ОКОНЧАНИЕ РЕАЛИЗАЦИИ I_WBS_ELEMENT_TABLE-WBS_BASIC_FINISH_DATE = PENDE. APPEND I_WBS_ELEMENT_TABLE. * ОПРЕДЕЛЕНИЕ ПРОЕКТА I_WBS_HIERARCHIE_TABLE-PROJECT_DEFINITION = DIFIN. * НОМЕР СПП I_WBS_HIERARCHIE_TABLE-WBS_ELEMENT = SPP_NUM. * ВЫШЕСТОЯЩИЙ СПП IF PARENT_WBS IS NOT INITIAL. I_WBS_HIERARCHIE_TABLE-UP = PARENT_WBS. ENDIF. APPEND I_WBS_HIERARCHIE_TABLE. CLEAR RETURN. CALL FUNCTION 'BAPI_PROJECT_MAINTAIN' EXPORTING I_PROJECT_DEFINITION = IS_PROJ_DEF I_PROJECT_DEFINITION_UPD = IS_PROJ_DEF_UPD IMPORTING RETURN = RETURN TABLES I_METHOD_PROJECT = I_METHOD_PROJECT I_WBS_ELEMENT_TABLE = I_WBS_ELEMENT_TABLE I_WBS_HIERARCHIE_TABLE = I_WBS_HIERARCHIE_TABLE E_MESSAGE_TABLE = E_MESSAGE_TABLE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X'. Может всетаки можно использовать ФМ BAPI_PROJECT_MAINTAIN? |
Автор: | John Doe [ Пн, сен 14 2009, 08:20 ] |
Заголовок сообщения: | Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI |
С чего Вы решили, что не важна? |
Автор: | slim [ Пн, сен 14 2009, 09:12 ] |
Заголовок сообщения: | Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI |
John Doe написал: С чего Вы решили, что не важна? Я имел в виду что в моем случае не важна. т.к. раскопал в ФМ BAPI_BUS2054_CREATE_MULTI то, что при передачи параметра EXTENSIONIN (z-ПОЛЯ), в самом ФМ зашита премерно следующая строчка: Code: bapi_struct like BAPI_TE_WBS_ELEM. move EXTENSIONIN to bapi_struct. На строке "move" ФМ вылетает в ДАМП. На счет последовательности, я ее проверил она такая, как вы писали. А у Вас в структуре CI_PRPS есть Z-поля типа NUM,CURR,DEC? И всетаки почему вместо BAPI_BUS2054_CREATE_MULTI нельзя использовать BAPI_PROJECT_MAINTAIN? |
Автор: | John Doe [ Пн, сен 14 2009, 10:17 ] |
Заголовок сообщения: | Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI |
Нет, расширенный СПП мне на проектах не встречался пока. Если все работает - используйте на здоровье |
Автор: | PK [ Пт, ноя 06 2009, 18:30 ] |
Заголовок сообщения: | Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI |
Искал совсем другую тему, но если кому-то будет интересно, то на этот случай SAP предлагает ноту. Название не помню, но суть в том, что в случае расширения структуры CI_PRPS полями типа CURR и подобными, при вызове сабжевой Бапи для изменения данных СПП произойдет дамп. САП предлагал такое решение: В структуре BAPI_TE_WBS_ELEMENT include CI_PRPS заменяется на пользовательский ZCI_PRPS, в котором спорные поля(запамятовал как они называются) заменяются подходящимипо длине NUMC'ами. И всё будет работать. Дампы - не будет. Единственное, что в дальнейшем следует отслеживать, чтобы CI_PRPS и ZCI_PRPS совпадали. |
Автор: | boreich [ Пт, июн 26 2020, 07:50 ] |
Заголовок сообщения: | Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI |
slim написал(а): John Doe написал: А с помощью ФМ BAPI_PROJECT_MAINTAIN можно все создавать: и определение проекта и СПП и сетевые графики и т.п. Здравствуйте. Извиняюсь за форумную некромантию, но очень актуальный для меня вопрос тут. А можно примеры использования данного ФМ-а более развёрнутые где то посмотреть? Для создания операции, подоперации, сетевого графика и т.д.... С созданием СПП по Вашему примеру, вроде, разобрался. Может есть какая то нота описательная по данному ФМ? К сожалению доступа к оф. нотам не имею - контора, где работаю, САПу за поддержку должна как земля колхозу. По этому ФМ что то не много инфы нашёл. Буду благодарен за наводку. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |