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

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


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

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


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

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