LoginSignup
3
1

More than 1 year has passed since last update.

【MuleSoft】MCD資格の勉強メモ(フローのエラー制御)

Last updated at Posted at 2021-05-27

・MCD(MuleSoft Certified Developer)の勉強をした際に、フローのエラー制御でつまずいたので、メモです。
・試験では、フローが書いてあり、何が出力されるのか問う問題が多数ありました。(2021/5/25時点)

定義

・エラーが発生したら、(同じフロー内の、)後続処理は実行しない。
・成功した場合、Payloadが出力される。(ステータスコードは200)
・失敗した場合、Errorオブジェクトが出力される。
・Errorメッセージは、上書くことが出来る。
・Errorは以下3種類ある。
  ①アプリ
  ②フロー
  ③プロセス
・フローにエラーが無い場合など、アプリのエラーが実行される。
(つまり余り実行されるケースはない。)
・On Error Continueは、エラーであっても、OK(成功)を返す。
・On Error Propagateは、エラーをエラーオブジェクトで返す。

<問題>フローの結果、出力される値、後続処理の実行有無に関して。

パターン①

以下、③でエラー発生した場合の場合の出力結果
image.png

・③でエラーが発生した際に、後続処理は実行されない。
・Subフロー内のエラースコープは、On Error Propagateなので、呼び出し元のフローに、NGを返す。
・②はNGを受け取り、⑤の後続処理を実行しない。
・Mainフロー内のエラースコープは、On Error Propagateなので、NGと、エラーメッセージを返す。
→結論
 結果:NG
 返却する値:③のエラーメッセージ

image.png

パターン②

今度は、MainフローがOn Error Continueのケース。
以下、③でエラー発生した場合の場合の出力結果
image.png

・③でエラーが発生した際に、後続処理は実行されない。
・Subフロー内のエラースコープは、On Error Propagateなので、呼び出し元のフローに、NGを返す。
・②はNGを受け取り、⑤の後続処理を実行しない。
・Mainフロー内のエラースコープは、On Error Continueなので、OKと、Payloadを返す。
→結論
 結果:OK
 返却する値:Payload

image.png

パターン③

今度は、SubフローもOn Error Continueのケース。
以下、③でエラー発生した場合の場合の出力結果
image.png

・③でエラーが発生した際に、後続処理は実行されない。
・Subフロー内のエラースコープは、On Error Continueなので、呼び出し元のフローに、OKを返す。
・②はOKを受け取ったため、⑤の後続処理を実行する。
・Mainフロー内のエラースコープは、On Error Continueなので、OKと、Payloadを返す。
→結論
 結果:OK
 返却する値:Payload

image.png

パターン④

以下、③でエラー発生した場合の場合の出力結果

※考慮事項。エラーの返却時のBodyが、Payloadでうわがかれている。
< http:error-response >
< http: body>< ![CDATA[#payload]> < /http: body>
< /http:error-response >

image.png

・③でエラーが発生した際に、後続処理は実行されない。
・Subフロー内のエラースコープは、On Error Propagateなので、呼び出し元のフローに、NGを返す。
・②はNGを受け取り、⑤の後続処理を実行しない。
・Mainフロー内のエラースコープは、On Error Propagateなので、NGを返す。
 通常エラーオブジェクトを返すが、うわがかれているので、Payloadが返る。
→結論
 結果:NG
 返却する値:Payload

image.png

参考

https://qiita.com/ykibe/items/7788e75ead31eeeb8833
https://docs.mulesoft.com/jp/mule-runtime/4.3/error-handling
https://qiita.com/nori83/items/7a16de3b181384b10976

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1