Loading



+ Sapforum.Biz » Инструменты » ABAP - Инструментальные средства » SE37 - Построитель функций » SE37 - Подскажите ФМ (Модератор: Dmitriy)Тема:
|- Проблема с BAPI_BATCH_CHANGE



Автор Тема: Проблема с BAPI_BATCH_CHANGE  (Прочитано 954 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Паганель

  • blogger
  • Full Member
  • *
  • Сообщений: 1.319
  • Reputation Power: 0
  • Паганель has no influence.
  • Пол: Мужской
Проблема с BAPI_BATCH_CHANGE
« : Январь 20, 2010, 01:49:48 pm »
Делаю такой вызов:
DATA: lt_batchattributes1 TYPE STANDARD TABLE OF bapibatchatt.
  
DATA: ls_batchattributes LIKE LINE OF lt_batchattributes1.

DATA: lt_batchattributesx TYPE STANDARD TABLE OF bapibatchattx.
DATA: ls_batchattributesx LIKE LINE OF lt_batchattributesx.

DATA: w_bapibatchatt TYPE bapibatchatt.
DATA: lt_bapiret TYPE STANDARD TABLE OF bapiret2. " WITH HEADER LINE.

ls_batchattributes-prod_date = wa_xmkpf-budat.
        APPEND ls_batchattributes TO lt_batchattributes1.

        ls_batchattributesx-prod_date = 'X'.
        APPEND ls_batchattributesx TO lt_batchattributesx.

        CALL FUNCTION 'BAPI_BATCH_CHANGE'
          EXPORTING
            material          = wa_xmseg-matnr
            batch             = wa_xmseg-charg
            plant             = wa_xmseg-werks
            batchattributes   =  lt_batchattributes1
            batchattributesx  = lt_batchattributesx
          IMPORTING
            batchattributes   = w_bapibatchatt.


При вызове падает в дамп:

Цитировать
In the function module interface, you can specify only                
fields of a specific type and length under "BATCHATTRIBUTES".        
Although the currently specified field                                
"LT_BATCHATTRIBUTES1" is the correct type, its length is incorrect.  

Как может быть длина не такой? В чем то траблы? Лыжи не едут?

Оффлайн Паганель

  • blogger
  • Full Member
  • *
  • Сообщений: 1.319
  • Reputation Power: 0
  • Паганель has no influence.
  • Пол: Мужской
Re: Проблема с BAPI_BATCH_CHANGE
« Ответ #1 : Январь 20, 2010, 01:57:50 pm »
Спасибо, тут друг-разработчик подсказал, там надо передавать структуру, а я табличку (блин пример выдрал а он то не рабочий)

Оффлайн Паганель

  • blogger
  • Full Member
  • *
  • Сообщений: 1.319
  • Reputation Power: 0
  • Паганель has no influence.
  • Пол: Мужской
Re: Проблема с BAPI_BATCH_CHANGE
« Ответ #2 : Январь 23, 2010, 12:02:59 pm »
В итоге мы получаем следующий код (простенький)
DATA: lt_batchattributes1 TYPE STANDARD TABLE OF bapibatchatt.  
DATA: ls_batchattributes LIKE LINE OF lt_batchattributes1.

DATA: lt_batchattributesx TYPE STANDARD TABLE OF bapibatchattx.
DATA: ls_batchattributesx LIKE LINE OF lt_batchattributesx.

DATA: w_bapibatchatt TYPE bapibatchatt.
DATA: lt_bapiret TYPE STANDARD TABLE OF bapiret2. " WITH HEADER LINE.

        ls_batchattributes-prod_date = wa_xmkpf-budat.       
        ls_batchattributesx-prod_date = 'X'.

        CALL FUNCTION 'BAPI_BATCH_CHANGE'
          EXPORTING
            material          = wa_xmseg-matnr
            batch             = wa_xmseg-charg
            plant             = wa_xmseg-werks
            batchattributes   =  ls_batchattributes1  " <<<< = структура, а не табличка
            batchattributesx  = ls_batchattributesx   " <<<< = структура, а не табличка
          IMPORTING
            batchattributes   = w_bapibatchatt.                
« Последнее редактирование: Январь 23, 2010, 12:04:50 pm от Паганель »

Оффлайн Паганель

  • blogger
  • Full Member
  • *
  • Сообщений: 1.319
  • Reputation Power: 0
  • Паганель has no influence.
  • Пол: Мужской
Re: Проблема с BAPI_BATCH_CHANGE
« Ответ #3 : Январь 23, 2010, 12:10:36 pm »
Дополнительно возникает вопрос концептуального характера,
в данную бапишку, дополнительно передается таблица для возвртата сообщения и ошибок
     TABLES
          return            = lt_bapiret.

Судя по коду в самой бапи, она должна быть WITH HEADER LINE (см. код бапи).

Так вот вопрос: как обойти ограничение построителя классов (se18, я делаю внедрение)
Класс ZCL_IM_MB_DOCUMENT_BADI,Метод IF_EX_MB_DOCUMENT_BADI~MB_DOCUMENT_BEFORE_UPDATE
Tables with headers are no longer supported in the OO context.

Оффлайн Dmitriy

  • SAP ECC 6.0
  • Administrator
  • Newbie
  • *****
  • Сообщений: 297
  • Reputation Power: 0
  • Dmitriy has no influence.
  • Пол: Мужской
  • Embracive Fire
Re: Проблема с BAPI_BATCH_CHANGE
« Ответ #4 : Январь 23, 2010, 05:09:55 pm »
Нужно попробовать внутри своего внедрения выполнить такое объявление таблицы сообщений:
DATA: lt_bapiret TYPE TABLE OF bapiret2.И как можно быстрее забыть про конструкцию DATA: ... LIKE ... OCCURS n WITH HEADER LINE, это прошлый век. В теме про оптимизацию много написано про рабочую область (оптимизация циклов по вн. таблицам).

Оффлайн Паганель

  • blogger
  • Full Member
  • *
  • Сообщений: 1.319
  • Reputation Power: 0
  • Паганель has no influence.
  • Пол: Мужской
Re: Проблема с BAPI_BATCH_CHANGE
« Ответ #5 : Январь 23, 2010, 05:11:06 pm »
Ок, спасибо, приму на воружение


 


Facebook Comments