はじめに
WorkatoのRecipe functionsで呼び出し元から値を取得する、あるいは呼び出し元に対して値を返す際には、リクエスト(引数)、レスポンス(戻り値)のスキーマ定義が必要となります。
Recipe functionsに対して受け渡す値が少ない場合は1つ1つスキーマを定義して対応することで問題ありませんが、例えば、以下のような内容を全てRecipe functionsへ渡したい場合、受け渡す値が多いためスキーマ定義が非常に複雑になり、定義の手間がかかります。また、スキーマの数の上限により、そもそも値を受け渡せない問題が生じる場合があります。
対応
JSONテキスト化してRecipe functionsへ渡すことで、上記のような値も手軽にRecipe functionsへ受け渡すことが出来ます。
コネクタの戻り値をJSONへ変換するには、Recipe functionsのフィールドをFormulaモードに切り替えたうえで、Recipe functionsへ渡したいアクションのデータピルをセットし、 .to_json
メソッドを追加します。このようにすることで、指定されたRecipe functionsへJSONテキストで値を渡すことができます。
値が渡されたRecipe functionsでは、JSON Parser by Workatoコネクタを利用することで、JSONテキストをパースすることができます。
パースされた結果は、データピルを選択して、各コネクタ(アクション)上で利用することが出来ます。
なお、JSON Parser by WorkatoでJSONをパースする際、スキーマを認識させる(スキーマを自動生成する)ためにSample documentの入力が必要になります。Recipe functionsに値を渡したいコネクタのレスポンスを「Copy JSON」でコピーし、コピーした内容をSample documentへ貼付することで、自動的にスキーマが生成されます。(手動でスキーマを定義したり、Formulaを駆使して対応する必要はありません)
以上のテクニックを活用することで、Workatoのレシピ開発を効率的に行えるようになりますので、是非ご活用ください。