Box は、Box Inc. 社が提供するクラウドストレージサービスです。Box に保存された個々のファイルには、メタデータを付与することができます。メタデータとはファイル本体に関する付帯情報で、ファイルの検索や、散逸ファイルの集約などに利用できます。(Business Plus、Enterprise、Eliteのアカウントのみ利用可)

本記事では Box ファイルにメタデータを追加する Questetra の自動工程について説明します。

1. Box メタデータについて

Box メタデータをファイルに追加するには2つの方法があります。

1つめは、あらかじめメタデータテンプレートを用意する方法です。テンプレートの項目(キー)に値を入力することにより、全てのファイルに共通の画一的なメタデータを追加します。

2つめは、カスタムメタデータと呼ばれる方法です。メタデータを追加する際に、キーと値を入力して追加します。

1つのファイルに「メタデータテンプレート」と「カスタムメタデータ」の両方を追加することも可能です。

Box ドキュメント:メタデータの使用

Questetra の自動工程では上記のメタデータテンプレートを事前準備する方法にのみ対応しています。Box にあらかじめテンプレートを用意しておく必要がありますので、Box の「管理コンソール」から作成しておいてください。

Box ドキュメント:メタデータテンプレートのカスタマイズ

2. Questetra の自動工程

Questetra では、上記の Box メタデータをファイルに自動追加するビルトイン自動工程が追加されました。(Ver. 14.1〜、Advanced エディション以上で利用可)

この自動工程「Box: ファイルにメタデータ追加」を利用すると、Box の ID で指定されたファイルにメタデータを自動で追加できます。

ファイルにメタデータ追加

会社内で定義されたメタデータテンプレートを利用して、Box 上のファイルにメタデータを追加します。 指定したメタデータテンプレートがすでにファイルに追加済みの場合は、エラーになります。テンプレートの属性の数に対して8個まで対応しています。

 

Box のメタデータテンプレートの設定と Questetra の設定

Box のメタデータは、1つの項目について1つの値を持たせる形で付与されます。このような項目を必要なだけ設定し、パッケージにされたものがメタデータテンプレートです。テンプレートは Box 基盤の管理者が作成し、ユーザによって利用されます。

テンプレートの作成/編集時には、項目は「属性」と呼ばれ、「属性を追加/削除する」などと表現されます。個々の属性には「属性の名前」が必須であり、名前に指定された文字列がその項目の「キー」となります。

属性にはいくつかの形式があり、Questetra のデータ項目とデータ型のように、形式によって入力される値の書式が異なります。

Questetra の自動工程では、 Box のテンプレートが呼び出され、テンプレートに設定されている属性のキーごとに入力値が指定され、指定ファイルにメタデータが追加されます。入力値が対象の属性の形式に沿うように設定しておきます。

3. Box と Questetra の連携設定

Box と連携するための認証設定を行います。

具体的な方法は「Box を活用して、ファイルを社外の人へ送る」の記事を参考に設定してください。

4. サンプルアプリ

「ファイル登録」工程でファイルを登録し、メタデータとして追加する属性ごとに値をセットします。「フォルダ作成」工程で Box 上にフォルダが作成され、「ファイルアップロード」工程で指定ファイルがこのフォルダにアップロードされます。最後の自動工程では、ファイルにメタデータが追加されます。メタデータを追加しておくことで、将来の検索性を高めます。

ワークフローアプリの設定

データ項目

データ項目名データ型フィールド名必須「ファイル登録」工程説明
件名編集可プロセスの件名です。
ファイルファイル型q_file編集可アップロードするファイルを追加します。
フォルダ ID文字型 (単一行)q_folder_id非表示「フォルダ作成」工程で作成されたフォルダの ID を保存します。
ファイル ID文字型(単一行)q_file_id非表示「ファイルアップロード」工程で作成されたファイルの ID を保存します。
アップロード・ユーザ名の値文字型(単一行)q_user_name編集可テンプレートのキー「アップロード・ユーザ名」に入力される値です。[初期値]に「参照を挿入する…」から「プロセス開始ユーザ」を選択して #{processInstanceInitQuserName} をセットします。
プロセスIDの値数値型q_process_id編集可テンプレートのキー「プロセスID」に入力される値です。[初期値]に「参照を挿入する…」から「プロセスID」を選択して #{processInstanceId} をセットします。
プロセスの開始日の値日付型(年月日)q_start_date編集可テンプレートのキー「プロセスの開始日」に入力される値です。[初期値]に「参照を挿入する…」から「プロセス開始日時」を選択して processInstanceStartDatetime をセットします。
作業ステータスの値選択型(セレクトボックス)q_status_choice編集可テンプレートのキー「作業ステータス」に入力される値です。今回は、固定の選択肢として選択肢 ID が「新規ファイル」「作業中」「完成品」の3つを設定し、表示ラベルは選択肢 ID と同じにします。「新規ファイル」を初期値として指定します。
データ項目の設定

「フォルダ作成」工程

まず、「ファイル登録」工程で共有するファイルを登録します。メタデータの値は初期値として自動入力されます。

続く「フォルダ作成」工程 (「Box: フォルダ作成」参照) で、共有用のフォルダを Box 上に作成します。

項目名必須説明
C1: OAuth2 設定Box への接続に使用する OAuth2 設定を指定します。指定する OAuth2 設定ではあらかじめトークンを取得しておく必要があります(「Box と Questetra の連携設定」を参照)。
C2: 作成するフォルダの親フォルダの IDどのフォルダの中に新しいフォルダを作成するか、ID を使って指定します。今回は空白にして、ルートフォルダを指定しましょう。
C3: 作成するフォルダの名称作成されるフォルダの名前を指定します。今回は #{processInstanceId} としましょう。#{processInstanceId} の部分にはプロセス ID が入るため、このアプリで作った他のフォルダと重複することがなくなります。
C4: フォルダ ID を保存するデータ項目生成したフォルダの ID の保存先となるデータ項目を指定します。今回は「フォルダID」を指定します。
C5: フォルダ URL を保存するデータ項目生成したフォルダの URL の保存先となるデータ項目を指定します。今回は指定しません。
Box: フォルダ作成」の設定項目

「ファイルアップロード」工程

「ファイルアップロード」工程では、登録されたファイルが作成されたフォルダにアップロードされます。

項目名必須説明
C1: OAuth2 設定Boxへの接続に使用する OAuth2 設定を指定します。指定する OAuth2 設定ではあらかじめトークンを取得しておく必要があります(「Box と Questetra の連携設定」を参照)。
C2: アップロードするファイルが保存されているファイル型データ項目アップロードするファイルの入ったデータ項目「ファイル」を指定します。
C3: ファイルをアップロードするフォルダの ID (指定がない場合は、ルートフォルダ)アップロードするファイルを保存するフォルダの ID を指定します。「参照を挿入する…」から「フォルダ ID」を選択して #{#q_folder_id} を挿入セットします
C4: ファイル ID を保存する文字型データ項目アップロードしたファイルの ID の保存先となるデータ項目を指定します。「参照を挿入する…」から「ファイル ID」を選択して #{#q_file_id} を挿入セットします
C5: ファイル URL を保存する文字型データ項目アップロードしたファイルの URL の保存先となるデータ項目を指定します。今回は使用しません。
Box: ファイルアップロード」の設定項目

「ファイルにメタデータ追加」工程

「ファイルにメタデータ追加」工程では、フォルダにアップロードされたファイルにメタデータが追加されます。利用するテンプレート名を指定して、各キー(属性の名前)とその入力値を保存するデータ項目を指定します。

項目名必須説明
C1: OAuth2 設定Boxへの接続に使用する OAuth2 設定を指定します。指定する OAuth2 設定ではあらかじめトークンを取得しておく必要があります(「Box と Questetra の連携設定」を参照)。
C2: メタデータを追加するファイル IDC2: メタデータを追加するファイル ID を保存するデータ項目「ファイル ID」を指定します。
C3: メタデータテンプレートの表示名Box で作成されたテンプレートの名前を指定します。
C-K1: フィールド 1 の表示名テンプレートの1つ目の項目の属性の名前を指定します。今回は「アップロード・ユーザ名」と指定します。
C-V1: フィールド 1 の値テンプレートの1つ目の項目の入力値です。「参照を挿入する…」から「アップロード・ユーザ名の値」を選択して #{#q_user_name} を挿入セットします
C-K2: フィールド 2 の表示名テンプレートの2つ目の項目の属性の名前を指定します。今回は「プロセスID」と指定します。
C-V2: フィールド 2 の値テンプレートの2つ目の項目の入力値です。「参照を挿入する…」から「プロセスIDの値」を選択して #{#q_process_id} を挿入セットします
C-K3: フィールド 3 の表示名テンプレートの3つ目の項目の属性の名前を指定します。今回は「プロセスの開始日」と指定します。
C-V3: フィールド 3 の値テンプレートの3つ目の項目の入力値です。「参照を挿入する…」から「プロセスの開始日の値」を選択して #{#q_start_date} を挿入セットします
C-K4: フィールド 4 の表示名テンプレートの4つ目の項目の属性の名前を指定します。今回は「作業ステータス」と指定します。
C-V4: フィールド 4 の値テンプレートの4つ目の項目の入力値です。「参照を挿入する…」から「作業ステータスの値」を選択して #{#q_status_choice} を挿入セットします
C-K5: 以降の設定項目は空白のままにします 
ファイルにメタデータ追加」の設定項目
  • テキスト形式の属性に、文字型複数行のデータ項目を指定して改行を含む文字列の値を入力すると、空白で区切られた1行の文字列として入力されます
  • 数字形式の属性に数字と小数点(.)以外の入力値を指定すると自動工程がエラーとなります
  • 日付形式の属性に入力できるのは yyyy-MM-dd の書式のみです
    • 日時型やプロセス開始日時を加工せずに入力すると自動工程がエラーとなります
  • ドロップダウン形式の属性に入力できるのはオプションと完全一致する文字列のみです
    • 一致するオプションがなければ自動工程がエラーとなります
  • 今回は「フィールド n の値」の設定項目に、初期値を設定したデータ項目を参照指定しています
    • 「ファイル登録」工程で入力値を変更する必要がない、あるいは変更させない場合は、設定項目に直接参照式を指定します

参考:Box テンプレートの設定

今回利用するテンプレートの設定です。

テンプレート名:テストテンプレート
属性の名前形式オプション表示/非表示
アップロード・ユーザ名テキスト表示
プロセスID数字表示
プロセスの開始日日付表示
作業ステータスドロップダウン – 単一選択
  • 新規ファイル
  • 作業中
  • 完成品
表示

Appendix: 自動入力を利用した設定 TIPS

メタデータとして付加されるべき情報は、業務部門やアップロードされるファイルの性質の違いなどによって大きく異なり多岐にわたります。必要となる情報を熟慮してテンプレートを作成してください。

一方で、どのような業務にも共通するような情報もあります。特に同一業務では毎回同じような情報(値)を付加するケースもあるでしょう。そのような場合は自動入力を工夫して利用することで、作業者の負担を減らすことができます。ここでは自動入力を利用できる例についていくつか紹介します。

プロセス開始ユーザ

Box ではファイルの新規アップロード時に実行ユーザ(アップローダー)が自動で記録されます。しかし Questetra の自動工程でアップロードされたファイルは、全て自動工程の認証ユーザがアップローダーとなります。

実際にアップロード操作したユーザ名をテキスト形式のメタデータの入力値とするには、自動工程の設定画面の「フィールドの値」に[プロセス開始ユーザ]を EL式 で指定します。

#{processInstanceInitQuserName}

(設定画面の[Ξ+ 参照を挿入…]から「プロセス開始ユーザ」を選択して挿入セットします)

プロセスID

ファイルがアップロードされた際の Questetra のプロセスの ID (p123456 の数字部分)を Box ファイルのメタデータに追加しておけば、Questetra と Box の連携がより強固になります。例えば「Questetra のプロセス ID から Box のファイルを検索する」、「Box のファイルから Questetra のプロセスを検索する」の両方が可能になります。

#{processInstanceId}

(設定画面の[Ξ+ 参照を挿入…]から「プロセス ID」を選択して挿入セットします)
プロセス ID の数字部分がテンプレートの値として入力されるので、属性の形式は「数字」を指定します。

プロセス開始日時

Box では「作成日(新規アップロード時刻)」が自動で記録されます。しかし実際のワークフローでは、プロセス開始後にいくつかの工程を経てからファイルがアップロードされるようなケースもあるでしょう。この場合はアップロード日時(自動工程の処理日時)よりもプロセス開始日時の方が検索しやすいでしょう。

プロセス開始日時を日付形式の入力値とするときには注意が必要です。テンプレートの日付刑式への入力値はフォーマットが指定されており(yyyy-MM-dd)、参照から挿入…された EL式ではエラーとなります。

#{processInstanceStartDatetime} (yyyy-MM-dd HH:mm を出力)

#{#dateFormatter.format(‘yyyy-MM-dd’, processInstanceStartDatetime)}

と書き換えて自動工程に設定します。

なお、日付型(年月日)データ項目の初期値に processInstanceStartDatetime を設定した場合は、データ項目のフォーマット(yyyy-MM-dd)に従うのでこの変換は必要ありません。

 See also

%d人のブロガーが「いいね」をつけました。