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

Часовой пояс: 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 часа


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

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


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

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