0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WorkatoAdvent Calendar 2022

Day 7

Workato:JSON Parser by Workatoを利用して、データピルに展開されていないキーやリストの値を取得する

Last updated at Posted at 2022-12-07

はじめに

前回は、以下の記事でformula(関数)を利用した特定のキーの値を取得する方法について説明しました。

formulaでも特定のキーの値は取得可能ですが、実行されたコネクタの出力結果を見て目的の値がセットされているキーを探し当てなければならない、リストが処理できないといった欠点があります。また、出力結果が複雑である場合、formulaでの対応は非常に面倒なものとなります。formulaが複雑になれば、デバッグしづらい、バグが発生しやすい、実装内容によっては秘伝のタレ状態になる恐れがある(実装した本人しか正しい仕様を把握できない状態になる恐れがある)等、保守性の面で様々なデメリットが生じます。

formulaを利用する以外にも方法はありますが、その中の1つとしてJSON Parser by Workatoコネクタを利用する方法があります。JSON Parser by Workatoを利用することで、スキーマの再定義を行うことができます。これにより、データピルから目的の値を取得できるようになります。また、元の結果ではデータピルとして展開されていなかったリストも、この方法を用いることでリストが展開され、データピルから選択してループ処理等で利用することが可能になります。

今回は、JSON Parser by Workatoを利用した、データピルに展開されていないキーやリストの値の取得方法について説明します。

手順

1.出力結果の確認とコピー

レシピを一度実行し、Jobの実行結果より目的のコネクタのOutputを確認します。その後、「Copy JSON」をクリックし、出力内容をJSONテキストとしてコピーします。
image.png

2.JSON Parser by Workatoコネクタの追加

レシピ編集画面を表示し、JSON Parser by Workatoコネクタを追加します。
image.png

3.JSON Parser by Workatoの設定

「Sample document」には、手順1でコピーしたJSONテキストを貼付します。
image.png
「Document」には、JSON化したコネクタの出力結果をセットします。JSONテキストとしてセットする必要があるため、 .to_json メソッドを利用してコネクタのOutputをJSONテキストに変換します。

結果

JSON Parser by Workatoコネクタの「Sample document」に入力された値をもとにスキーマが自動的に生成され(再定義され)、再定義されたスキーマより必要なキーをセットして、各コネクタでその値を利用することが可能となります。

image.png

Slackコネクタのトリガを例にすると、JSON Parser by Workatoを利用してスキーマを再定義することで、これまでのキーの値に加え、赤枠で示したキーの値も、データピルを利用して取得できるようになります。

image.png

また、オリジナルではデータピルに展開されていなかった Blocks というリストは、以下のようにループ処理で利用することが可能になります。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?