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

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




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Вызов BAPI_MATERIAL_AVAILABILITY в SQ02
СообщениеДобавлено: Вт, мар 05 2019, 12:43 
Начинающий
Начинающий

Зарегистрирован:
Ср, дек 26 2018, 10:41
Сообщения: 1
День добрый!

Имеется инфонабор с джойнами по таблицам KNVV, A552, TVKWZ; в секции Record Processing я вызываю ФМ BAPI_MATERIAL_AVAILABILITY для получения ATP-стока.
При запуске запроса, построенном на данном инфонаборе, получаю рантайм-ошибку ABAP:
Code:
Category               ABAP programming error
Runtime Errors         DBSQL_INVALID_CURSOR
Except.                CX_SY_OPEN_SQL_DB

Ошибка возникает при получении (fetch) следующей строки курсора (см. строку 2):
Code:
  while %l_no_further_fetch = space.
    fetch next cursor %dbcursor
    into (KNVV-KUNNR , KNVV-VKORG , KNVV-VTWEG , KNVV-SPART , A552-MATNR , A552-DATBI , A552-PLTYP , TVKWZ-WERKS , TVKWZ-VKORG
        , TVKWZ-VTWEG ).
    if ( ( %rtmode-acc_check = 'X' and
           sy-dbcnt > %rtmode-acc_number )
        or sy-subrc <> 0 ).
      %l_no_further_fetch = 'X'.
    else.
    ...

Проблема явно связана с BAPI_MATERIAL_AVAILABILITY. В ходе дебага выяснил, что ошибка возникает после первого успешного получения информации по остаткам в BAPI_MATERIAL_AVAILABILITY, т.е. при обращении к следующей строке курсора отчет валится в ошибку. При определенных условиях я даже могу выгрузить данные из отчета, а именно когда ФМ не отработал успешно для каждой из строк в отчете, например, если материал не расшарен на указанном заводе и т.д. Такое ощущение, что где-то в недрах BAPI_MATERIAL_AVAILABILITY происходит закрытие основного курсора SAP Query в результате, к примеру, коммита транзакции. Кто-нибудь сталкивался с подобным? Заранее спасибо за помощь.

Секция Data в инфонаборе:
Code:
data:
  lv_atpqty like bapicm61v-wkbst,
  ls_return like bapireturn,
  lt_wmdvsx type table of bapiwmdvs with header line,
  lt_wmdvex type table of bapiwmdve with header line,
  lv_matnr like a552-matnr,
  lv_uom like mara-meins,
  lv_plant like tvkwz-werks.

Секция Record Processing:
Code:
clear f_atpqty.
clear lv_matnr.
clear lv_uom.
clear lv_atpqty.
select
    mvke~matnr,
    mara~meins
  into ( @lv_matnr, @lv_uom )
  up to 1 rows
  from mvke
  join mara on
    mara~matnr = mvke~matnr
  where
    mvke~pmatn = @a552-matnr and
    mvke~vrkme = ''.
endselect.
call function 'BAPI_MATERIAL_AVAILABILITY'
  exporting
    plant                    =  tvkwz-werks
    material                 =  lv_matnr
    unit                     =  lv_uom
    check_rule               =  'Z'
    read_atp_lock            =  'K'
    read_atp_lock_x          =  'X'
  importing
    av_qty_plt               =  lv_atpqty
    return                   =  ls_return
  tables
    wmdvsx                   =  lt_wmdvsx
    wmdvex                   =  lt_wmdvex.
if ls_return is initial.
  read table lt_wmdvex with key bdcnt = 0.
  f_atpqty = lt_wmdvex-com_qty.
  clear lt_wmdvsx[].
  clear lt_wmdvex[].
endif.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Вызов BAPI_MATERIAL_AVAILABILITY в SQ02
СообщениеДобавлено: Вт, июл 16 2019, 11:14 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 09:59
Сообщения: 1578
Откуда: Москва, Минск
Пол: Мужской
А вашу задачу принципиально нужно реализовать через SAP QUery?
ABAP- отчет не рассматриваете?

_________________
Лучше быть умным и иногда тупить, чем быть тупым и постоянно умничать!


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

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


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

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


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

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