Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => SE38 - ABAP Редактор => Тема начата: Паганель от Октябрь 15, 2008, 07:14:44 pm

Название: Сброс буферов или еще что-то ....
Отправлено: Паганель от Октябрь 15, 2008, 07:14:44 pm
Вообщем нужна помощь или идея, буду рад любым даже самым безумным идеям ......

Ситуация такая: есть прога (не важно где и как запускается), она создает заказ, потом ПМ (отпуск 161 ВД), потом СФ,
и вот случаются ситуации когда после создания заказа, ПМ и СФ не создаются, сижу анализирую код, единственное место
в котором могут быть по ИМХО проблемы - перед созданием ПМ идет проверка есть ли заказ (простым select from ekko), и тут
думаю? возможны ситуации, когда при массовой заливки заказ создался и не прошел еще апдейт (3 кажется все процеса на инсерт/апдейт в SAP) и выборка не находит созданный заказ ......

внимание вопрос: как можно сбросить буфера  и т.д. что бы выборка находила заказ..... commit work и тд используется где только возможно ....
еще момент - при тестировании через отладчик такую ситацию воспроизвести не удалось .......
Название: Re: Сброс буферов или еще что-то ....
Отправлено: Uukrul от Октябрь 15, 2008, 07:23:26 pm
You are not allowed to view links. Register or Login
еще момент - при тестировании через отладчик такую ситацию воспроизвести не удалось .......
Буфера тут сбрасывать нафиг надо... надо просто проверять существование документа, например пытаться выставить на документ блокировку, если выставилась, снимаем и можем работать дальше, нет, тогда надо подождать, т.е. нужна проверка на существование документа в базе системы.
Название: Re: Сброс буферов или еще что-то ....
Отправлено: Паганель от Октябрь 15, 2008, 07:49:17 pm
Спасибо за ответ.
да вроде ставится ..... правда не там кажется, сейчас гляну ..... хотя как можно пытатся блокировать того что нет ....
Перед ПМ делается выборка с ekko, и даже если обьект заброкирован, я думаю попытка создать ПМ будет, и если что будет ошибка,
а тут то и нет ошибок, все отрабатывает на ура, только Пм не создается, т.е. либо заказа еще нет (проверка перед ПМ), либо я что-то не понимаю.....

вобщем попробуемс еще так ...

Название: Re: Сброс буферов или еще что-то ....
Отправлено: Паганель от Октябрь 15, 2008, 07:59:40 pm
хотя - пока открывался редактор, пришда мысль, может ты и прав, попытка взять блокировку даст то что перед тем как создавать ПМ,
по любому должен быть заказ .... и т.д. спасибо ....
Название: Re: Сброс буферов или еще что-то ....
Отправлено: Паганель от Октябрь 15, 2008, 08:07:34 pm
извиняюсь, еще один вопросик (на медленном соеденении трудновато ставить опыты, проще спросить): что произойдет если обьекта (заказа) на который пытаемся выставить блокировку нету ?
Название: Re: Сброс буферов или еще что-то ....
Отправлено: Uukrul от Октябрь 15, 2008, 09:55:12 pm
You are not allowed to view links. Register or Login
извиняюсь, еще один вопросик (на медленном соеденении трудновато ставить опыты, проще спросить): что произойдет если обьекта (заказа) на который пытаемся выставить блокировку нету ?
В твоем варианте все будет нормально, так как объект есть, но еще полностью не произошло обновление, поэтому, делаешь выставление блокировки с флагом _XWAIT = X, и получишь управление как раз тогда, когда все будет отработанно. При массовой обработке мне такой способ помогал всегда.
Название: Re: Сброс буферов или еще что-то ....
Отправлено: Uukrul от Октябрь 15, 2008, 10:01:14 pm
You are not allowed to view links. Register or Login
Перед ПМ делается выборка с ekko, и даже если обьект заброкирован, я думаю попытка создать ПМ будет, и
Если заказ заблокирован, то ПМ создать не получится, отвалится по блокировке.
Название: Re: Сброс буферов или еще что-то ....
Отправлено: Паганель от Октябрь 16, 2008, 09:44:29 am
You are not allowed to view links. Register or Login
В твоем варианте все будет нормально, так как объект есть, но еще полностью не произошло обновление, поэтому, делаешь выставление блокировки с флагом _XWAIT = X, и получишь управление как раз тогда, когда все будет отработанно. При массовой обработке мне такой способ помогал всегда.

Большое спасибо, по любому протестирую блокировку в случаях если есть и если нет заказа.

Название: Re: Сброс буферов или еще что-то ....
Отправлено: Паганель от Октябрь 16, 2008, 09:46:10 am
P.S. Надеюсь поможет, так как это только предположение что ПМ не создается из-за того что не срабатывает SELECT.
Название: Re: Сброс буферов или еще что-то ....
Отправлено: Uukrul от Октябрь 16, 2008, 10:48:25 am
You are not allowed to view links. Register or Login
P.S. Надеюсь поможет, так как это только предположение что ПМ не создается из-за того что не срабатывает SELECT.
Ну при  массовой заливке вполне может быть так, что обновления еще не прошли или в процессе, т.е. заказа еще нет... а блокировка точно будет ждать пока оно появится.
Название: Re: Сброс буферов или еще что-то ....
Отправлено: Паганель от Октябрь 16, 2008, 02:32:17 pm
Вообщем посмотрел, оказывается там столял вызов подпрограммы с установкой/снятием блокировки,
еденственное что добавил _XWAIT = X, посмотрим что это даст, плохо что не получается воспроизвести ситуацию с пропуском ПМ в отладчике и вообще в тестовой системе.
Название: Re: Сброс буферов или еще что-то ....
Отправлено: Uukrul от Октябрь 16, 2008, 02:36:47 pm
You are not allowed to view links. Register or Login
Вообщем посмотрел, оказывается там столял вызов подпрограммы с установкой/снятием блокировки,
еденственное что добавил _XWAIT = X, посмотрим что это даст, плохо что не получается воспроизвести ситуацию с пропуском ПМ в отладчике и вообще в тестовой системе.

Почему не получается... после того как не смог прочитать это в SELECT или когда возникла ошибка напиши что то типа:
Код: You are not allowed to view links. Register or Login
if sy-subrc ???
break-point.
endif.
Ну и вывалишься как раз когда появится твоя ошибка.
Название: Re: Сброс буферов или еще что-то ....
Отправлено: Паганель от Октябрь 16, 2008, 05:14:12 pm
Так проблема в том что ошибка то не валится - просто ПМ не создается и все,
притом это нельзя воспроизвести в тестовом режиме (такая фигня и в продуктиве случается не часто)
Название: Re: Сброс буферов или еще что-то ....
Отправлено: Паганель от Октябрь 16, 2008, 05:15:08 pm
+ там везде после после вызова бапи есть обработка ошибок
Название: Re: Сброс буферов или еще что-то ....
Отправлено: Uukrul от Октябрь 16, 2008, 05:16:08 pm
You are not allowed to view links. Register or Login
Так проблема в том что ошибка то не валится - просто ПМ не создается и все,
притом это нельзя воспроизвести в тестовом режиме (такая фигня и в продуктиве случается не часто)
ПМ, не создается, но причина в любом случе есть тогда в параметре return, почему документ не прошел, если это через BAPI делается. Ну или тогда sy-subrc не нулевое, если бапишка вообще плохо себя повела. Других причин вроде как небывает.
Название: Re: Сброс буферов или еще что-то ....
Отправлено: Паганель от Октябрь 19, 2008, 05:52:56 pm
как оказалось (не досомтрел) выше перед select стоял вызов формы с попыткой наложить блокировку,
я вообщем  (как писал ниже) добавил _XWAIT = X, плюс при вызове бапи кучу проверок возвращаемого значения ..... может и нерешится проблема, то хоть буду видеть что есть ошибки, а дальше как нибудь через отладчик .....  ждем продолжения, так как ситуация повторяется редко .....

за помощь спасибо..