Sapforum.Biz
Сентябрь 08, 2010, 07:54:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости: Twitter: http://twitter.com/sapforumbiz
RSS лента: http://sapforum.biz/index.php?action=.xml;type=rss
 
   Начало   Blogs Помощь Поиск Календарь Пользователи Войти Регистрация  
Страниц: [1]   Вниз
  Ответ  |  Печать  
Автор Тема: Проблема с BAPI_BATCH_CHANGE  (Прочитано 332 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Паганель
blogger
Full Member
*

Karma: 6
Offline Offline

Пол: Мужской
Сообщений: 1.104



WWW
« : Январь 20, 2010, 01:49:48 »
ПроцитироватьЦитировать

Делаю такой вызов:
Код:
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
*

Karma: 6
Offline Offline

Пол: Мужской
Сообщений: 1.104



WWW
« Ответ #1 : Январь 20, 2010, 01:57:50 »
ПроцитироватьЦитировать

Спасибо, тут друг-разработчик подсказал, там надо передавать структуру, а я табличку (блин пример выдрал а он то не рабочий)
Записан

"Люди становятся теми, кем становятся, в основном, от того, что они делают в свое свободное время. Именно выбор: на что потратить свое время, определяет выбор пути, по которому пойдет человек, и того места, где он, в конечном счете, окажется". Роберта Т. Киосаки.
Паганель
blogger
Full Member
*

Karma: 6
Offline Offline

Пол: Мужской
Сообщений: 1.104



WWW
« Ответ #2 : Январь 23, 2010, 12:02:59 »
ПроцитироватьЦитировать

В итоге мы получаем следующий код (простенький)
Код:
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 от Паганель » Записан

"Люди становятся теми, кем становятся, в основном, от того, что они делают в свое свободное время. Именно выбор: на что потратить свое время, определяет выбор пути, по которому пойдет человек, и того места, где он, в конечном счете, окажется". Роберта Т. Киосаки.
Паганель
blogger
Full Member
*

Karma: 6
Offline Offline

Пол: Мужской
Сообщений: 1.104



WWW
« Ответ #3 : Январь 23, 2010, 12:10:36 »
ПроцитироватьЦитировать

Дополнительно возникает вопрос концептуального характера,
в данную бапишку, дополнительно передается таблица для возвртата сообщения и ошибок
Код:
     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
*****

Karma: 0
Offline Offline

Пол: Мужской
Сообщений: 220


Embracive Fire


WWW
« Ответ #4 : Январь 23, 2010, 05:09:55 »
ПроцитироватьЦитировать

Нужно попробовать внутри своего внедрения выполнить такое объявление таблицы сообщений:
Код:
DATA: lt_bapiret TYPE TABLE OF bapiret2.
И как можно быстрее забыть про конструкцию DATA: ... LIKE ... OCCURS n WITH HEADER LINE, это прошлый век. В теме про оптимизацию много написано про рабочую область (оптимизация циклов по вн. таблицам).
Записан
Паганель
blogger
Full Member
*

Karma: 6
Offline Offline

Пол: Мужской
Сообщений: 1.104



WWW
« Ответ #5 : Январь 23, 2010, 05:11:06 »
ПроцитироватьЦитировать

Ок, спасибо, приму на воружение
Записан

"Люди становятся теми, кем становятся, в основном, от того, что они делают в свое свободное время. Именно выбор: на что потратить свое время, определяет выбор пути, по которому пойдет человек, и того места, где он, в конечном счете, окажется". Роберта Т. Киосаки.
Страниц: [1]   Вверх
  Ответ  |  Печать  
 
Перейти в:  


Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC
SimplePortal 2.3.1 © 2008-2009, SimplePortal
| Sitemap
Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0.309 секунд. Запросов: 31.