ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

エラー発生時にフローを停止する方法

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2009-7-30 19:39
matsushita  新米   投稿数: 13
> jBOLTerさん

コメントありがとうございます。
確かにコンポーネントの実行条件でsys.ErrorCodeをキーに停止することも可能ですが、
全てのコンポーネントに条件式をつけなくてはいけないことになってしまい、
あまり現実的ではないのではないかと思っています。

エラーフロー実行後に停止することが出来れば簡単なのですが。。。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-30 18:36 | 最終変更
jBOLTer  一人前   投稿数: 82
matsushita さん、こんにちわ

>例)
>◆実行フロー
>A→B→C→D
>(A,B,C,Dはコンポーネント)
>フロー特性でエラーフローを設定
>◆エラーフロー
>E→F→G

>◆実現したい事
>実行フローのBコンポーネントなどでエラーが発生した場合、
>エラーフロー(E→F→G)が呼び出され、終了。
>(C,Dのコンポーネントは実行されない)

jBOLTV2.5では各コンポーネントの実行(正常終了かエラーが発生したか)のステータスがsys.ErrorCodeという変数に格納されます。正常終了すると0(Zero)が設定され、エラーがあると0以外が設定されます。

エラーが発生した際に後続のコンポーネントを実行させたくないということであれば、各コンポーネントに実行条件をつけることができます。

上記例でBでエラーが発生した際にCを実行させたくないのであれば、Cのコンポーネントの実行条件で「sys.ErrorCode = 0」という条件を設定してみてください。そうすると、上記ステップで正常終了した場合のみ、後続が実行されます。

実行条件は各コンポーネントを右クリックすると表示されるコンテキストメニューから条件式を選択すると指定することができます。お試しください。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-29 17:33
matsushita  新米   投稿数: 13
>sndirectさん

教えていただいた方法ではフローを停止することが出来ませんでした。

エラーが発生したフローのリカバリポリシーを「Abort」に設定し、
エラーリポジトリでエラーポリシーを「Abort」に設定しましたが、
エラーフローが呼び出された後、続きのフローが実行されてしまいました。


ちなみに、
エラーフローのリカバリポリシーとエラーポリシーを「Abort」に設定し、
エラーフロー内で意図的にエラーを発生させるとフローはエラーフローで停止しました。


もしかして、エラーフローを呼んだ時にリカバリポリシーは適用されないのでしょうか。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-27 9:52
sndirect  新米   投稿数: 7
こんにちは。

jBOLTではエラーポリシーをフローごとに決定できます。
通常エラーフローは実行された後、元のフローに戻りますが、
そこでフロー処理をどうするかは、このエラーポリシーで決まり
ます。その動きには、アボート、無視、再起動、フロー再試行、
ジャンプ、セーブポイントがあります。元のフローを停止したい
のであれば、アボートを選択すればよいと思います。

詳細はヘルプの以下の部分に書いてあります。

インテグレーター向けガイド > エラーを処理する
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2009-7-24 11:56
matsushita  新米   投稿数: 13
フローでエラーが発生した際にエラーフロー(フロー特性-外部で設定)を呼びだしてメールを送信するフローを作成しています。

メール送信終了した際にエラーが発生したフローを停止するようにするにはどのようにしたらよいのでしょうか。

現状はメール送信フローが終了すると
エラーが発生したフローに戻り、続きのコンポーネントが実行されてしまいます。

例)
◆実行フロー
A→B→C→D
(A,B,C,Dはコンポーネント)
フロー特性でエラーフローを設定
◆エラーフロー
E→F→G

◆実現したい事
実行フローのBコンポーネントなどでエラーが発生した場合、
エラーフロー(E→F→G)が呼び出され、終了。
(C,Dのコンポーネントは実行されない)

バージョンはV2.5SP8です。
よろしくお願いします。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約