Posted: Tue Feb 03, 2015 2:38 pm Post subject: WorkFlow. Поток операции ошибочный. Загадка.
Добрый день!
Вобщем мне дали на сопровождение Workflow. И я слежу за журналом. Просматриваю ошибочные.
И вот одна ошибка которая стала появляться не дает покоя. Разработка не моя, поэтому меня это вводит в ступор, сама суть.
Вот суть:
1) Запуск ПО (WS9*) настроен на событие PURCHASEORDERCHANGE объекта BUS2002.
2) Далее нет никаких условии, циклов, и первым стоит Операция на основе стандартной задачи (далее TS9*)
В операции поток данных настроен (BINDING) - все как положено, передаем параметр, и возвращаем список обработчиков (&EX_AGENTS&)
Типы совпадают!
3) Основа TS9*: Это фоновый вызов метода из Z-класса, тобишь все самописное.
Входной и выходной параметры метода класса как раз теже самые что и в контейнере (причем все необъязательные).
Код метода класса довольно таки прост: Из входящего параметра (который является структурой),
мы получаем необходимые поля и по этим значениям, ЕСЛИ они не пустые, считываем из Z-таблицы по этим полученным данным
обработчиков (US). В коде не идет считывание из контейнера ничего.
!!! И в конце метода стоит RAISE, если вдруг ничего не нашли, т. е. нет обработчиков!!!
НО!!! В самой TS9* не настроена передача параметров (BINDING) - ни IMPORT ни EXPORT, все пустое.
Т. е. по идее в метод ничего не передаем и ничего не получаем.
Версия ПО - всего ОДНА! Задачи и ПО одинаковые - и в разработке, и в тесте, и в продуктиве!
Больно простая ПО, т. к. собственно после получения следующим этапом идет всего-лишь одна диалоговая операция,
где обработчиком будут именно полученные в предыдущей операции.
Так вот незадача: например в день если вдруг будут запущено 5 потоков операции, то 4 ПРОХОДЯТ без проблем.
А одна валится в ошибку!
Ошибка как раз та самая RAISE.
В логах, журналах смотрю контейнеры - все передаются без проблем, значения есть.
Причем как в ошибочных так и в нормальных.
Интересный момент: по логу сам смотрю контейнеры тех 4 ПО которые прошли без проблем,
прохожу по алгоритму метода и нахожу в той самой Z-таблице нужные записи.
а в той которая ошибочна, как раз таки действительно такой записи по ключу в Z-таблице нет.
КАК в метод может передаваться параметр, если он не настроен в потоке данных самой задачи ???
Если бы все потоки были бы ошибочными, я бы не думая просто сделал бы BINDING. Но ведь в основном он как-то передал.
Загадка которая мне не дает покоя.
Кто-нибудь с таким сталкивался? Может еще где-то может как-то передаваться, в момент запуска фоновой задачи?
Куда мне надо смотреть, в какую сторону _________________ !!! Forze Juve !!!
А что за ошибка raise и какой стэк вызовов? Там дамп? Если бы был скрин с ошибкой было бы легче понять в чем дело. Возможно где-то вызывается метод Z и там может быть не всё что угодно=).
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.