Box連携拡張で広がる操作性と性能

本Cookbookについて

このCookbookでは、Box 連携(BoxClient)の拡張方法を紹介します。

執筆時点(2026年3月)の最新版である Box連携 8.0.6 には、
iAP 独自の設計(パスベース管理・非バージョン管理など)に起因する機能上の制約があり、
Box が本来備える機能を十分に活用できない場面や、性能面で工夫が求められるケースもあります。

そのため、Box の標準機能を期待していた開発者が戸惑うケースもあり、
要件に応じた独自実装が必要になるケースが生じています。
こうした独自実装への取り組みは、すでに多方面で進んでいるとも聞き及んでいます。

本書は、そのような現場で一から実装するのではなく、
用意されたサンプルを活用して効率よく開発に着手できるよう、
Box 連携の拡張方法、LDタスクの追加手順、および導入・使用時のポイントをまとめたものです。

紹介するサンプルでは、現行の Box Java SDK V4.0 と
執筆時点の最新版である Box Java SDK V10 を共存させる構成も取り上げます。
また、V10 で新たに利用可能になる Box Sign・タスク管理・ウォーターマーク・Zip ダウンロード・
法的保留(Legal Hold)・Box AI API など、V10 ならではの機能や
想定される用途・ユースケースについても紹介します。

本 Cookbook が、皆さまのさらなるチャレンジを後押しし、
開発プロジェクトの一助となれば幸いです。

対象読者

  • Box 連携機能の拡張に関心がある方
  • Box Java SDK V10 の利用を検討している方
  • eBuilder を用いた開発経験がある方(Java・Maven・モジュールプロジェクトの知識がある方)

完成イメージ

本 Cookbook を順に進めることで、LD の既存「Box」カテゴリに拡張タスクが追加され、
V4 拡張・V10 拡張の合計 114 種類(各 57 種類)の LDタスクが利用可能になります。

LDタスク一覧

追加されるタスクはいずれも ID ベースで操作できます。
たとえば下図のように、folderId を指定してファイルをアップロードするフローを
パスを意識せずにシンプルに組み立てられます。

サンプルフロー

以下は追加されるタスクの一覧です。各タスクは V4拡張・V10拡張の両バージョンが提供されます。

ファイル操作(19種類)― クリックで展開

タスク名 概要
ファイルアップロード フォルダ ID を指定してファイルをアップロード
大容量ファイルアップロード 大容量ファイルを分割アップロード
アップロード事前チェック アップロード前に容量・権限などを確認
ファイル新バージョンアップロード 既存ファイルに新バージョンをアップロード
ファイルダウンロード ファイル ID を指定してダウンロード
ファイルバージョンダウンロード 指定バージョンのファイルをダウンロード
ファイル情報取得 ファイル ID を指定してファイル情報を取得
ファイル情報更新 ファイルの説明などのメタ情報を更新
ファイル名変更 ファイル ID を指定してファイル名を変更
ファイルコピー ファイルを指定フォルダにコピー
ファイル移動 ファイルを指定フォルダに移動
ファイル削除 ファイル ID を指定して削除
ファイル復元 ゴミ箱からファイルを復元
ファイルロック ファイルを編集ロック
ファイルロック解除 ファイルのロックを解除
ファイルプレビューURL取得 ファイルのプレビュー URL を取得
ファイル共有リンク作成 ファイルの共有リンクを作成
ファイル共有リンク取得 ファイルの共有リンク情報を取得
ファイル共有リンク削除 ファイルの共有リンクを削除

 

ファイルバージョン管理(3種類)― クリックで展開

タスク名 概要
ファイルバージョン履歴取得 ファイルのバージョン一覧を取得
ファイルバージョン削除 指定バージョンを削除
ファイルバージョン昇格 旧バージョンを最新バージョンに昇格

 

フォルダ操作(11種類)― クリックで展開

タスク名 概要
フォルダ作成 親フォルダ ID を指定してフォルダを作成
フォルダ情報取得 フォルダ ID を指定してフォルダ情報を取得
フォルダ内容一覧取得 フォルダ内のファイル・フォルダ一覧を取得
フォルダ名変更 フォルダ ID を指定してフォルダ名を変更
フォルダ説明更新 フォルダの説明を更新
フォルダコピー フォルダを指定フォルダにコピー
フォルダ移動 フォルダを指定フォルダに移動
フォルダ削除 フォルダ ID を指定して削除
フォルダ共有リンク作成 フォルダの共有リンクを作成
フォルダ共有リンク取得 フォルダの共有リンク情報を取得
フォルダ共有リンク削除 フォルダの共有リンクを削除

 

コラボレーション(5種類)― クリックで展開

タスク名 概要
ファイルコラボレーション作成 ファイルにコラボレーターを追加
ファイルコラボレーション一覧取得 ファイルのコラボレーター一覧を取得
フォルダコラボレーション作成 フォルダにコラボレーターを追加
フォルダコラボレーション一覧取得 フォルダのコラボレーター一覧を取得
コラボレーション削除 コラボレーション ID を指定して削除

 

ファイルメタデータ(6種類)― クリックで展開

タスク名 概要
ファイルメタデータ設定 ファイルにメタデータを設定
ファイルメタデータ設定(テンプレート指定) テンプレートを指定してメタデータを設定
ファイルメタデータ取得 ファイルのメタデータを取得
ファイルメタデータ取得(テンプレート指定) テンプレートを指定してメタデータを取得
ファイルメタデータ削除 ファイルのメタデータを削除
ファイルメタデータ削除(テンプレート指定) テンプレートを指定してメタデータを削除

 

フォルダメタデータ(6種類)― クリックで展開

タスク名 概要
フォルダメタデータ設定 フォルダにメタデータを設定
フォルダメタデータ設定(テンプレート指定) テンプレートを指定してメタデータを設定
フォルダメタデータ取得 フォルダのメタデータを取得
フォルダメタデータ取得(テンプレート指定) テンプレートを指定してメタデータを取得
フォルダメタデータ削除 フォルダのメタデータを削除
フォルダメタデータ削除(テンプレート指定) テンプレートを指定してメタデータを削除

 

メタデータテンプレート(5種類)― クリックで展開

タスク名 概要
メタデータテンプレート作成 メタデータテンプレートを作成
メタデータテンプレート取得 テンプレート情報を取得
エンタープライズメタデータテンプレート一覧取得 エンタープライズ内のテンプレート一覧を取得
メタデータテンプレート更新 テンプレートを更新
メタデータテンプレート削除 テンプレートを削除

 

検索(2種類)― クリックで展開

タスク名 概要
キーワード検索 キーワードで Box 内のファイル・フォルダを検索
キーワード検索(オフセット指定) オフセット指定でページング検索

 

配布資材

本 Cookbook で使用する資材は以下のとおりです。各リンクからダウンロードしてください。

資材名 内容
cookbook269703_box-java-sdk-v10-repackager.zip V10 リパッケージ用 Maven プロジェクト
cookbook269703_REPACKAGE_GUIDE.txt リパッケージ手順書
cookbook269703_source_imm.zip モジュールプロジェクト + ユーザモジュール(IMM)
cookbook269703_im_logicdesigner-data.zip サンプル ロジックフロー(LD インポート用)

 

動作確認バージョン

バージョン モジュール LDフロー(インポート)
iAP 2026 Spring (8.0.39) + Box連携モジュール (8.0.6)
iAP 2025 Autumn (8.0.38) + Box連携モジュール (8.0.6)
iAP 2024 Spring (8.0.35) + Box連携モジュール (8.0.5)
iAP 2023 Autumn (8.0.34) + Box連携モジュール (8.0.4) -
iAP 2023 Spring (8.0.33) + Box連携モジュール (8.0.3) -

 

※本資材は Box Java SDK 4.0.0 を利用しているバージョンを前提としています。
 iAP 2023 Spring (8.0.33) から Box Java SDK 4.0.0 が採用されたため、
 それ以前の古いバージョンには対応していません。
 (参考:iAP 2023 Spring リリースノート - サードパーティライセンス一覧

※サンプル ロジックフロー(LD インポート用)は、
 iAP 2025 Autumn (8.0.38) 環境からエクスポートした資材です。
 そのため古い環境(8.0.34、8.0.33)などでは、
 LD 基盤側の仕様変更に伴いインポートできない場合があります。
 ただし、モジュール自体は動作します。フローは手動で作成してください。
 (参考:上位アップデートバージョンの環境からエクスポートしたものを、下位アップデートバージョンの環境にインポート

※ご利用環境により必要な検証の上でご利用ください。


0. 環境構築と前提条件

本 Cookbook の実装には以下の開発環境が必要です。
各セットアップガイドを参考にご準備ください。

LogicDesigner タスクへの影響について
本 Cookbook の資材を導入すると、IM-LogicDesigner の既存「Box」カテゴリに拡張タスクが追加表示されます。
あわせて、既存タスクを含む Box 連携の内部 Client 実装も拡張後の構成に切り替わります。
利用者から見た操作方法は大きく変わりませんが、導入前に検証の上でご利用ください。

JDK バージョンについて
次のセクションで紹介するリパッケージ手順は、Amazon Corretto 17.0.18 で動作確認しています。
他の JDK 17 系をご利用の場合は、コマンドや出力差分を確認しながら実施してください。
JDK 21 以降をご利用の場合は、手順中の該当箇所を適宜読み替えてご対応ください。


1. リパッケージプロジェクト

本セクションでは、Box Java SDK V10 を iAP 環境で利用するための
リパッケージ版 JAR のビルドと配置 を行います。

手順の概要は以下のとおりです。詳細は REPACKAGE_GUIDE.txt を参照してください。

  1. 配布資材の box-java-sdk-v10-repackager を任意のディレクトリに展開
  2. プロジェクトルートで mvn clean package を実行(初回は数分かかります)
  3. 生成された box-java-sdk-v10-repackager-10.4.0-shaded.jarwebapp/WEB-INF/lib/ に配置

リパッケージ版 JAR に含まれる主なライブラリ

box-java-sdk-v10-repackager-10.4.0-shaded.jar には、
Box Java SDK V10 本体と以下のランタイム依存ライブラリが含まれます。
脆弱性情報の確認や運用時の棚卸しに利用してください。

ライブラリ バージョン 用途
com.box:box-java-sdk 10.4.0 Box Java SDK V10 本体
com.fasterxml.jackson.core:jackson-annotations 2.17.2 JSON シリアライズ関連
com.fasterxml.jackson.core:jackson-core 2.17.2 JSON パーサ
com.fasterxml.jackson.core:jackson-databind 2.17.2 JSON バインディング
com.squareup.okhttp3:okhttp 4.12.0 HTTP クライアント
com.squareup.okio:okio 3.5.0 I/O 補助
com.squareup.okio:okio-jvm 3.5.0 JVM 向け I/O 補助
org.bitbucket.b_c:jose4j 0.9.6 JWT / JWS / JWE 処理
org.slf4j:slf4j-api 1.7.36 ロギング API
org.bouncycastle:bcprov-jdk18on 1.82 暗号処理プロバイダ
org.bouncycastle:bcpkix-jdk18on 1.82 PKIX / 証明書処理
org.bouncycastle:bcutil-jdk18on 1.82 BouncyCastle 共通ユーティリティ
org.jetbrains.kotlin:kotlin-stdlib-jdk8 1.8.21 Kotlin 標準ライブラリ
org.jetbrains.kotlin:kotlin-stdlib 1.8.21 Kotlin 標準ライブラリ
org.jetbrains.kotlin:kotlin-stdlib-jdk7 1.8.21 Kotlin 標準ライブラリ
org.jetbrains.kotlin:kotlin-stdlib-common 1.9.0 Kotlin 共通ライブラリ
org.jetbrains:annotations 13.0 アノテーション定義

OSS ライセンスについて

配布している V10 リパッケージ版 JAR には、上記の OSS ライブラリが含まれます。
ライセンス情報は JAR 内の META-INF/LICENSEMETA-INF/NOTICE などに含まれるため、
ご利用前に対象ライブラリのライセンス条件を確認してください。
本 Cookbook ではリパッケージ版 JAR の利用方法を紹介していますが、
実際の配布や組み込みにあたっては利用者側の配布ポリシーに沿って確認・管理してください。

前提条件・コマンド例・トラブルシュートについて
REPACKAGE_GUIDE.txt を参照してください。


2. サンプルプロジェクト

配布資材の以下の3点を順番に開発環境へ導入してください。

ユーザモジュール

cookbook269703_source_imm.zip を展開し、
中に含まれる cookbook269703_im_box_ex_cookbook.imm
WAR ファイルに含めて開発環境にデプロイしてください。

手順は ユーザモジュールの作成(iAP セットアップガイド) を参照してください。


サンプルロジックフロー

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

手順は ロジックフローのインポート(IM-LogicDesigner ユーザガイド) を参照してください。


モジュールプロジェクト

cookbook269703_source_imm.zip を展開し、
中に含まれる cookbook269703_im_box_ex_cookbook.zip を展開し、
eBuilder にインポートしてください。

手順は以下を参照してください。
- eBuilder プロジェクトのインポート方法(Cookbook)
- eBuilder でプロジェクトをエクスポート・インポートする方法(サポートサイト)


以上で導入手順は完了です。
続く後半では、拡張の内部構成と設計方針、そして V10 ならではの活用可能性を解説します。


拡張の構成(詳細)

本セクションでは、モジュールプロジェクトの内部構成と設計方針を解説します。

パッケージ構成

im_box_ex_cookbook/src/main/java/org/example/box/ex/
├── common/                        ← 共通例外クラス
├── v4/                            ← V4拡張(Box Java SDK 4.0ベース)
│   ├── client/                    ← BoxClientEx / ExtendedBoxClient
│   │   ├── impl/                  ← 操作実装クラス
│   │   │   └── helper/            ← 実装ヘルパークラス
│   │   ├── operation/             ← 操作インターフェース定義
│   │   └── util/                  ← ユーティリティ(ItemFinder等)
│   ├── logic/                     ← LDタスク(カテゴリ別)
│   │   ├── file/                  ←   ファイル操作・バージョン管理
│   │   ├── folder/                ←   フォルダ操作
│   │   ├── collaboration/         ←   コラボレーション
│   │   ├── filemetadata/          ←   ファイルメタデータ
│   │   ├── foldermetadata/        ←   フォルダメタデータ
│   │   ├── metadatatemplate/      ←   メタデータテンプレート
│   │   ├── search/                ←   検索
│   │   └── (各カテゴリ)/metadata/ ←   LDタスクメタデータ定義
│   └── sample/                    ← 動作確認用サンプル Job クラス
└── v10/                           ← V10拡張(Box Java SDK 10ベース)
    ├── client/                    ← BoxClientExV10 / ExtendedBoxClientV10
    │   ├── impl/helper/           ← 実装ヘルパークラス
    │   ├── operation/             ← 操作インターフェース定義
    │   └── util/                  ← ユーティリティ(ItemFinderV10等)
    ├── logic/                     ← LDタスク(v4と同カテゴリ構成)
    └── sample/                    ← 動作確認用サンプル Job クラス

レイヤー1:BoxClient の拡張パターン(V4.0ベース)

v4/ パッケージは、iAP 標準の BoxClient インターフェースの標準実装を継承し、
操作カテゴリごとに 実装クラスを多段継承 する構成になっています。

ExtendedBoxClient          ← エントリポイント(BoxClientEx を実装)
  └─ FileMetadataOperationImpl
       └─ SearchOperationImpl
            └─ CollaborationOperationImpl
                 └─ FolderOperationImpl
                      └─ FileOperationImpl
                           └─ BaseBoxClientExImpl  ← ヘルパーの初期化・管理

各実装クラスは対応する helper/ クラスに処理を委譲しており、
実装クラス自体は薄いラッパーとして保たれています。
新しい操作カテゴリを追加する場合は、この継承チェーンに実装クラスを加えるだけで対応できます。

レイヤー2:V4.0 と V10 の共存アーキテクチャ

V4 と V10 は互いに競合するクラス(jackson・okhttp3 等)を持つため、
そのまま同一プロジェクトに同梱するとクラスパス衝突が発生します。
本サンプルでは以下の2つの仕組みでこの問題を解決しています。

① リパッケージング(パッケージ名変更)
box-java-sdk-v10-repackager プロジェクトが Maven Shade Plugin を使い、
Box Java SDK V10 本体と、クラスパス衝突の回避が必要な主要依存ライブラリを org.example.box.v10.* 名前空間へ移動させます。
これにより V4 側のクラスと名前が衝突しなくなります。

② V4AuthenticationBridge(認証の橋渡し)
V10 の BoxClient は独自の Authentication インターフェースで認証を行います。
V4AuthenticationBridge が V4 の BoxAPIConnection(iAP が管理するトークン)を
V10 の Authentication インターフェースに変換することで、
V4 の認証コンテキストをそのまま V10 でも再利用 できます。

iAP(BoxAPIConnection)
        │
        ▼
V4AuthenticationBridge   ← V4 → V10 認証変換
        │
        ▼
ExtendedBoxClientV10     ← V10 操作の起点
        │
        ▼
BoxClient(V10リパッケージ版)

レイヤー3:V10 で実現できる新しい機能の可能性

v10/ パッケージは、V10 SDK ベースの API 呼び出しを利用する実装としています。
このため、従来の V4 拡張と同等の操作を V10 SDK のアーキテクチャ上でも実行できるほか、
V10 SDK が提供する追加 API と連携した機能拡張も可能になります。

機能 V4拡張 V10拡張 備考
ファイル・フォルダ操作全般 両バージョンで同等
メタデータ・テンプレート操作 両バージョンで同等
大容量ファイルアップロード 両バージョンで同等
ファイルバージョン昇格 両バージョンで同等

3. 新しい機能の活用可能性(ユースケース紹介)

このセクションでは視点を切り替えて、
V10 拡張を導入することで何ができるようになるか、活用の観点から紹介します。

本サンプルでは、Box の日常的なファイル操作・メタデータ管理・検索を中心に
V4拡張・V10拡張 各 57 種類のタスクを実装しています。

Box Java SDK V10 はこれ以外にも多くの機能を提供しており、
要件に応じて追加実装することができます。

追加する際は既存タスク(例:UploadFileTaskV10)を参考に、
同じ構成でクラスを作成いただくと効率的です。

カテゴリ 主な操作例 V4 SDK V10 SDK
コメント ファイルへのコメント追加・取得・削除
グループ管理 グループの作成・メンバー管理
ユーザ管理 ユーザ情報の取得・更新
Webhook イベント通知の登録・管理
イベント ユーザ・エンタープライズのイベント取得
リテンション 保持ポリシーの設定・管理
ファイルリクエスト ファイル収集リクエストの作成・管理
Box Sign 電子署名ワークフローの作成・管理 -
タスク管理 レビュー・承認タスクの作成・割り当て -
ウォーターマーク ファイル・フォルダへの透かし設定 -
Zip ダウンロード 複数ファイルの一括ダウンロード -
法的保留(Legal Hold) コンプライアンス対応の保留ポリシー管理 -
Box AI API(Ask / Text Generation) AI 機能 -

 

本サンプルでは未実装ですが、V10 拡張を導入することで、
例えば、以下のような活用ができるようになります。

Box Sign

電子署名の作成や署名依頼をオンラインで行える機能です。
契約書や承認書類などのやり取りを Box 上で完結できます。

タスク管理

ファイルに対してレビューや承認タスクを割り当てることが可能です。
担当者への通知や進捗把握がしやすく、簡易なワークフローを構築できます。

ウォーターマーク

Box 上のファイル・フォルダに透かしを設定できる機能です。
閲覧時にユーザ名やアクセス日時が表示されるため、情報漏えい対策として有効です。

Zip ダウンロード

複数のファイル・フォルダをまとめて ZIP 形式でダウンロードできます。
大量データの受け渡しやローカル保存がしやすくなります。

法的保留

訴訟対応などのために対象ファイルを削除不可状態に保つ機能です。
コンプライアンスやガバナンスの強化に役立ちます。

Box AI

Box に保存されているファイルの内容をもとに、要約・質問応答・文章生成などを行える AI 機能です。
ドキュメント理解の効率化や作業自動化を支援します。

Box AI Ask API

Box に保存されたファイルの内容に対して、自然言語で質問できる API です。
PDF・Word・テキストファイルなどを対象に、
「このドキュメントの要点は?」
「〇〇について書かれている箇所は?」といった問い合わせが可能です。

想定ユースケース
- 社内ドキュメントへの Q&A 機能
- 契約書・仕様書の内容確認の自動化
- サポート担当者向けのナレッジ検索補助

詳細は Box Developer Documentation - AI Ask をご参照ください。


Box AI Text Generation API

指定したプロンプトと Box 内のファイルをコンテキストとして、AI がテキストを生成できる API です。
レポートのドラフトやメール文面など、定型的な文書作成の補助に適しています。

想定ユースケース
- ドキュメントの要約文の自動生成
- 議事録・レポートのドラフト作成補助
- ファイル内容に基づいたメール文面の提案

詳細は Box Developer Documentation - AI Text Generation をご参照ください。


まとめ

本 Cookbook では、Box 連携(BoxClient)を拡張して IM-LogicDesigner に
合計 114 種類(V4拡張・V10拡張 各 57 種類)の LDタスクを追加する方法を紹介しました。

配布サンプルを活用することで、以下のことがすぐに始められます。

  • ID ベースの操作:パスを意識せず、ファイル・フォルダを直感的に操作できる
  • V4 と V10 の共存:既存の iAP 環境を壊さずに V10 SDK の機能を取り込める
  • 拡張の土台:コメント・グループ管理 など、さらなる機能追加の足がかりになる

また、V10 拡張を導入することで、Box Sign・Zip ダウンロード・Box AI API など、
V4 では利用できなかった機能が視野に入ってきます。
これらはすぐに実装が求められるわけではありませんが、
将来の要件拡張に向けて「使える選択肢がある」という状態を作っておくことは、
開発プロジェクトの大きな安心材料になるはずです。

サンプルはあくまで出発点です。
ご自身のプロジェクトの要件に合わせて、ぜひ自由にカスタマイズしてみてください。

本 Cookbook が、皆さまの開発の一歩を後押しできれば幸いです。