2014-02-20 4 views
1

Возможно ли вставить код java для запуска предыдущего действия в потоке определения процесса?Как управлять деятельностью Tibco BW с использованием JAVA-кода в TIBCO BW

Пример: определение процесса содержит следующие элементы.

Start--> ReadFile-> SoapRequestReply -->end 

В приведенном выше примере я хочу повторить активность SoapRequestReply с помощью кода Java, если выполнение этой деятельности содержит какую-либо ошибку.

Я хочу реализовать логику в общем виде ... Я знаю, что указанная концепция может быть реализована с помощью группы «REPEAT ON ERROR UNTILL TRUE», но я хочу сделать это с помощью java-кода. поэтому новое определение процесса будет выглядеть так.

Start--> ReadFile-> SoapRequestReply --exception-->RetryOnce(Java Code) --> end.. 

Код Java будет выполнять предыдущее действие еще раз.

Пожалуйста, предложите ...

+1

Почему это должно быть в Java деятельности? Какова фактическая проблема, которую вы пытаетесь решить (в отличие от проблемы с вашим желаемым решением)? –

ответ

0

Вы можете сделать это, просто окружать SoapRequestReply с группой. Это может быть либо группа «Повторить по ошибке до истины», которая повторяет по условию x раз, если возникает ошибка, или цикл «while true» с индивидуальной обработкой (переход с ошибкой), например. для ведения журнала.

Нет кодирования/действий Java.

С наилучшими пожеланиями Себом

+0

Я хочу реализовать его, кроме использования функции «Группа». Либо Java-код, либо каким-то другим способом. Можем ли мы это сделать, кроме использования «группы»? – user3332463

+2

См. Решение Nicolas выше;) Однако почему вы хотите избежать группы? – Seb

3

Это, действительно, идеально подходит для группы ошибок. Но если вы действительно не можете позволить себе использовать его, вы можете создать SubProcess, который вызывает ваш MainProcess при ошибке и удерживает счетчик повторов в общей переменной задания. Обратите внимание, что это быстрое и грязное решение.

MainProcess SubProcess

+0

Nice Logic man, Но я просто хочу повторить действие, в котором я получаю сообщение об ошибке. Я не хочу повторять весь процесс. Позвольте мне объяснить вам, почему я хочу повторить только одно действие. Предположим, что в определении процесса есть два действия, на которых я хочу реализовать логику «повторить еще один раз». В этом случае логика, о которой вы описали, не собирается работать. Поэтому я хочу использовать код Java или другую логику, которая могла бы служить цели. – user3332463

+0

В описанном вами сценарии OP это решение будет работать. Цена платить каждый раз читает файл, поэтому я назвал его обходным решением Q & D. Но если вы хотите иметь возможность воспроизводить ТОЛЬКО активность, которая потерпела неудачу, тогда все становится немного сложнее, и я не уверен, что вы можете добиться этого на Java. Типичные механизмы воспроизведения используют контрольно-пропускные пункты или очереди JMS, но затем все действия, расположенные «после» точки сохранения, будут воспроизведены не только с ошибкой ... –

+0

Да, я хочу повторить только те действия/действия, которые не удалось. Любое предложение, как я могу реализовать его? – user3332463

Смежные вопросы