Текущее время: Пт, июл 18 2025, 15:50

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


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: BAPI_SALESORDER_CHANGE - ни ошибок, ни изменений
СообщениеДобавлено: Пт, июл 07 2006, 17:41 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Мы используем BAPI_SALESORDER_CHANGE, чтобы изменять reason for rejection (ABGRU) на строках заказа, которых не оказалось на складе. Почему-то периодически происходит странный сбой, когда BAPI возвращает SY-SUBRC = 0 и сообщение "Order ... has been saved", но в реале никаких изменений не происходит. Сталкивался ли кто-нибудь с таким? Может мы чего упустили? Код в общих чертах такой:

Code:
s_da_order_header_inx-updateflag = 'U'.

s_da_order_item_in-material   = it_orders-matnr.
s_da_order_item_in-itm_number = it_orders-posnr.
s_da_order_item_in-reason_rej = '70'.
APPEND s_da_order_item_in.

s_da_order_item_inx-updateflag = 'U'.
s_da_order_item_inx-reason_rej = 'X'.
s_da_order_item_inx-itm_number = it_orders-posnr.
APPEND s_da_order_item_inx.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
    EXPORTING
      salesdocument     = it_orders-vbeln
      order_header_in   = s_da_order_header_in
      order_header_inx  = s_da_order_header_inx
      behave_when_error = 'P'
    TABLES
      return            = it_return_bapi_soc
      order_item_in     = s_da_order_item_in
      order_item_inx    = s_da_order_item_inx.

IF sy-subrc = 0.
   CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait   = 'X'
      IMPORTING
        return = it_return_bapi_tc.
ENDIF.


В OSS и SDN уже искала.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 07 2006, 17:49 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Думаю, проверка
Code:
IF sy-subrc = 0.
смысла не имеет. Надо проверять, есть ли в it_return_bapi_soc сообщения типа 'E', или нет.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 07 2006, 19:12 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
В том-то и дело, что сообщений Е нету.

Программа, которая вызывает BAPI, работает в background и сообщения видны в логе. И там только "Date ... is in the past" (W) и "Order... has been saved". Оба сообщения нормальны и появляются и тогда, когда изменения действительно происходят.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 07 2006, 23:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Секундочку, а что, если вызвать внутри функционального модуля MESSAGE ... RAISING ... , оно разве отобразится в логе?? Кроме того, это BAPI может запросто писать в return сообщения напрямую без MESSAGE,и тогда уж точно они в логе не отразятся.
Все-таки проверьте содержимое it_return_bapi_soc после вызова BAPI. Типа
Code:
READ TABLE it_return_bapi_soc WITH KEY type = 'E'...
IF sy-subrc NE 0.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ELSE.
  ...
ENDIF.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июл 25 2006, 22:59 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Наконец разобралась с этим. Оказывается добрый BAPI в таблице it_return_bapi_soc возвращает сообщение V1 739 (Field 'ABGRU' cannot be changed...), НО (!) оно не 'Е', а 'I'. :x Почему вместе с ним возвращается "Sales Ord to Deliver ... has been saved", хотя никаких изменений не произошло - это загадка.

Первопричина же всего оказалась в том, что чтобы изменить ABGRU на заказе, поставка (delivery) должна быть уже "закрыта" (Post Goods Issue). А у нас тут случаются иногда ситуации, когда с поставкой какая-то неувязочка, а программа, которая пытается изменить заказ через BAPI, насчет этого не в курсе.


Последний раз редактировалось Jelena Ср, июл 26 2006, 17:15, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 26 2006, 07:35 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, фев 03 2006, 08:00
Сообщения: 344
а каким образом можно выловить такие сообщения из ФМ и после его вызова [ФМ] в отчете прочитать и вывести на экран?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июл 26 2006, 17:13 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
aht написал(а):
а каким образом можно выловить такие сообщения из ФМ и после его вызова [ФМ] в отчете прочитать и вывести на экран?


Пример:

Code:
  LOOP AT it_return_bapi_soc.
    MESSAGE
         ID      it_return_bapi_soc-id
         TYPE  it_return_bapi_soc-type
         NUMBER  it_return_bapi_soc-number
     WITH
                 it_return_bapi_soc-message_v1
                 it_return_bapi_soc-message_v2
                 it_return_bapi_soc-message_v3
                 it_return_bapi_soc-message_v4.
  ENDLOOP.


MESSAGE можно заменить другой командой. Кроме того, в моем случае программа является частью job, поэтому type 'E' не допускается и вместо него ставится MESSAGE TYPE 'S'.

Ну и это все, конечно, для случая, если из BAPI или FM возвращается таблица.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 28 2006, 08:58 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, фев 03 2006, 08:00
Сообщения: 344
м-да, сначала спросил, а потом подумал... это есть плохо :oops:
а ещё вопрос 2 Jelena: Вы при вызове бапи не использ(уете/овали) EXTENSIONIN?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июл 31 2006, 22:48 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
aht написал(а):
а ещё вопрос 2 Jelena: Вы при вызове бапи не использ(уете/овали) EXTENSIONIN?


Нет, не используем - нам вроде без надобности.


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

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


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

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


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

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