CookBook

IM-LogicDesignerでBoxにファイルをアップロードし、メタデータや共有リンクを作成する方法

投稿日:2023-10-16 更新日:

このCookBookでは、IM-LogicDesigner での以下のBox連携LDタスクの使い方について紹介しています。

  • ユーザ切り替えタスク
  • Boxストレージ取得タスク
  • メタデータ作成タスク
  • 共有リンク作成タスク

完成イメージ

パブリックストレージに配置しておいたファイルをBoxにアップロードし、そのファイルに対してメタデータと共有リンクを作成するサンプルです。
あらかじめBoxに登録してあるメタデータテンプレートを使用します。

完成サンプル

以下の完成サンプルをダウンロードしてご活用ください。
このサンプルは、2023 Autumn 版以降でインポートできます。

LogicDesignerインポートデータ: cookbook_203865_logicdesigner.zip

IM-LogicDesigner のインポート画面からインポートしてください。

インポートすると、以下のデータが登録されます。
・フロー定義 … フロー定義ID: im_cookbook_203865_flow_box

レシピ

  1. Boxでメタデータのテンプレートが登録されていることを確認する
  2. パブリックストレージに、Boxにアップロードしたいファイルを配置する
  3. フロー定義を作成する
  4. フロー定義を実行した結果を確認する

1. Boxでメタデータのテンプレートが登録されていることを確認する

メタデータのテンプレートがBoxに登録されていることを確認しましょう。
登録されていない場合は、下記サンプルのように設定してください。
cookbook203865_03
※「テンプレートの名前」は、半角英数字のみを入力し、作成後は名前を変更しないことを推奨します。
(テンプレートの名前とメタデータテンプレートキーの間に差異を生まないため)
※「属性の名前」についても、半角英数字のみを入力し、作成後は名前を変更しないことを推奨します。

2. パブリックストレージに、Boxにアップロードしたいファイルを配置する

次の章で定数「PUBLIC_STORAGE」に指定するパブリックストレージのパスに、ファイルを配置しましょう。
サンプルではbox/cookbook203865/test.txtとしています。

(1) 「システム管理」→「ファイル操作」をクリックします。

(2) 左側のツリーからディレクトリを作成したい位置をクリックします。
サンプルではstorageディレクトリ直下に、ディレクトリを作成します。
「Create directory」をクリックし、「Create directory」画面からディレクトリを作成します。
cookbook203865_15

cookbook203865_16

(3) ディレクトリが作成できたら、ファイルをアップロードします。
ファイルをアップロードしたいディレクトリをクリックします。
「Add files」をクリックし、ファイル選択ダイアログからアップロードしたいファイルを選択します。
cookbook203865_17

cookbook203865_18

(4) ファイルを配置(アップロード)できたことを確認します。
cookbook203865_19

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」タスク)

フロー定義の全体像は、以下の通りです。
cookbook203865_04

必要なパラメータを定数設定に登録してください。
・BOX_STORAGE … ファイルをアップロードする先のBoxストレージのパス
・PUBLIC_STORAGE … パブリックストレージのパス
・TEMPLATE_NAME … メタデータのテンプレートキー
・USER_ID … 接続先のBoxユーザID
cookbook203865_05

フロー定義の「入力」を設定します。
ツールバーの「入出力設定」をクリックして、「入力」に以下を定義します。
・metadata_input … <map>
cookbook203865_06

フロー定義の「出力」を設定します。
ツールバーの「入出力設定」をクリックして、「出力」に以下を定義します。
・shared_link_url … <string>
cookbook203865_20

それぞれマッピング設定を行います。

(1) 接続先のBoxユーザを指定する。(ユーザ切り替え)
接続先のBoxユーザを指定するため、 boxUserId を以下のようにマッピングしてください。

  • Constant - USER_ID 」→「 im_boxAsUser1 - boxUserId

cookbook203865_07

(2) Boxストレージを取得する。(Boxストレージ取得)
Box上のファイルに相当する仮想的なストレージを取得するため、im_boxGetBoxStorage1 を以下のようにマッピングしてください。
アップロード対象のファイルの、Boxのルートフォルダからの絶対パスをここで指定しています。

  • Constant - BOX_STORAGE 」→「 im_boxGetBoxStorage1

cookbook203865_08

(3) パブリックストレージを取得する。(パブリックストレージ取得)
パブリックストレージ内のファイルへアクセスするため、im_publicStorage1 を以下のようにマッピングしてください。
Boxにアップロードするファイルの、パブリックストレージのパスをここで指定しています。

  • Constant - PUBLIC_STORAGE 」→「 im_publicStorage1

cookbook203865_01

(4) ストレージファイルを読み込み、その結果をバイナリデータで返す。(ストレージファイル読み込み(バイナリ))
こちらのタスクでは、パブリックストレージからファイルを読み込みます。
入力対象となるストレージを指定するため、im_readBinaryToStorage1 を以下のようにマッピングしてください。

  • Constant - im_publicStorage1 」→「 im_readBinaryToStorage1

cookbook203865_09

(5) ストレージにバイナリデータを出力する。(ストレージ出力(バイナリ))
出力するバイナリデータ、出力先を指定するため、binarystorage を以下のようにマッピングしてください。
ここでは、Boxストレージを指定してデータを出力することで、ファイルのアップロードを実施しています。

  • Constant - im_readBinaryToStorage1 」→「 im_writeBinaryToStorage1 - binary
  • Constant - im_boxGetBoxStorage1 」→「 im_writeBinaryToStorage1 - storage

cookbook203865_10

(6) 指定したファイル・フォルダにメタデータを作成する。(メタデータ作成)
指定したファイルにメタデータを作成するため、metadatapathtemplateName を以下のようにマッピングしてください。
前章で確認したメタデータテンプレートのテンプレートキーを指定しています。
メタデータの内容は入力値から取得しています。

  • input - metadata_input 」→「 im_boxCreateMetadata1 - metadata
  • Constant - BOX_STORAGE 」→「 im_boxCreateMetadata1 - path
  • Constant - TEMPLATE_NAME 」→「 im_boxCreateMetadata1 - templateName

cookbook203865_11

(7) 指定したファイル・フォルダの共有リンクを作成する。(共有リンク作成)
指定したファイルの共有リンクを作成するため、path を以下のようにマッピングしてください。

  • Constant - BOX_STORAGE 」→「 im_boxCreateSharedLink1 - path

cookbook203865_12

(8) 作成した共有リンクを出力する。(データを返却して終了)
作成した共有リンクを出力して確認するため、shared_link_url を以下のようにマッピングしてください。

  • Constant - im_boxCreateSharedLink1 」→「 Output - shared_link_url

cookbook203865_21

これでフロー定義の準備は完了です。保存しておきましょう。

次に、実際にフロー定義を実行しましょう。
保存したフロー定義を開き、ツールバーの「デバッグ」をクリックします。
「フロー定義のデバッグ」ウィンドウが開いたら、「実行」をクリックします。

入力ダイアログが表示されたら、以下のように入力をします。
ここで入力するmapのキー名は、確認したメタデータテンプレートの属性名と一致させる必要があります。
サンプルではtextとしています。
cookbook203865_02

「決定」をクリックすると、フローの実行が始まります。

正常にBox連携操作ができた場合、「フローの実行が正常終了しました。」メッセージが表示されます。
また、出力欄のshared_link_url に作成した共有リンクURLが表示されます。
cookbook203865_22

4. フロー定義を実行した結果を確認する

フロー定義実行後、前章で指定したパスにファイルがアップロードされ、共有リンクが作成されていることを確認します。
cookbook203865_13

次に、前章で作成した共有リンクURLへアクセスし、ファイルが開けることを確認します。
最後に、開いたファイルに対して、メタデータが作成されていることを確認します。
前章のフロー定義実行時に入力したmapの値Hello! Cookbookが、メタデータに設定されていることが確認できます。
cookbook203865_14

このように、IM-LogicDesignerを使用すると、Boxへのファイルのアップロードや、ファイルの操作をノンコーディングで実現できます。
ぜひお試しください。

-CookBook
-,

執筆者:


  1. imdeveloper より:

    コメントありがとうございます。
    CookBook内には下記のように注記しているのですが、日本語利用されたいですよね。。
    —-
    ※「テンプレートの名前」は、半角英数字のみを入力し、作成後は名前を変更しないことを推奨します。
    (テンプレートの名前とメタデータテンプレートキーの間に差異を生まないため)
    ※「属性の名前」についても、半角英数字のみを入力し、作成後は名前を変更しないことを推奨します。
    —-

    後日回避策をドキュメントにてご案内予定ですので、よろしければそちらもご覧頂けますと幸いです。

  2. T.Iwachika より:

    ドキュメントのコラムでも良いですが、
     メタデータのテンプレート定義が2バイト文字のケース
     テンプレート定義の項目名が「承認日」などの2バイト文字のケース
     テンプレート定義の項目が日付型で設定されているケース
    についての補足が必要かと思います。

comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

Docker Compose で Accel Platform 環境を構築する。

この CookBook では、Docker Compose を利用して Accel Platform 環境を構築する手順について紹介しています。 この CookBook では、以下の記事で作成した D …

no image

IM-BloomMaker 異なるコンテンツ間でアクションをコピーする方法

この CookBook では intra-mart Accel Platform 2021 Winter から利用可能になったアクションの複製機能を使用して、異なるコンテンツ間でアクションをコピーする …

no image

IM-BloomMaker スプレッドシート 特定のセルを編集できないようにするには?

この CookBook では intra-mart Accel Platform 2020 Winter から利用可能になった「スプレッドシート」エレメントで、特定のセルを編集できないようにする方法を …

no image

imuiListTableでセルに配置したアイコンから別画面に遷移する方法

このCookBookでは、imuiListTableでセルに配置したアイコンから別画面に遷移する方法について紹介しています。 imuiListTableについての詳細はAPIドキュメントを参照してくだ …

ViewCreator と imuiListTable を使った一覧画面の作り方

このCookBookでは、ViewCreator のルーティング定義と imuiListTable を利用した一覧画面を作成する手順をご紹介します。 ViewCreator ではクエリ定義とデータ参照 …