action から ファイル/フォルダーを検索 を使用する例Google Drive package

指定されたパスにファイルが見つからない場合、Google ドライブでファイルを検索し、ファイルを作成する bot を構築します。

前提条件

Google ドライブにGoogle シートがない場合に、Google シートを作成することを想定してください。 Google Drive > の ファイル/フォルダーを検索 actionGoogle Drive package から、Google Drive に既にファイルが存在するかどうかを確認することができます。 存在しない場合は、action から ワークブックを作成Google Sheets packageを使用してファイルを作成できます。

この bot は Google ドライブに Google スプレッドシートがあるか確認します。 指定されたパスに存在しない場合、bot は Google シートを作成し、CSV ファイルからデータをコピーします。

手順

  1. 新しい bot を作成します。
    1. 左側のペインで オートメーション をクリックします。
    2. 新規作成 > タスク Bot をクリックします。
    3. タスク Bot を作成 ウィンドウで、bot の名前を入力します。
    4. デフォルトのフォルダーの場所 : \Bots\をそのまま使用します。
    5. デフォルトのbotの保存場所を変更するには、選択 をクリックしてプロンプトに従います。
    6. 作成と編集 をクリックします。
  2. Google シートにコピーしたいデータが含まれている CSV ファイルを開きます。
    1. アクション パネルから、CSV/TXT > 開く actionを見つけて Bot editorに追加します。
    2. セッション名 に、csvsessionと入力します。
    3. ファイルパス で、データをコピーする CSV ファイルのパスを指定します。
    4. CSVテーブルにヘッダーがある場合は、ヘッダーを含むを選択してください。
    5. CSVファイルで使用されている区切り文字を選択してください。
    6. 変更を保存します。
  3. CSVからデータを読み込み、データテーブル変数に格納します。
    1. アクション パネルから、CSV/TXT > 読み取り actionを見つけて Bot editorに追加します。
    2. セッション名 に、csvsessionと入力します。
    3. 値を変数に代入 で、(x) をクリックし、TableFromCSV という名前の変数を作成します。
    4. 変更を保存します。
  4. CSV ファイルを閉じます。
    1. アクション パネルから、CSV/TXT > 閉じる actionを見つけて Bot editorに追加します。
    2. セッション名 に、csvsessionと入力します。
    3. 変更を保存します。
  5. Google ドライブに接続します。
    1. アクション パネルから、Google ドライブ > 接続 actionを見つけて Bot editorに追加します。
    2. ユーザー名 で、安全でない文字列 を選択し、設定済みの OAuth 接続に関連付けられている E メール ID を入力します。
    3. OAuth2 認証モード で、Control Room でマネージ を選択します。
    4. 選択 をクリックし、Control Room で構成した接続を選択します。
    5. 変更を保存します。
  6. Google シートに接続します。
    1. アクション パネルから、Google シート > 接続 actionを見つけて Bot editorに追加します。
    2. ユーザー名 で、安全でない文字列 を選択し、設定済みの OAuth 接続に関連付けられている E メール ID を入力します。
    3. セッション名 に、gsheetsessionと入力します。
    4. OAuth2 認証モード で、Control Room でマネージ を選択します。
    5. 選択 をクリックし、Control Room で構成した接続を選択します。
    6. 変更を保存します。
  7. 新規のシートをGoogle Driveで作成する前に、作成しようとしているファイルがすでに存在するか確認してください。 指定されたパスに存在しない場合のみファイルを作成します。 これを行うには、Try Catch actions を使用します。
    1. アクション パネルから、エラーハンドラー > 試す actionを見つけて Bot editorに追加します。
    2. 変更を保存します。
  8. ファイル/フォルダーを探す actionを使用して存在を確認する TryCatch actions
    1. 指定されたフォルダー内でターゲットファイル名を検索するために、Google Drive > ファイル/フォルダーを見つける actionを追加します。
    2. ファイル/フォルダーを見つける action試す action の中にあることを確認し、Error handler package から以下の条件をブロックして設定します。
      • Successの際、actionはディクショナリを返します。 NumberOfFiles > 0 の場合、ファイルが存在します — 続行するには File1.fileId を読み取ることができます。
      • もしactionbot.execution.errorを投げ、指定されたパスにファイルが見つかりませんの場合は、これを見つかりませんとして扱い、ステップ9(ファイルを作成する)に進んでください。
      注: 一致するものが存在しない場合、actionNumberOfFiles > 0を返すのではなく、エラーをスローする可能性があります。 TryおよびCatch actionsを使用して、このパスを処理してください。
  9. ファイルが存在しない場合は、ファイルを作成します。
    1. アクション パネルから、Google シート > ワークブックを作成 actionを見つけて キャッチ ブロック内に追加します。
    2. ユーザー名 で、安全でない文字列 を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    3. セッション名 に、gsheetsessionと入力します。
    4. ワークブック名連絡先と入力します。
    5. ファイルパスで、共有場所からをクリックし、親フォルダーのパスを入力します。 例えば、このシナリオのサンプルでは、botaa-docs/spreadsheetsパス内のファイルを検索します。
    6. 変更を保存します。
  10. Google ドライブからスプレッドシートを開くには、ファイル ID またはファイルパスが必要です。 この bot はファイルを動的に作成するため、bot の実行前にファイルパスを取得することはできません。 しかし、Google ドライブのファイル/フォルダーを検索 action を再度使用することでファイル ID を取得できます。
    1. アクション パネルから、Google ドライブ > ファイル/フォルダを見つける actionを見つけて Try Catch ブロック の後に追加します。
    2. ユーザー名 で、安全でない文字列 を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    3. 検索 で、ファイル をクリックします。
    4. ソースフォルダパスにソースフォルダを入力してください。 例えば、この例のサンプル botaa-docs/spreadsheets パス内のファイルを探します。
    5. 一致タイプ で、完全一致 を選択します。
    6. ファイル/フォルダー名 に、連絡先と入力します。
    7. ファイルまたはフォルダーのリストを返すで、 辞書をクリックし、ファイルフォルダー辞書変数を選択します。
      Find ファイル/フォルダー API は、一致するファイルに関する情報を含む辞書を返します。 辞書には NumberOfFiles というキーが含まれています。 これは一致したファイル数を示します。 辞書には、一致したファイルの数に対応して、File1、File2などのように名前がつけられたキーも含まれています。 これらのキーには、ファイル名やファイルIDなどの情報がJSON形式で含まれています。 以下の内容は、Findファイル/フォルダーAPI呼び出しによって返される辞書の例です。
      {NumberOfFiles,1},{File1,{"fileName":"contacts","fileId":"171yBUzqH80ZW_KLEp23DwebzkCdDZgnGFWBzB6K9kco"}}
      JSON 文字列を解析することによって、キー File1 に関連付けられた値であるファイル ID を取得できます。
    8. 変更を保存します。
  11. File1 キーに関連付けられた JSON 文字列を解析します。
    1. アクション パネルから、Json > セッションを開始 actionを見つけて追加します。
    2. データソース で、テキスト を選択し、$FileFolderDictionary{File1}$と入力します。
    3. JSON オブジェクト セッション で、ローカル セッション をクリックし、jsonsessionと入力します。
    4. 変更を保存します。
  12. JSON オブジェクトからファイル ID を取得します。
    1. アクション パネルから、Json > ノード値の取得を見つけて追加します。
    2. JSON ノード キーまたはパス に、fileIdと入力します。
    3. セッション名 に、jsonsessionと入力します。
    4. 結果を変数に保存 で、(x) をクリックし、FileId という名前の変数を作成します。
    5. 変更を保存します。
  13. JSON セッションを終了します。
    1. アクション パネルから、Json > セッションを終了 actionを見つけて追加します。
    2. セッション名 に、jsonsessionと入力します。
    3. 変更を保存します。
  14. 取得したファイルIDを使用して、Google Driveで作成されたスプレッドシートを開きます。
    1. アクション パネルから、Google シート > スプレッドシートを開く actionを見つけて追加します。
    2. ユーザー名 で、安全でない文字列 を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    3. セッション名 に、gsheetsessionと入力します。
    4. シートを開く で、スプレッドシート ID から をクリックし、$FileId$と入力します。
    5. 変更を保存します。
  15. データテーブル変数をGoogleシートに書き込みます。
    1. アクション パネルから、Google シート > データテーブルから書き込む actionを見つけて追加します。
    2. セッション名 に、gsheetsessionと入力します。
    3. シートオプション をクリックし、個別のシート を選択して、Sheet1 またはターゲットスプレッドシートのシート名を シート名 に入力します。
    4. データテーブル変数を入力 で、TableFromCSV を選択します。
    5. 開始セルの値A1と入力します。
    6. 変更を保存します。
  16. Google ドライブと Google シートのリンクを解除します。
    1. アクション パネルから、Google ドライブ > 接続を解除 actionを見つけて追加します。
    2. ユーザー名 で、安全でない文字列 を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    3. 変更を保存します。
    4. アクション パネルから、Google シート > 接続を解除 actionを見つけて追加します。
    5. ユーザー名 で、安全でない文字列 を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    6. セッション名 に、gsheetsessionと入力します。
    7. 変更を保存します。
  17. bot を実行します。