Текущее время: Вт, апр 16 2024, 19:34

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: IDOC и COMMIT WORK
СообщениеДобавлено: Пн, окт 09 2017, 14:45 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Здравствуйте,
есть такой код:
Code:
CALL FUNCTION 'ALE_ASYNC_BAPI_GET_RECEIVER'
    EXPORTING
      object                         = 'ZFTU69'
      method                         = 'ZbapiFtu'
    TABLES
*   RECEIVER_INPUT                 =
      receivers                      = lt_receivers
      filterobject_values            = lt_filter
   EXCEPTIONS
     error_in_filterobjects         = 1
     error_in_ale_customizing       = 2
     OTHERS                         = 3
            .
  IF sy-subrc <> 0 OR lt_receivers[] IS INITIAL.
    docs_for_update-message = 'Ошибка передачи'.
    docs_for_update-status = '03' .
    EXIT.
  ENDIF.


* create IDoc control-record                                           *
  idoc_control-mestyp = 'ZFTU69'.
  idoc_control-idoctp = 'ZFTU6901'.
  idoc_control-serial = sy-datum.
  idoc_control-serial+8 = sy-uzeit.

  SELECT segnam sdata INTO CORRESPONDING FIELDS OF TABLE idoc_data FROM edid4 WHERE docnum = docs_for_update-docnum.

  CALL FUNCTION 'ALE_IDOCS_CREATE'
       EXPORTING
            idoc_control                = idoc_control
            obj_type                    = 'ZFTU69'
            chnum                       = '0'
       TABLES
            idoc_data                   = idoc_data
            receivers                   = lt_receivers[]
*             CREATED_IDOCS               =                            *
            created_idocs_additional    = idoc_comm
*            APPLICATION_OBJECTS         = APPLICATION_OBJECTS
       EXCEPTIONS
            idoc_input_was_inconsistent = 1
            OTHERS                      = 2
            .
  COMMIT WORK.


Если убрать COMMIT WORK, то IDOC создается и зависает со статусом 03. C коммитом нормально уходит получателю.
Далее по коду никаких ROLLBACK нет, обычный выход с PAI.

В чем может быть причина?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: IDOC и COMMIT WORK  Тема решена
СообщениеДобавлено: Пн, окт 09 2017, 15:48 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
А что смущает? в хелпе к ФМ так и написано:
Цитата:
After a ALE_IDOCS_CREATE call a COMMIT WORK must be triggered. The database commit at the end of the transaction is not sufficient. The COMMIT WORK does not have to occur immediately after the call. It can, for example, be on a higher calling level. If no COMMIT WORK is triggered (and direct sending is set in Customizing), the IDoc is not sent and the status 3 is set.


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

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


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

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


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

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