If Error
この関数では、フローを停止せずにエラーを処理するための別のアクションを指定できます。
If Error関数は、フローのコンテナーとして表示され、以下のオプションを指定できます。
-
Try:1つ以上のアクションや関数を実行します。
-
If Error:Tryセクションのいずれかのステップでエラーが発生した場合に実行する代替アクションや機能を指定します。
-
Outputs:フローは以後のステップで、任意の出力フィールドを使用できます。それぞれの出力に割り当てられる値は、エラーが発生したかどうかによって異なります。
ドロップダウンメニューを使用して、TryステップとIf Errorステップを切り替えます。
Try
新しいIf Errorコンテナーをフローに追加する時は、まずTryセクションでステップを定義する必要があります。これらのステップは、実行すべき1つ以上のアクションや関数で構成されます。このコンテナーに、フローの場合と同様にカードを追加することができます。
フローに存在する既存の一連のステップにエラー処理を追加するには、Try(If Error)ブロックに含めるカードの後に、If Error(Try)カードをフローに挿入し、既存のカードを最も右側のものから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(Return)またはIf Error(Continue If)ブロック内でReturn(Try)またはContinue If(If Error)(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)コンテナーの右上にある出力の表示(View Outputs)(If Error)をクリックします。これにより、TryブロックとIf Errorブロックの右側にペインが開きます。
-
クリックして新しい出力を追加します。名前を入力し、型を選択します。2つの入力が各出力の下に表示されます。
-
出力をTryブロックからいずれかのフィールドにドラッグします。これはエラーが発生しない場合です。
-
出力をIf Errorブロックからもう一方のフィールドにドラッグします。これはエラーが発生した場合です。
このペインの出力は、フローの以後のステップにマップできます。