エラー発生時にフローを停止する方法
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
matsushita
投稿数: 13
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
> jBOLTerさん
コメントありがとうございます。
確かにコンポーネントの実行条件でsys.ErrorCodeをキーに停止することも可能ですが、
全てのコンポーネントに条件式をつけなくてはいけないことになってしまい、
あまり現実的ではないのではないかと思っています。
エラーフロー実行後に停止することが出来れば簡単なのですが。。。
コメントありがとうございます。
確かにコンポーネントの実行条件でsys.ErrorCodeをキーに停止することも可能ですが、
全てのコンポーネントに条件式をつけなくてはいけないことになってしまい、
あまり現実的ではないのではないかと思っています。
エラーフロー実行後に停止することが出来れば簡単なのですが。。。
投票数:0
平均点:0.00
jBOLTer
投稿数: 82
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
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」という条件を設定してみてください。そうすると、上記ステップで正常終了した場合のみ、後続が実行されます。
実行条件は各コンポーネントを右クリックすると表示されるコンテキストメニューから条件式を選択すると指定することができます。お試しください。
>例)
>◆実行フロー
>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
matsushita
投稿数: 13
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
>sndirectさん
教えていただいた方法ではフローを停止することが出来ませんでした。
エラーが発生したフローのリカバリポリシーを「Abort」に設定し、
エラーリポジトリでエラーポリシーを「Abort」に設定しましたが、
エラーフローが呼び出された後、続きのフローが実行されてしまいました。
ちなみに、
エラーフローのリカバリポリシーとエラーポリシーを「Abort」に設定し、
エラーフロー内で意図的にエラーを発生させるとフローはエラーフローで停止しました。
もしかして、エラーフローを呼んだ時にリカバリポリシーは適用されないのでしょうか。
教えていただいた方法ではフローを停止することが出来ませんでした。
エラーが発生したフローのリカバリポリシーを「Abort」に設定し、
エラーリポジトリでエラーポリシーを「Abort」に設定しましたが、
エラーフローが呼び出された後、続きのフローが実行されてしまいました。
ちなみに、
エラーフローのリカバリポリシーとエラーポリシーを「Abort」に設定し、
エラーフロー内で意図的にエラーを発生させるとフローはエラーフローで停止しました。
もしかして、エラーフローを呼んだ時にリカバリポリシーは適用されないのでしょうか。
投票数:0
平均点:0.00
sndirect
投稿数: 7
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
こんにちは。
jBOLTではエラーポリシーをフローごとに決定できます。
通常エラーフローは実行された後、元のフローに戻りますが、
そこでフロー処理をどうするかは、このエラーポリシーで決まり
ます。その動きには、アボート、無視、再起動、フロー再試行、
ジャンプ、セーブポイントがあります。元のフローを停止したい
のであれば、アボートを選択すればよいと思います。
詳細はヘルプの以下の部分に書いてあります。
インテグレーター向けガイド > エラーを処理する
jBOLTではエラーポリシーをフローごとに決定できます。
通常エラーフローは実行された後、元のフローに戻りますが、
そこでフロー処理をどうするかは、このエラーポリシーで決まり
ます。その動きには、アボート、無視、再起動、フロー再試行、
ジャンプ、セーブポイントがあります。元のフローを停止したい
のであれば、アボートを選択すればよいと思います。
詳細はヘルプの以下の部分に書いてあります。
インテグレーター向けガイド > エラーを処理する
投票数:0
平均点:0.00
matsushita
投稿数: 13
![新米 新米](../../uploads/rank3e632f95e81ca.gif)
フローでエラーが発生した際にエラーフロー(フロー特性-外部で設定)を呼びだしてメールを送信するフローを作成しています。
メール送信終了した際にエラーが発生したフローを停止するようにするにはどのようにしたらよいのでしょうか。
現状はメール送信フローが終了すると
エラーが発生したフローに戻り、続きのコンポーネントが実行されてしまいます。
例)
◆実行フロー
A→B→C→D
(A,B,C,Dはコンポーネント)
フロー特性でエラーフローを設定
◆エラーフロー
E→F→G
◆実現したい事
実行フローのBコンポーネントなどでエラーが発生した場合、
エラーフロー(E→F→G)が呼び出され、終了。
(C,Dのコンポーネントは実行されない)
バージョンはV2.5SP8です。
よろしくお願いします。
メール送信終了した際にエラーが発生したフローを停止するようにするにはどのようにしたらよいのでしょうか。
現状はメール送信フローが終了すると
エラーが発生したフローに戻り、続きのコンポーネントが実行されてしまいます。
例)
◆実行フロー
A→B→C→D
(A,B,C,Dはコンポーネント)
フロー特性でエラーフローを設定
◆エラーフロー
E→F→G
◆実現したい事
実行フローのBコンポーネントなどでエラーが発生した場合、
エラーフロー(E→F→G)が呼び出され、終了。
(C,Dのコンポーネントは実行されない)
バージョンはV2.5SP8です。
よろしくお願いします。
投票数:0
平均点:0.00