はじめに
前回は、以下の記事でformula(関数)を利用した特定のキーの値を取得する方法について説明しました。
formulaでも特定のキーの値は取得可能ですが、実行されたコネクタの出力結果を見て目的の値がセットされているキーを探し当てなければならない、リストが処理できないといった欠点があります。また、出力結果が複雑である場合、formulaでの対応は非常に面倒なものとなります。formulaが複雑になれば、デバッグしづらい、バグが発生しやすい、実装内容によっては秘伝のタレ状態になる恐れがある(実装した本人しか正しい仕様を把握できない状態になる恐れがある)等、保守性の面で様々なデメリットが生じます。
formulaを利用する以外にも方法はありますが、その中の1つとしてJSON Parser by Workatoコネクタを利用する方法があります。JSON Parser by Workatoを利用することで、スキーマの再定義を行うことができます。これにより、データピルから目的の値を取得できるようになります。また、元の結果ではデータピルとして展開されていなかったリストも、この方法を用いることでリストが展開され、データピルから選択してループ処理等で利用することが可能になります。
今回は、JSON Parser by Workatoを利用した、データピルに展開されていないキーやリストの値の取得方法について説明します。
手順
1.出力結果の確認とコピー
レシピを一度実行し、Jobの実行結果より目的のコネクタのOutputを確認します。その後、「Copy JSON」をクリックし、出力内容をJSONテキストとしてコピーします。
2.JSON Parser by Workatoコネクタの追加
レシピ編集画面を表示し、JSON Parser by Workatoコネクタを追加します。
3.JSON Parser by Workatoの設定
「Sample document」には、手順1でコピーしたJSONテキストを貼付します。
「Document」には、JSON化したコネクタの出力結果をセットします。JSONテキストとしてセットする必要があるため、 .to_json
メソッドを利用してコネクタのOutputをJSONテキストに変換します。
結果
JSON Parser by Workatoコネクタの「Sample document」に入力された値をもとにスキーマが自動的に生成され(再定義され)、再定義されたスキーマより必要なキーをセットして、各コネクタでその値を利用することが可能となります。
Slackコネクタのトリガを例にすると、JSON Parser by Workatoを利用してスキーマを再定義することで、これまでのキーの値に加え、赤枠で示したキーの値も、データピルを利用して取得できるようになります。
また、オリジナルではデータピルに展開されていなかった Blocks
というリストは、以下のようにループ処理で利用することが可能になります。