アクション から [ファイル/フォルダーを検索] を使用する例Google ドライブ パッケージ

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

前提条件

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

この 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] > [開く] アクションを見つけて Bot エディターに追加します。
    2. [セッション名] に、「csvsession」と入力します。
    3. [ファイルパス] で、データをコピーする CSV ファイルのパスを指定します。
    4. CSVテーブルにヘッダーがある場合は、ヘッダーを含むを選択してください。
    5. CSVファイルで使用されている区切り文字を選択してください。
    6. 変更を保存します。
  3. CSVからデータを読み込み、データテーブル変数に格納します。
    1. [アクション] パネルから、[CSV/TXT] > [読み取り] アクションを見つけて Bot エディターに追加します。
    2. [セッション名] に、「csvsession」と入力します。
    3. [値を変数に代入] で、[(x)] をクリックし、TableFromCSV という名前の変数を作成します。
    4. 変更を保存します。
  4. CSV ファイルを閉じます。
    1. [アクション] パネルから、[CSV/TXT] > [閉じる] アクションを見つけて Bot エディターに追加します。
    2. [セッション名] に、「csvsession」と入力します。
    3. 変更を保存します。
  5. Google ドライブに接続します。
    1. [アクション] パネルから、[Google ドライブ] > [接続] アクションを見つけて Bot エディターに追加します。
    2. [ユーザー名] で、[安全でない文字列] を選択し、設定済みの OAuth 接続に関連付けられている E メール ID を入力します。
    3. [OAuth2 認証モード] で、[Control Room でマネージ] を選択します。
    4. [選択] をクリックし、Control Room で構成した接続を選択します。
    5. 変更を保存します。
  6. Google シートに接続します。
    1. [アクション] パネルから、[Google シート] > [接続] アクションを見つけて Bot エディターに追加します。
    2. [ユーザー名] で、[安全でない文字列] を選択し、設定済みの OAuth 接続に関連付けられている E メール ID を入力します。
    3. [セッション名] に、「gsheetsession」と入力します。
    4. [OAuth2 認証モード] で、[Control Room でマネージ] を選択します。
    5. [選択] をクリックし、Control Room で構成した接続を選択します。
    6. 変更を保存します。
  7. 新規のシートをGoogle Driveで作成する前に、作成しようとしているファイルがすでに存在するか確認してください。 指定されたパスに存在しない場合のみファイルを作成します。 これを行うには、Try Catch アクション を使用します。
    1. [アクション] パネルから、[エラーハンドラー] > [試す] アクションを見つけて Bot エディターに追加します。
    2. 変更を保存します。
  8. ファイルがすでに存在するかどうかを確認するには、Google ドライブの[ファイル/フォルダーを検索] アクション を使用してください。
    1. [アクション] パネルから、[Google ドライブ] > [ファイル/フォルダを見つける] アクションを見つけて Try ブロック内に追加します。
    2. [ユーザー名] で、[安全でない文字列] を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    3. [検索] で、[ファイル] をクリックします。
    4. ソースフォルダパスにソースフォルダを入力してください。 例えば、このサンプルシナリオでは、Botはaa-docs/spreadsheetsパス内のファイルを探します。
    5. [一致タイプ] で、[完全一致] を選択します。
    6. [ファイル/フォルダー名] に、「連絡先」と入力します。
    7. ファイルまたはフォルダーのリストを返す で、辞書 を選択します。
    8. (x) をクリックし、FileFolderDictionaryという名前の辞書変数を作成し、サブタイプをAnyに設定します。
    9. 変更を保存します。
  9. ファイルが存在しない場合は、ファイルを作成します。
    1. [アクション] パネルから、[Google シート] > [ワークブックを作成] アクションを見つけて [キャッチ] ブロック内に追加します。
    2. [ユーザー名] で、[安全でない文字列] を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    3. [セッション名] に、「gsheetsession」と入力します。
    4. [ワークブック名] に「連絡先」と入力します。
    5. ファイルパスで、共有場所からをクリックし、親フォルダーのパスを入力します。 例えば、このシナリオのサンプルでは、Botaa-docs/spreadsheetsパス内のファイルを検索します。
    6. 変更を保存します。
  10. Google ドライブからスプレッドシートを開くには、ファイル ID またはファイルパスが必要です。 この Bot はファイルを動的に作成するため、Bot の実行前にファイルパスを取得することはできません。 しかし、Google ドライブの[ファイル/フォルダーを検索] アクション を再度使用することでファイル ID を取得できます。
    1. [アクション] パネルから、[Google ドライブ] > [ファイル/フォルダを見つける] アクションを見つけて [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] > [セッションを開始] アクションを見つけて追加します。
    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] > [セッションを終了] アクションを見つけて追加します。
    2. [セッション名] に、「jsonsession」と入力します。
    3. 変更を保存します。
  14. 取得したファイルIDを使用して、Google Driveで作成されたスプレッドシートを開きます。
    1. [アクション] パネルから、[Google シート] > [スプレッドシートを開く] アクションを見つけて追加します。
    2. [ユーザー名] で、[安全でない文字列] を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    3. [セッション名] に、「gsheetsession」と入力します。
    4. [シートを開く] で、[スプレッドシート ID から] をクリックし、「$FileId$」と入力します。
    5. 変更を保存します。
  15. データテーブル変数をGoogleシートに書き込みます。
    1. [アクション] パネルから、[Google シート] > [データテーブルから書き込む] アクションを見つけて追加します。
    2. [セッション名] に、「gsheetsession」と入力します。
    3. シートオプション をクリックし、個別のシート を選択して、Sheet1 またはターゲットスプレッドシートのシート名を シート名 に入力します。
    4. [データテーブル変数を入力] で、[TableFromCSV] を選択します。
    5. [開始セルの値] に「A1」と入力します。
    6. 変更を保存します。
  16. Google ドライブと Google シートのリンクを解除します。
    1. [アクション] パネルから、[Google ドライブ] > [接続を解除] アクションを見つけて追加します。
    2. [ユーザー名] で、[安全でない文字列] を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    3. 変更を保存します。
    4. [アクション] パネルから、[Google シート] > [接続を解除] アクションを見つけて追加します。
    5. [ユーザー名] で、[安全でない文字列] を選択し、OAuth 接続に関連付けられている E メール ID を入力します。
    6. [セッション名] に、「gsheetsession」と入力します。
    7. 変更を保存します。
  17. Bot を実行します。