Текущее время: Чт, мар 28 2024, 20:55

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Проблема при вызове BAPI_BUS2054_CREATE_MULTI
СообщениеДобавлено: Пт, сен 11 2009, 06:19 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 24 2007, 11:29
Сообщения: 350
Здравствуйте коллеги.

Подскажите, пожалуйста, есть ли альтернативная функция BAPI_BUS2054_CREATE_MULTI???

Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI
СообщениеДобавлено: Пт, сен 11 2009, 22:38 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Альтернативы нет. Проблема в чем?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI
СообщениеДобавлено: Пн, сен 14 2009, 04:26 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 24 2007, 11:29
Сообщения: 350
John Doe написал:
Альтернативы нет. Проблема в чем?


При вызове функции BAPI_BUS2054_CREATE_MULTI она вылетает в Дамп, если в структуре CI_PRPS есть поля типа CURR, NUM.
Пропускает только типы CHAR, DATS и CUKY.

А чем отличается функция BAPI_BUS2054_CREATE_MULTI от BAPI_PROJECT_MAINTAIN.
BAPI_PROJECT_MAINTAIN при тех же условиях отрабатывает нормально.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI
СообщениеДобавлено: Пн, сен 14 2009, 07:53 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Первый для работы с СПП-элементами, второй - с определениями проекта.
А Вы правильную последовательность ФМ вызываете?
BAPI_PS_INITIALIZATION
BAPI_BUS2054_CREATE_MULTI
BAPI_PS_PRECOMMIT
BAPI_TRANSACTION_COMMIT


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI
СообщениеДобавлено: Пн, сен 14 2009, 08:04 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 24 2007, 11:29
Сообщения: 350
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?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI
СообщениеДобавлено: Пн, сен 14 2009, 08:20 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
С чего Вы решили, что не важна?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI
СообщениеДобавлено: Пн, сен 14 2009, 09:12 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, авг 24 2007, 11:29
Сообщения: 350
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?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI
СообщениеДобавлено: Пн, сен 14 2009, 10:17 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Нет, расширенный СПП мне на проектах не встречался пока.

Если все работает - используйте на здоровье :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI
СообщениеДобавлено: Пт, ноя 06 2009, 18:30 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 21 2006, 07:27
Сообщения: 321
Откуда: Где-то на севере
Пол: Мужской
Искал совсем другую тему, но если кому-то будет интересно, то на этот случай SAP предлагает ноту. Название не помню, но суть в том, что в случае расширения структуры CI_PRPS полями типа CURR и подобными, при вызове сабжевой Бапи для изменения данных СПП произойдет дамп.

САП предлагал такое решение:
В структуре BAPI_TE_WBS_ELEMENT include CI_PRPS заменяется на пользовательский ZCI_PRPS, в котором спорные поля(запамятовал как они называются) заменяются подходящимипо длине NUMC'ами.

И всё будет работать. Дампы - не будет. Единственное, что в дальнейшем следует отслеживать, чтобы CI_PRPS и ZCI_PRPS совпадали.

_________________
I have a dream


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема при вызове BAPI_BUS2054_CREATE_MULTI
СообщениеДобавлено: Пт, июн 26 2020, 07:50 
Специалист
Специалист

Зарегистрирован:
Ср, окт 07 2015, 12:36
Сообщения: 124
slim написал(а):
John Doe написал:

А с помощью ФМ BAPI_PROJECT_MAINTAIN можно все создавать: и определение проекта и СПП и сетевые графики и т.п.


Здравствуйте. Извиняюсь за форумную некромантию, но очень актуальный для меня вопрос тут. А можно примеры использования данного ФМ-а более развёрнутые где то посмотреть?
Для создания операции, подоперации, сетевого графика и т.д.... С созданием СПП по Вашему примеру, вроде, разобрался. Может есть какая то нота описательная по данному ФМ?
К сожалению доступа к оф. нотам не имею - контора, где работаю, САПу за поддержку должна как земля колхозу. По этому ФМ что то не много инфы нашёл.
Буду благодарен за наводку.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB