Текущее время: Ср, июл 30 2025, 18:44

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Ср, дек 02 2009, 13:15 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
Как определить номер только что созданного документа,после работы call TRANSACTION,т.е. пакетник создает в мое случае lnran
и я тут же должен уже с ним работать.
Ищу его через select (max ), до этого пмшу commit work and wait ,а берется предыдущий номер.Плдскажите как быть


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Ср, дек 02 2009, 13:20 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, апр 07 2009, 10:23
Сообщения: 51
Пол: Мужской
чисто логически - если докумет создаётся стандартной транзакцией - то скорее всего она выставляет set/get параметр...
с номером последнего документа, откуда его и можно вытянуть...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION 'ABUMN'
СообщениеДобавлено: Ср, дек 02 2009, 13:32 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
Беда в том,что я не корректно выразилась,мне нужно поле lnran, который обновляется,но он не имеет идентификатора .


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Ср, дек 02 2009, 13:33 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
gasjuk написал(а):
Как определить номер только что созданного документа,после работы call TRANSACTION,т.е. пакетник создает в мое случае lnran
и я тут же должен уже с ним работать.
Ищу его через select (max ), до этого пмшу commit work and wait ,а берется предыдущий номер.Плдскажите как быть


call transaction ... messages into itab.

в itab что возвращает смотрели ?

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Ср, дек 02 2009, 13:42 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
itab пусто


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Ср, дек 02 2009, 14:08 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
gasjuk написал(а):
itab пусто


есть подозрение что у вас там документ и не создается. попробуйте прогнать ваш пакетник в режиме просмотра экранов. возможно быстрее увидите причину.

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Ср, дек 02 2009, 14:31 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
Вы знаете все создается,только я поймать не могла .А сейчас я добавила в CALl trans параметр update со значеним 'S' и словила через select max.
Вроде получилось.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Ср, дек 02 2009, 14:48 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
gasjuk написал(а):
Вы знаете все создается,только я поймать не могла .А сейчас я добавила в CALl trans параметр update со значеним 'S' и словила через select max.
Вроде получилось.


ясно. еще раз убеждаюсь что надо сразу выкладывать код :wink:

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Ср, дек 02 2009, 14:52 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пн, окт 16 2006, 07:31
Сообщения: 628
Откуда: СССР
Пол: Мужской
можно посмотреть таблицу SYST. там обычно хранятся результаты обработки транзакции и номера созданных документов.
не важно колл транзакшн или батч инпут.
поля:
MSGID, MSGTY, MSGNO, MSGV1, MSGV2, MSGV3, MSGV4.

читать sy-msgv... надо сразу после завершения необходимой транзакции иначе эти данные затрутся данными последущей обработки самой программы.

_________________

Мы делаем простые вещи - сложными!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Ср, дек 02 2009, 14:58 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Rednaxela написал:
можно посмотреть таблицу SYST. там обычно хранятся результаты обработки транзакции и номера созданных документов.
не важно колл транзакшн или батч инпут.
поля:
MSGID, MSGTY, MSGNO, MSGV1, MSGV2, MSGV3, MSGV4.

читать sy-msgv... надо сразу после завершения необходимой транзакции иначе эти данные затрутся данными последущей обработки самой программы.

Структуру SYST.
И к тому же в полях MSG* будет лежать только последнее сообщение, конструкция 'call transaction ... messages into itab' в этом плане гораздо более предпочтительна. Ну или get parameter, если транзакция позволяет

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Ср, дек 02 2009, 15:25 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
В ITAB в полях MSGV1-4 должен лежать номер FI-ного документа.
В BKPF ищем его и находим соответствующий номер из AA по формуле:
AWKEY = номер док. + БЕ + год.
Далее в ANEK ищем LNRAN по ключу BUKRS, ANLN1, ANLN2, GJAHR + BELNR = номер док. из AWKEY.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Ср, дек 02 2009, 15:43 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Ребята, у человека было проблема в том, что он прогонял пакетник в асинхронном режиме(параметр update).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Ср, дек 02 2009, 15:52 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Цитата:
Вы знаете все создается,только я поймать не могла .А сейчас я добавила в CALl trans параметр update со значеним 'S' и словила через select max.
Вроде получилось.

Ребята, у человека было проблема в том, что он прогонял пакетник в асинхронном режиме(параметр update).

А если двое-трое будут выполнять данный пакетник одновременно?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Чт, дек 03 2009, 03:51 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Тема эта уже не однократно обсуждалась
1 Режим обновления можно поставить 'L' это заставит обновление выполняться в процессе что и ваша программа
если после создания документа требуется ещё какието действия с ним то этот пункт совершенно необходим.
2.1. Для определения номера документа SET/GET параметры не подходят ибо они могут выставляться из разных режимов
например стали вы в другом режиме пока выполняется пакетник смотреть какие нибудь документы и в результате пакетник может словить не тот документ... у меня такие случаи были
2.2. messages into itab заполняется почему то не всегда т.е. не всегда есть собщение о созданном документе
2.3. Можно попробовать ещё так
Code:
DATA:    BEGIN OF xbltab OCCURS 1.
        INCLUDE STRUCTURE blntab.
DATA:    END OF xbltab.

IMPORT xbltab     FROM  MEMORY ID 'FI_XBLTAB'.

хотя тоже нет полной уверенности что это всегда работает

_________________
Изображение Попытка не пытка


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как определить номер только что созданного документа,после работы call TRANSACTION
СообщениеДобавлено: Пн, дек 07 2009, 12:11 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
Все-таки я работаю с основным средством и max(LNRAN) отрабатывает верно,т.к. в where Б.е и год и основное средство и дата и bwasl.
Но конечно в других случаях вы правы


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

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


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

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


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

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