メインコンテンツにスキップ
同じ処理を繰り返すオペレーションの応用的な使い方

2024年8月8日時点の仕様です。

Yoom 青柳 avatar
対応者:Yoom 青柳
4か月以上前に更新

概要

Yoomでは同じ処理を繰り返すオペレーション(以下ループ処理)を用いることで、複数取得した値を繰り返し処理し、レコードの転記などに活用することができます。

今回は、1度の操作で複数のループ処理を行う設定方法および例を紹介します。

なお、ループ処理の基本的な設定方法や例については以下もご参照ください。

どのようなことができるのか

1度のループ処理で複数の値を処理することでどのようなことが実現できるかを、具体的な例を用いて説明します。

  • kintoneの指定レコードのファイルフィールドに複数のファイルが格納されており、このファイルを一度の操作でダウンロードし同一のファイル名でGoogle Driveにアップロードすることができる

    • kintoneからファイルをダウンロードする場合、仕様上ファイル名がUntitledに統一されてしまうため、ファイル名も同時に取得しておく必要があります。
      複数の値を一度にループ処理しない場合、一度Googleスプレッドシートなどを介し、関数を用いてファイル名を取得し直すという動作が必要になりますが、それを回避することができます。

  • OCRで読み取った複数列、複数行のデータを一度にGoogleスプレッドシートに追加することができる

    • 複数の値を一度にループ処理しない場合、画像やファイルの読み取りで取得した複数データを一度Googleスプレッドシートなどに移したあと、関数を用いてレコード状に並び替え、再取得かつ再レコード追加といった複数の操作が必要になります。
      複数の値を一度にループ処理することで、上記の操作を省略し簡易的にデータの転記が可能になります。

複数のループ処理を行う設定例:1

それでは実際に、「kintoneのレコードが更新されたら、対象レコードのファイルフィールドにあるすべてのファイルをGoogleDriveにアップロードする」というフローボット例を用いて設定例を紹介します。

フローボットの全体像は以下のようなイメージとなります。

※今回は、レコードが編集されたらというトリガーの設定は割愛するので、必要に応じて以下をご参照ください。

1.kintoneのレコードからファイルキーとファイル名の一覧を取得する

はじめにトリガー直下の+ボタンを押し、アプリと連携するオペレーションからkintoneを選択して、以下の設定を行います。

  • アクション:レコードに紐づくファイルキーをの取得

  • サブドメイン:kintoneのURLからコピーし入力してください。

  • アプリID:対象のアプリIDを入力してください。

  • レコードID:トリガーで取得したレコードIDを埋め込んでください。

その後テストを押し、成功したら画面下部の+取得する値を追加を押します。

その後、以下のように入力欄に指定のJSONPathを入れ、ファイル名の一覧を取得します。

record'添付ファイル'.value[*].name※添付ファイルと入る位置はフィールドコードなので、設定されているフィールドコードに合わせてください。

その後取得したJSONPathのアウトプットにカーソルを合わせペンマークを押します。

項目名をわかりやすい名称に、入力形式をリストに変更して保存し完了です。

JSONPathの取得方法についてはこちらもご覧ください。

2.複数ループ処理を設定する

次に以下の設定を行います。

  • オペレーション:同じ処理を繰り返す

  • オペレーションやアクション:以下添付のように複数設定してください。

3.kintoneからファイルをダウンロードする

次にループ方面に対して、アプリ連携するオペレーションからkintoneを選択し、以下設定します。

  • アクション:ファイルをダウンロード

  • サブドメイン:kintoneのURLからコピーし入力してください。

  • ファイルキー:添付のようにループ処理で取得したファイルキーの一覧のループ変数を埋め込みます。

※このとき常にダウンロードしたファイル名がUntitledに変化する仕様となります。

4.Google Driveにファイルをアップロードする

最後にアプリと連携するオペレーションからGoogle Driveを選択し、以下設定します。

  • アクション:ファイルをアップロードする

  • 格納先のフォルダID:任意のフォルダを候補から選択してください。

  • ファイル名:3と同じようにループ処理からファイル名の一覧のループ変数を埋め込みます。

  • ファイルの貼付方法:アウトプットを使用するとし、3でダウンロードしたファイルを添付します。

以上のように短いフローで、kintoneから複数取得したファイルをそのファイル名を保持したままGoogle Driveにアップロードすることができます。

複数のループ処理を行う設定例:2

次に、「メールで届いた請求書から品目や金額などをOCRで読み取り、一度にGoogleスプレッドシートに追加する」というフローボット例を用いて設定例を紹介します。

フローボットの全体像は以下のようなイメージとなります。

※今回は、メールトリガーは割愛するので、以下をご参照ください。

また今回以下のような請求書から品目等を抽出します。

1.画像・PDFから文字を読み取る設定

まずは以下のような設定を行い、請求書から情報を抽出します。

オペレーションの一覧から、画像・PDFから文字を読み取るを選択し、以下のアクションを設定し次に進みます。

その後以下のようにファイルの添付方法を取得した値を使用として、メールに添付されたファイルを引用します。

追加で抽出したい項目に、品目などが一覧で抽出できるよう指示を出し、テストします。

テストを行うと以下のように各項目が抽出され、品目などの複数データはカンマ区切りで取得できました。

2.複数ループ処理を設定する

次に以下の設定を行います。

  • オペレーション:同じ処理を繰り返す

  • オペレーションやアクション:以下添付のように複数設定してください。

3.Googleスプレッドシートにデータを追加する

最後にループ方面に対して、データベースを操作するオペレーションからGoogleスプレッドシートを選択し、以下設定します。

  • アクション:レコードを追加する

  • スプレッドシートIDやシートタブ名:候補から対象シートを選択します。

  • テーブル範囲:対象範囲を設定します。今回はA1:Gとしています。

  • 追加するレコードの値:以下のように1で抽出した値や2のループ処理で取得した変数を対応する列名に埋め込みます。

このフローボットが起動すると、短いフローで以下のようにGoogleスプレッドシートへ読み取った複数の値をレコード状に追加することができました。

以上が、同じ処理を繰り返すオペレーションの応用的な使い方です。

# 同じ処理を繰り返す,ループ,ループ処理,複数,事例

こちらの回答で解決しましたか?