このCookBookでは、IM-LogicDesigner での以下のBox連携LDタスクの使い方について紹介しています。
- ユーザ切り替えタスク
- Boxストレージ取得タスク
- メタデータ作成タスク
- 共有リンク作成タスク
完成イメージ
パブリックストレージに配置しておいたファイルをBoxにアップロードし、そのファイルに対してメタデータと共有リンクを作成するサンプルです。
あらかじめBoxに登録してあるメタデータテンプレートを使用します。
完成サンプル
以下の完成サンプルをダウンロードしてご活用ください。
このサンプルは、2023 Autumn 版以降でインポートできます。
LogicDesignerインポートデータ: cookbook_203865_logicdesigner.zip
IM-LogicDesigner のインポート画面からインポートしてください。
インポートすると、以下のデータが登録されます。
・フロー定義 … フロー定義ID: im_cookbook_203865_flow_box
レシピ
- Boxでメタデータのテンプレートが登録されていることを確認する
- パブリックストレージに、Boxにアップロードしたいファイルを配置する
- フロー定義を作成する
- フロー定義を実行した結果を確認する
1. Boxでメタデータのテンプレートが登録されていることを確認する
メタデータのテンプレートがBoxに登録されていることを確認しましょう。
登録されていない場合は、下記サンプルのように設定してください。
※「テンプレートの名前」は、半角英数字のみを入力し、作成後は名前を変更しないことを推奨します。
(テンプレートの名前とメタデータテンプレートキーの間に差異を生まないため)
※「属性の名前」についても、半角英数字のみを入力し、作成後は名前を変更しないことを推奨します。
2. パブリックストレージに、Boxにアップロードしたいファイルを配置する
次の章で定数「PUBLIC_STORAGE」に指定するパブリックストレージのパスに、ファイルを配置しましょう。
サンプルではbox/cookbook203865/test.txt
としています。
(1) 「システム管理」→「ファイル操作」をクリックします。
(2) 左側のツリーからディレクトリを作成したい位置をクリックします。
サンプルではstorage
ディレクトリ直下に、ディレクトリを作成します。
「Create directory」をクリックし、「Create directory」画面からディレクトリを作成します。
(3) ディレクトリが作成できたら、ファイルをアップロードします。
ファイルをアップロードしたいディレクトリをクリックします。
「Add files」をクリックし、ファイル選択ダイアログからアップロードしたいファイルを選択します。
(4) ファイルを配置(アップロード)できたことを確認します。
3. フロー定義を作成する
実際にBox連携を行うフロー定義を作成しましょう。
「サイトマップ」→「IM-LogicDesigner」→「フロー定義一覧」→「新規作成」をクリックします。
フロー定義の処理の流れは、以下の通りです。
1. ユーザ切り替え (「User Switching」タスク)
2. Boxストレージ取得 (「Get Box Storage」タスク)
3. パブリックストレージ取得 (「Public Storage Acquisition」タスク)
4. ストレージファイル読み込み(バイナリ) (「Load Storage File (Binary)」タスク)
5. ストレージ出力(バイナリ) (「Storage Output (binary)」タスク)
6. メタデータ作成 (「Create Meta Data」タスク)
7. 共有リンク作成 (「Create Shared Link」タスク)
8. データを返却して終了 (「End」タスク)
必要なパラメータを定数設定に登録してください。
・BOX_STORAGE … ファイルをアップロードする先のBoxストレージのパス
・PUBLIC_STORAGE … パブリックストレージのパス
・TEMPLATE_NAME … メタデータのテンプレートキー
・USER_ID … 接続先のBoxユーザID
フロー定義の「入力」を設定します。
ツールバーの「入出力設定」をクリックして、「入力」に以下を定義します。
・metadata_input … <map>
フロー定義の「出力」を設定します。
ツールバーの「入出力設定」をクリックして、「出力」に以下を定義します。
・shared_link_url … <string>
それぞれマッピング設定を行います。
(1) 接続先のBoxユーザを指定する。(ユーザ切り替え)
接続先のBoxユーザを指定するため、 boxUserId
を以下のようにマッピングしてください。
- 「
Constant
-USER_ID
」→「im_boxAsUser1
-boxUserId
」
(2) Boxストレージを取得する。(Boxストレージ取得)
Box上のファイルに相当する仮想的なストレージを取得するため、im_boxGetBoxStorage1
を以下のようにマッピングしてください。
アップロード対象のファイルの、Boxのルートフォルダからの絶対パスをここで指定しています。
- 「
Constant
-BOX_STORAGE
」→「im_boxGetBoxStorage1
」
(3) パブリックストレージを取得する。(パブリックストレージ取得)
パブリックストレージ内のファイルへアクセスするため、im_publicStorage1
を以下のようにマッピングしてください。
Boxにアップロードするファイルの、パブリックストレージのパスをここで指定しています。
- 「
Constant
-PUBLIC_STORAGE
」→「im_publicStorage1
」
(4) ストレージファイルを読み込み、その結果をバイナリデータで返す。(ストレージファイル読み込み(バイナリ))
こちらのタスクでは、パブリックストレージからファイルを読み込みます。
入力対象となるストレージを指定するため、im_readBinaryToStorage1
を以下のようにマッピングしてください。
- 「
Constant
-im_publicStorage1
」→「im_readBinaryToStorage1
」
(5) ストレージにバイナリデータを出力する。(ストレージ出力(バイナリ))
出力するバイナリデータ、出力先を指定するため、binary
、 storage
を以下のようにマッピングしてください。
ここでは、Boxストレージを指定してデータを出力することで、ファイルのアップロードを実施しています。
- 「
Constant
-im_readBinaryToStorage1
」→「im_writeBinaryToStorage1
-binary
」 - 「
Constant
-im_boxGetBoxStorage1
」→「im_writeBinaryToStorage1
-storage
」
(6) 指定したファイル・フォルダにメタデータを作成する。(メタデータ作成)
指定したファイルにメタデータを作成するため、metadata
、 path
、 templateName
を以下のようにマッピングしてください。
前章で確認したメタデータテンプレートのテンプレートキーを指定しています。
メタデータの内容は入力値から取得しています。
- 「
input
-metadata_input
」→「im_boxCreateMetadata1
-metadata
」 - 「
Constant
-BOX_STORAGE
」→「im_boxCreateMetadata1
-path
」 - 「
Constant
-TEMPLATE_NAME
」→「im_boxCreateMetadata1
-templateName
」
(7) 指定したファイル・フォルダの共有リンクを作成する。(共有リンク作成)
指定したファイルの共有リンクを作成するため、path
を以下のようにマッピングしてください。
- 「
Constant
-BOX_STORAGE
」→「im_boxCreateSharedLink1
-path
」
(8) 作成した共有リンクを出力する。(データを返却して終了)
作成した共有リンクを出力して確認するため、shared_link_url
を以下のようにマッピングしてください。
- 「
Constant
-im_boxCreateSharedLink1
」→「Output
-shared_link_url
」
これでフロー定義の準備は完了です。保存しておきましょう。
次に、実際にフロー定義を実行しましょう。
保存したフロー定義を開き、ツールバーの「デバッグ」をクリックします。
「フロー定義のデバッグ」ウィンドウが開いたら、「実行」をクリックします。
入力ダイアログが表示されたら、以下のように入力をします。
ここで入力するmapのキー名は、確認したメタデータテンプレートの属性名と一致させる必要があります。
サンプルではtext
としています。
「決定」をクリックすると、フローの実行が始まります。
正常にBox連携操作ができた場合、「フローの実行が正常終了しました。」メッセージが表示されます。
また、出力欄のshared_link_url
に作成した共有リンクURLが表示されます。
4. フロー定義を実行した結果を確認する
フロー定義実行後、前章で指定したパスにファイルがアップロードされ、共有リンクが作成されていることを確認します。
次に、前章で作成した共有リンクURLへアクセスし、ファイルが開けることを確認します。
最後に、開いたファイルに対して、メタデータが作成されていることを確認します。
前章のフロー定義実行時に入力したmapの値Hello! Cookbook
が、メタデータに設定されていることが確認できます。
このように、IM-LogicDesignerを使用すると、Boxへのファイルのアップロードや、ファイルの操作をノンコーディングで実現できます。
ぜひお試しください。
コメントありがとうございます。
CookBook内には下記のように注記しているのですが、日本語利用されたいですよね。。
—-
※「テンプレートの名前」は、半角英数字のみを入力し、作成後は名前を変更しないことを推奨します。
(テンプレートの名前とメタデータテンプレートキーの間に差異を生まないため)
※「属性の名前」についても、半角英数字のみを入力し、作成後は名前を変更しないことを推奨します。
—-
後日回避策をドキュメントにてご案内予定ですので、よろしければそちらもご覧頂けますと幸いです。
ドキュメントのコラムでも良いですが、
メタデータのテンプレート定義が2バイト文字のケース
テンプレート定義の項目名が「承認日」などの2バイト文字のケース
テンプレート定義の項目が日付型で設定されているケース
についての補足が必要かと思います。