結果セレクターと結果パス

結果セレクターと結果パス

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

Result PathとResult Selectorは、実行が成功したときにステートの結果から動的データを抽出するために使用します。

Result Selector  

Result Selectorでは、実行時データを取得して処理でき、アプリケーション内で柔軟かつ動的なデータ操作が可能になります。これにより、ステートの結果のうち関連性が高く重要な部分を正確に制御し、不要なデータを除外したり、必要に応じて既存の値を変更したりできます。

目的の変更を実装するには、各キーが特定の結果の変更を表すキーと値のペアを定義します。これらのキーに関連付ける値には、静的な値、またはステートの結果から動的に取得した値を指定できます。Result Selectorを使用すると、特定の要件に基づいてResult Pathに送信するデータを調整できます。

ステート内のタスクまたは関数実行の出力として受信した、次のJSONデータを考えます。

{
'status': 'success',
'message': 'Employee onboarded successfully.',
'emp_id': '543',
'name': 'Martin',
'department': 'Product Management',
'joining_date': '2023-07-23',
'designation': 'PM Associate',
'manager': 'Jane Smith',
'location': 'New York',
'salary': 75000,
'benefits': [
'Health Insurance',
'401(k) Plan',
'Paid Time Off'
],
'documents': {
'offer_letter': 'offer_letter_EMP12345.pdf',
'employment_contract': 'empcontract_EMP12345.pdf',
'tax_forms': 'tax_forms_EMP543.pdf'
}
}


この結果のうち、employee_department offer_letterのみを次のステートで使用する場合、[コードビュー]でResult Selectorを使用して次のように実現できます。

{
'get_employee_details': {
'type': 'circuit',
'next': 'End',
'start': true,
'circuit_id': '<Circuit_Name>',
'result_path': '$.Output',
'result_selector': {
'employee_department': '$.department',
'letter_of_intent': '$.documents.offer_letter'
}
}
}


指定したResult Selectorの定義により、次の出力が生成されます。

'output': {
  'employee_department': 'Product Management',
'letter_of_intent': 'offer_letter_EMP543.pdf'
}


結果から必要な情報のみが抽出され、出力として渡されます。
Result SelectorでJSON Path式を設定する方法については、コンテキストオブジェクトを参照してください。

Result Path

Result Pathでは、ステートの出力を調整できます。Result Path内では、ステートの入力、ステートの結果、またはその両方の組み合わせをステートの出力として指定できます。つまり、ステートに渡されたJSON入力にステートの結果を追加し変更を加えることができます。その後、この変更済みJSONをステートの出力として次のステートに渡し、処理できます。Result Selectorが設定されている場合、Result Pathが必須になる点に留意することが重要です。

Result Pathは、Branch、Wait、Success、Failure以外のすべてのステートで利用できます。

Notes
Result Pathを指定しない場合、ステートは結果を破棄し、元の入力を保持します。

たとえば、次のJSONを実行のステート入力とします。

{
'org_name': 'Global Solutions',
'employee_details': {
'name': 'Martin',
'emp_id': '543',
'role': 'PM Associate'
}
}

受信したステートの結果を次のとおりとします。

'location': 'New York'

ステート入力をそのまま保持し、ステートの結果を追加するには、result_path$.locationに設定します。

{
'get_employee_details': {
'type': 'pass',
'next': 'End',
'start': true,
'result_path': '$.employee_details.location',
'result': 'New York'
}
}


これには、実際の入力を含む状態の結果が含まれます。

{
'org_name': 'Global Solutions',
'employee_details': {
'name': 'Martin',
'emp_id': '543',
'role': 'PM Associate',
'location': 'New York'
}
}

実行に失敗した場合、Error PathとError Selectorを使用してデータを絞り込むことができます。




    • Related Articles

    • パラメーター

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 パラメーターは、キーと値のペアを追加することで、状態に渡されるJSON入力をカスタマイズできます。これらの値は静的に指定できるほか、Circuit Input、Config Store変数、Context ...
    • エラーセレクターとエラーパス

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 ...