Текущее время: Вс, июл 27 2025, 18:24

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: call transaction... using + commit work
СообщениеДобавлено: Вт, июн 21 2011, 18:21 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 16 2007, 19:00
Сообщения: 168
Откуда: город
Добрый день.

Есть 2 транзакции, названия которых совпадают с репортами (Z1 и Z2). Проблема следующая: при вызове Z2 из Z1 через call transaction using, как только выполнение Z2 доходит до commit work, дальнейшее выполнение Z2 прерывается и идет возврат в Z1. Задача состоит в том, чтобы Z2 я выполнялась дальше несмотря на commit work.

Убрав все лишнее для простоты можно представить код Z1 и Z2 следующим образом.
Код Z1:
Code:
START-OF-SELECTION.
  WRITE '1st transaction before'.

AT LINE-SELECTION.
  DATA: lv_mat_sel   TYPE matnr,
        lv_werk_sel  TYPE werks_d,
        lv_pknum_sel TYPE pknum,
        ls_bdcdata   TYPE bdcdata,
        lt_bdcdata   TYPE TABLE OF bdcdata,
        ls_opt       TYPE ctu_params.

  CLEAR ls_bdcdata.
  ls_bdcdata-program  = 'Z2'.
  ls_bdcdata-dynpro   = '1000'.
  ls_bdcdata-dynbegin = 'X'.
  APPEND ls_bdcdata TO lt_bdcdata.

  CLEAR ls_bdcdata.
  ls_bdcdata-fnam = 'P1'.
  ls_bdcdata-fval = '1'.
  APPEND ls_bdcdata TO lt_bdcdata.

CALL TRANSACTION 'Z2' USING lt_bdcdata. "с таким вариантом выполнение транзакции Z2 завершается на commit work.
*  CALL TRANSACTION 'Z2'. "если убрать USING, то проблема исчезает, но селекционник Z2 не заполняется автоматически
  WRITE '1st transaction after'.

Код Z2:
Code:
PARAMETERS: p1 TYPE char1.

START-OF-SELECTION.
  WRITE / '2nd transaction before trigger'.
  COMMIT WORK.
  WRITE / '2nd transaction after trigger'.


Изначальная задача состоит в том, что при дабл-клике какой-либо записи из таблицы, представленной на транзакции 1 должен автоматически заполняться селекционник транзакции 2. Затем пользователь нажимает F8 и на открывшемся экране может произвести некое действие на основе стандартного ФМ с завершающим COMMIT WORK. К сожалению, после этого идет возврат в транзакцию 1. А нужно остаться в транзакции 2 (к примеру, чтобы провести еще одно действие).

Есть идеи как можно это реализовать?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: call transaction... using + commit work  Тема решена
СообщениеДобавлено: Вт, июн 21 2011, 18:31 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Используйте опции
Цитата:
call transaction 'XK01' using bdc_tab messages into messtab
options from opt.
opt-racommit = 'X'(не конец при commit work)


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: call transaction... using + commit work
СообщениеДобавлено: Ср, июн 22 2011, 09:17 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, янв 16 2007, 19:00
Сообщения: 168
Откуда: город
Не заметил такой штуки :oops: Спасибо большое!


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

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


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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