Sapforum.Biz

Инструменты => SE37 - Построитель функций => ABAP - Инструментальные средства => SE37 - Подскажите ФМ => Тема начата: Паганель от Январь 20, 2010, 01:49:48 pm

Название: Проблема с BAPI_BATCH_CHANGE
Отправлено: Паганель от Январь 20, 2010, 01:49:48 pm
Делаю такой вызов:
Код: You are not allowed to view links. Register or Login
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.  

Как может быть длина не такой? В чем то траблы? Лыжи не едут?
Название: Re: Проблема с BAPI_BATCH_CHANGE
Отправлено: Паганель от Январь 20, 2010, 01:57:50 pm
Спасибо, тут друг-разработчик подсказал, там надо передавать структуру, а я табличку (блин пример выдрал а он то не рабочий)
Название: Re: Проблема с BAPI_BATCH_CHANGE
Отправлено: Паганель от Январь 23, 2010, 12:02:59 pm
В итоге мы получаем следующий код (простенький)
Код: You are not allowed to view links. Register or Login
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.                
Название: Re: Проблема с BAPI_BATCH_CHANGE
Отправлено: Паганель от Январь 23, 2010, 12:10:36 pm
Дополнительно возникает вопрос концептуального характера,
в данную бапишку, дополнительно передается таблица для возвртата сообщения и ошибок
Код: You are not allowed to view links. Register or Login
     TABLES
          return            = lt_bapiret.

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

Так вот вопрос: как обойти ограничение построителя классов (se18, я делаю внедрение)
Код: You are not allowed to view links. Register or Login
Класс 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.
Название: Re: Проблема с BAPI_BATCH_CHANGE
Отправлено: Dmitriy от Январь 23, 2010, 05:09:55 pm
Нужно попробовать внутри своего внедрения выполнить такое объявление таблицы сообщений:
Код: You are not allowed to view links. Register or Login
DATA: lt_bapiret TYPE TABLE OF bapiret2.И как можно быстрее забыть про конструкцию DATA: ... LIKE ... OCCURS n WITH HEADER LINE, это прошлый век. В теме про оптимизацию много написано про рабочую область (оптимизация циклов по вн. таблицам).
Название: Re: Проблема с BAPI_BATCH_CHANGE
Отправлено: Паганель от Январь 23, 2010, 05:11:06 pm
Ок, спасибо, приму на воружение