Текущее время: Чт, июл 03 2025, 12:26

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: данные не обновлены
СообщениеДобавлено: Чт, июн 01 2006, 17:44 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
Доброе время суток.

В программе есть необходимость запустить транзакцию:

CALL TRANSACTION 'FB02' AND SKIP FIRST SCREEN
...
в процессе работы транзакции изменяются данные в таблице BSEG.
После выхода из транзакции проверяю данные в таблице.
Но изменений там нет.
Что необходимо сделать? COMMIT WORK не помогло.


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Цитата:
...


Наверное, в этих трёх точках ошибка, т.е. в процессе batch-сессии.
Попробуй использовать опцию mode = 'A'


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

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
sibrin написал:
Цитата:
...


Наверное, в этих трёх точках ошибка, т.е. в процессе batch-сессии.
Попробуй использовать опцию mode = 'A'


Да нет, основная программа продолжает работать, следом за вызовом транзакции идет SELECT из BSEG. А данных еще в таблице нет...


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Тогда
http://sapboard.ru/forum/viewtopic.php?t=3406


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 01 2006, 18:13 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
call transaction .. update 'S'.
или
commit work and wait

_________________
полный SAPец


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

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
slash написал(а):
call transaction .. update 'S'.
или
commit work and wait


а что значит ".."?

как мне сформировать строку, чтобы было и

update 'S' и skip first screen ?.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 01 2006, 19:48 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
Igor Garanichev написал:
slash написал(а):
call transaction .. update 'S'.
или
commit work and wait


а что значит ".."?

как мне сформировать строку, чтобы было и

update 'S' и skip first screen ?.

из хелпа:
CALL TRANSACTION tcod.
Extras:
1. ... AND SKIP FIRST SCREEN
2. ... USING itab
2a. ... OPTIONS FROM opt
2b. ... MODE mode
2c. ... UPDATE f
2d. ... MESSAGES INTO itab
Addition 2c
... UPDATE f
Effect
The update mode f specifies the type of update. It can take the following values:
'A' (asynchronous update)
'S' (ssynchronous update)
'L' (local update)
If the UPDATE addition is omitted, the update mode is 'A'.

исли хочется сразу всего и много
Addition 2a
... OPTIONS FROM opt
Effect
This addition gives you control using the values of the components of the structure opt, which must be of the Dictionary type CTU_PARAMS. The components have the following meaning:

_________________
полный SAPец


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

Зарегистрирован:
Чт, авг 19 2004, 07:31
Сообщения: 234
Откуда: Нижнекамск
slash а ты читал сам то это?
:D

1. ... AND SKIP FIRST SCREEN
2. ... USING itab
2a. ... OPTIONS FROM opt
2b. ... MODE mode
2c. ... UPDATE f
2d. ... MESSAGES INTO itab

In an ABAP Objects context, a more severe syntax check is performed that in other ABAP areas. See Incorrect transaction call.
Effect
Calls the transaction tcod; you can specify tcod either as a literal or a variable. The called transaction ends and control returns to the point from which it was called when the LEAVE PROGRAM statement is reached. You can only use one of the two additions in each statement.

В последнем предложении знаешь что написано?


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

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Коллеги, первый вопрос-то был про диалоговый режим работы, так что тут что UPDATE, что MODE не катят. :)
Видимо после выполнения транзакции нужно будет в цикле блокировку запустить, чтобы словить момент, когда UPDATE закончился. Хотя, наверное, есть и получше решение.

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


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

Зарегистрирован:
Чт, авг 19 2004, 07:31
Сообщения: 234
Откуда: Нижнекамск
дак и я про то же...не катят


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Сергей Королев написал:
Коллеги, первый вопрос-то был про диалоговый режим работы


А если записать в itab только первый экран и первый Ok-code, диалог продолжится со второго экрана. Может тут какие подводные камни есть...

Eugene написал(а):
1. ... AND SKIP FIRST SCREEN
2. ... USING itab

You can only use one of the two additions in each statement.

В последнем предложении знаешь что написано?


Пункт 1 - это очень частный случай 2.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 02 2006, 09:17 
Специалист
Специалист

Зарегистрирован:
Вт, ноя 02 2004, 10:06
Сообщения: 136
Вообщем, по результатам копания в системе у нас был написан ФМ
Code:
FUNCTION ZSD_WAIT_ON_COMMIT.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     REFERENCE(TCODE) LIKE  SY-TCODE
*"----------------------------------------------------------------------
  DATA: FLG_READY TYPE I VALUE 0.
  DATA  VBKEY LIKE VBHDR-VBKEY VALUE IS INITIAL.

  DO.
     FLG_READY = 1.
     SELECT VBKEY FROM VBHDR UP TO 1 ROWS
                  INTO VBKEY
                  WHERE       VBMANDT =       SY-MANDT
                    AND       VBUSR   =       SY-UNAME
                    AND       VBTCODE =       TCODE
                    AND     ( VBRC    BETWEEN 0 AND 255 )
                    AND NOT ( VBRC    BETWEEN 2 AND 200 ).
     ENDSELECT.
     IF SY-SUBRC = 0.
        FLG_READY = 0.
     ENDIF.

     IF FLG_READY = 1.
        EXIT.
     ENDIF.
  ENDDO.


ENDFUNCTION.

Может это оно?


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Если немножко оптимизировать, то вообще красота.
Интересно, магические цифры 2..200 экспериментальным путём получены или документация какая-то есть?
А VBRC > 255 бывает?
Code:
FUNCTION ZSD_WAIT_ON_COMMIT.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     REFERENCE(TCODE) LIKE  SY-TCODE
*"----------------------------------------------------------------------
  DATA  VBKEY LIKE VBHDR-VBKEY VALUE IS INITIAL.
  DO.
     SELECT SINGLE VBKEY FROM VBHDR
                  INTO VBKEY
                  WHERE VBMANDT = SY-MANDT
                    AND VBUSR   = SY-UNAME
                    AND VBTCODE = TCODE
                    AND VBRC BETWEEN 2 AND 200 .
     IF SY-SUBRC = 0.
        EXIT.
     ENDIF.
     CALL FUNCTION 'RFC_PING_AND_WAIT'
     EXPORTING   SECONDS = 1.
  ENDDO.
ENDFUNCTION.


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

Зарегистрирован:
Вт, ноя 02 2004, 10:06
Сообщения: 136
Есть стандартный ФМ с "WAIT_ON_COMMIT" в названии. Там только <я не знать русский языка> ограничения по имени транзакции, ради добавления которого и был создан свой ФМ. Все цыферки взяты из исходного ФМ


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
qq написал(а):
Есть стандартный ФМ с "WAIT_ON_COMMIT" в названии.

Спасибо. Все константы в инклюде TSKHINCL описаны.


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

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


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

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


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

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