お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版を参照してください。
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以外のすべてのステートで利用できます。
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を使用してデータを絞り込むことができます。