Текущее время: Пт, апр 19 2024, 11:59

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot]


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

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