【Zoho Creator】フォームに入力したファイルをZoho WorkDriveにアップロードする方法

【Zoho Creator】フォームに入力したファイルをZoho WorkDriveにアップロードする方法

Alert
本ページは一般的なアドバイスおよびガイダンスを目的としています。
本ページの内容がすべての環境にて正常に動作することを保証しておりません。

Zoho Creatorのフォームでは、ファイルをアップロードするための項目を作成できます(詳細はこちら)。
本ページでは、フォームに入力したファイルをZoho WorkDriveの特定フォルダー配下にアップロードする方法を説明します。

前提

  1. 本ページの方法でアップロードできるファイルサイズの上限は5MBです(スクリプトで使用する関数「invokeurl」の制限のため)。
  2. Zoho Creatorにて、ファイルを入力したフォームにもとづくレポートを公開する必要があります(レポート公開の詳細はこちら)。

準備

1. Zoho CreatorとZoho WorkDriveを連携するためのConnectionを追加(Connectionsの詳細はこちら

Connectionを追加するため、「Zoho Creatorのホーム画面」→画面右上の人型アイコン→「接続」→「接続の追加」→「Zoho OAuth」を選択します。
Connectionの追加画面にて、任意の「接続名」を入力し、「Scope」として「WorkDrive.files.CREATE」を選択後、「送信」をクリックします。




「接続名」は、本ページのDelugeスクリプト内の変数「connectionName」に代入して使用します。


2. WorkDriveアップロード先フォルダーのIDを取得

WorkDriveフォルダーのIDは、フォルダーリンクURLの最後に記載されているランダムな文字列です。
フォルダーリンクURLは以下より取得できます。




WorkDriveフォルダーのIDは、本ページのDelugeスクリプト内の変数「workdriveFolderID」に代入して使用します。


3. ファイルを入力するフォームにもとづくレポートを公開(詳細はこちら)

アプリケーションの編集モードより、「設定」→「公開する」をクリック後、ファイルを入力するフォームにもとづくレポートを選択して「公開する」をクリックします。




手順

1. Zoho Creatorにて、「フォーム送信の完了」時に実施するワークフローを作成します
(ワークフローの詳細は
こちら / 作成例として以下の画像を参照)


2. 作成したワークフローにて、「新しい処理の追加」よりDelugeスクリプトを選択します。
3. 以下の「Delugeスクリプト」を記述します。「Delugeスクリプトの補足」をあわせてご参照ください。


Delugeスクリプト

実際のスクリプトは太字で記載します。「//」以降の文章はコメントです。
  1. // Zoho CreatorとZoho WorkDriveを連携するために設定したConnectionの名前(確認方法は本ページの「準備 1.」を参照)を変数「connectionName」に代入します。
  2. connectionName = "uploadfiletoworkdrive";

  3. // Zoho WorkDriveアップロード先フォルダーのID(確認方法は本ページの「準備 2.」を参照)を変数「workdriveFolderID」に代入します。
  4. workdriveFolderID = "123456789qwertyuiop"

  5. // Zoho Creatorフォームに入力したファイルの名前を変数「fileName」に代入します。
  6. // ファイル属性「actualname」を使用することで、ファイル名を取得できます。「input」および「File_upload」の詳細は本ページの「Delugeスクリプトの補足」をご参照ください。
  7. fileName = input.File_upload.actualname; 
  8.  
  9. // フォームに入力したファイルをダウンロードするためのURLを変数「publishedURL」に代入します。
  10. // 「input」「ID」および「File_upload」の詳細は本ページの「Delugeスクリプトの補足」をご参照ください。
  11. publishedURL = "https://creatorapp.zohopublic.com/file/zohojapanadmin/uploadtool/form_Report/" + input.ID + "/File_upload/download/nhgUTJkzHHmB5msH69vj0UzydXz9Xu3rmjE5?filepath=/" + input.File_upload;

  12. // 関数「invokeurl」を使用し、アプリに追加したファイルを取得します(invokeurlの詳細はこちら)。
  13. fileContent = invokeurl
  14. [
  15. url :publishedURL
  16. type :GET
  17. ];

  18. // 取得したファイルを、タスク「zoho.workdrive.uploadFile」を使用してZoho WorkDriveにアップロードします(関数内容の詳細はこちら)。
  19. response = zoho.workdrive.uploadFile(fileContent,workdriveFolderID,fileName,false,connectionName); 

Delugeスクリプトの補足

・公開したレポートのURLは以下の場合を例とします(公開URLの取得方法はこちら)。

※公開URLに含まれる項目内容の補足説明
  1. zohojapanadmin:アプリ所有者の名前
  2. uploadtool:アプリの名前
  3. form_Report:アプリのレポートリンク名
・公開したレポートのURLをもとに、ファイルをダウンロードするためのURLを作成します(作成後のURLは「Delugeスクリプト」内の変数「publishedURL」を参照)。

・ファイルをダウンロードするためのURLを作成するため、以下の項目を使用します(項目および項目リンク名の詳細はこちら)。
  1. ID:フォームに入力したデータに対して自動的に付与されるIDのリンク名(すべてのフォームで共通のリンク名です。)
  2. File_upload:ファイルをアップロードする項目のリンク名(ご利用環境によってリンク名は異なります。確認場所は以下の画像を参照)


いずれの項目も、キーワード「input」を使用することでフォームに入力したデータを取得できます(inputの詳細はこちら)。