If Error
この関数では、フローを停止せずにエラーを処理するための別のアクションを指定できます。
If Error関数は、フローのコンテナーとして表示され、以下のオプションを指定できます。
-
Try:1つ以上のアクションや関数を実行します。
-
If Error:[Try]セクションのいずれかのステップでエラーが発生した場合に実行する代替アクションや機能を指定します。
-
Outputs:フローは以後のステップで、任意の出力フィールドを使用できます。それぞれの出力に割り当てられる値は、エラーが発生したかどうかによって異なります。
ドロップダウンメニューを使用して、TryステップとIf Errorステップを切り替えます。
Try
新しいIf Errorコンテナーをフローに追加する時は、まず[Try]セクションでステップを定義する必要があります。これらのステップは、実行すべき1つ以上のアクションや関数で構成されます。このコンテナーに、フローの場合と同様にカードを追加することができます。
フローに存在する既存の一連のステップにエラー処理を追加するには、Tryブロックに含めるカードの後に、If Errorカードをフローに挿入し、既存のカードを最も右側のものから1つずつ順にドラッグします。
手動でエラーを修正する前にフローのステップを自動的に再試行するには、「フローにおけるカードのエラー処理の設定」を参照してください。
If Error
If Errorブロックには、エラーを処理するためのステップが含まれます。フローの場合と同様にアクションや関数を追加することができます。
複雑なエラー処理による解析エラーを避けるために、OktaではネストされたIf Errorブロックを3つまでに制限することをお勧めします。
エラーオブジェクトが各If Errorブロックに追加されます。このオブジェクトには、Tryブロック内の次のエラーの詳細が含まれており、結果としてIf Errorブロックに切り替わります。
-
message:エラーメッセージのテキスト(ある場合)。
-
code:500などのエラーコード。
-
method:エラーが起こった場所のステップのID
-
flo:フローのID。
-
execution:フローの特定の実行のID。エラー処理のステップでは、これらの値を使用できます。たとえば、エラーの詳細をメールで送信したり、予期されるエラーかどうかに応じてフローを進めるかどうかを確認したりできます。
ReturnカードとContinue Ifカードは通常はフローを終了しますが、TryまたはIf Errorブロック内では動作が異なります。TryとIf Errorのブロックは、匿名のヘルパーフローと考えることができます。ヘルパーフローを呼び出したときと同様に、Return関数カードを使用すると親に戻ります。このため、TryまたはIf Errorブロック内でReturnまたはContinue If(falseの場合)カードを使用すると、If Errorコンテナーの直後のステップに実行が進みます。
フローを継続せず停止するには、Return ErrorやReturn Error Ifを使用するか、Continue IfカードをIf Errorブロックの外側で使用します。
Outputs(出力)
If Error関数の前に実行されるカードからTryまたはIf Errorブロックの中に出力をドラッグできますが、TryまたはIf Errorブロックの中からIf Error関数の後に実行されるカードに出力をドラッグすることはできません。これは、TryやIf Error内のステップは必ず実行されるとは限らないためです。この問題を回避するには、オプションのOutputs機能を使用します。
-
出力にアクセスするには、If Errorコンテナーの右上にある[View Outputs(出力の表示)]をクリックします。これにより、TryブロックとIf Errorブロックの右側にペインが開きます。
-
クリックして新しい出力を追加します。名前を入力し、型を選択します。2つの入力が各出力の下に表示されます。
-
出力をTryブロックからいずれかのフィールドにドラッグします。これはエラーが発生しない場合です。
-
出力をIf Errorブロックからもう一方のフィールドにドラッグします。これはエラーが発生した場合です。
このペインの出力は、フローの以後のステップにマップできます。