概要
この記事では、パッケージによって公開されるパブリックデータモデル、つまり、Salesforceの管理者および開発者がクエリ実行、レポート作成、構成を行えるオブジェクト、設定、およびメタデータタイプについて説明します。
オブジェクトタイプについて
このパッケージでは、3種類のSalesforceデータ構造を使用しています。
- カスタムオブジェクト
- カスタム設定
- カスタムメタデータタイプ
カスタムオブジェクト
これらのオブジェクトは、クエリ実行、レポート作成、標準的なSalesforce機能 (リストビュー、ページレイアウトなど) との統合が可能なレコードを格納します。
フォルダ管理オブジェクト
FRUP__c (Folder-Record-User-Permission)
用途: SalesforceレコードをBoxフォルダに関連付け、ユーザーのアクセスレベルを定義する、中心的な連結オブジェクト。
使用する場面: フォルダコラボレーションに関するレポートを作成したり、ユーザー権限を監査したり、特定のSalesforceレコードについてどのユーザーがどのBoxフォルダにアクセスできるかを把握したりする際に、このオブジェクトにクエリを実行します。
仕組み:
- 各レコードは、1つのSalesforceレコードに関連付けられた1つのBoxフォルダに対する1ユーザーの権限を表します。
- 複数のFRUPレコードが (
Record_ID_Indexed__cを介して) 同じSalesforceレコードを参照でき、ユーザーごとに1つのレコードで権限レベルが定義されます。 - パッケージのスケジュール設定された同期ジョブでは、フォルダマッピングの構成に基づいて、これらのレコードが自動的に作成および更新されます。
主な項目:
項目 |
API名 |
型 |
説明 |
|---|---|---|---|
| レコードID (インデックス付き) | Record_ID_Indexed__c |
テキスト (インデックス付き) | 親SalesforceレコードIDの文字列バージョン。 パフォーマンス向上のために、クエリではRecord_ID__cではなく、必ずこの項目を使用してください。 |
| フォルダID | Folder_ID__c |
テキスト | この権限に関連付けられたBoxフォルダID |
| コラボレーションID | CollaborationID__c |
テキスト | 権限の更新時に使用されるBoxコラボレーションID |
| Salesforceユーザー | Salesforce_User__c |
参照 (ユーザー) | この権限を持つSalesforceユーザー |
| 権限 | Permission__c |
選択リスト | アクセスレベル: Read、Read/Write、Ownerなど |
| BOSSステータス | BOSS_Status__c |
テキスト | スケジュール設定された権限同期ジョブで使用される、内部ステータスフラグ (変換済み/削除) |
関係:
- 1つのSalesforceレコード → 複数のFRUPレコード (アクセス権限を持つユーザーごとに1つ)
- 1つのBoxフォルダ → 複数のFRUPレコード (アクセス権限を持つユーザーごとに1つ)
- 1ユーザー → 複数のFRUPレコード (ユーザーがアクセスできるフォルダごとに1つ)
重要: これは、フォルダコラボレーションおよび権限に関するレポートを作成する際に顧客がクエリを実行するプライマリオブジェクトです。
Folder_Meta__c (フォルダのメタデータ)
用途: パッケージで管理されるBoxフォルダを追跡し、マッピングの重複防止や共有リンクの有効化のためにフォルダのメタデータを格納するカタログオブジェクト。
使用する場面: 通常はパッケージによって自動的に管理されます。 追跡されるBoxフォルダを確認したり、プログラムでフォルダの共有リンクにアクセスしたりする必要がある場合は、このオブジェクトを参照します。
主な項目:
項目 |
API名 |
型 |
説明 |
|---|---|---|---|
| フォルダID | Folder_ID__c |
テキスト | BoxフォルダID |
| フォルダ名 | Folder_Name__c |
テキスト (一意) | Boxフォルダの名前 |
| フォルダの共有リンク | Folder_Share_Link |
URL | Boxフォルダの公開リンクまたは共有リンク |
関係:
- フォルダ情報をBoxと同期する際に、パッケージのApexコードおよび一括ジョブによって参照されます
- 共有の
Folder_ID__c項目を介してFRUPレコードに間接的に関連付けられます
Box Signオブジェクト
オブジェクト階層
BoxSign__c (署名リクエスト)
└── BoxSign_Signer__c (個々の署名者)
└── BoxSign_Signer_Input__c (フォーム項目/値)BoxSign__c
用途: 単一のBox Signリクエストを表す親オブジェクト。
使用する場面: 署名リクエストのステータスに関するレポートの作成、完了率の追跡、またはSalesforceレコード全体の署名アクティビティが表示されるダッシュボードの作成を行う際に、このオブジェクトにクエリを実行します。
主な項目:
項目 |
API名 |
型 |
説明 |
|---|---|---|---|
| ステータス | Status__c |
選択リスト | 現在の状態: Draft、Sent、Viewed、Completed、Declined、Expiredなど |
| BoxSign URL | BoxSign_url__c |
URL | Box Signセッションへのリンク |
| エラーメッセージ | Error_Message__c |
長いテキスト | Box Sign APIによって返されるエラーメッセージ |
| 作成日 | CreatedDate |
日時 | レコード作成時の標準タイムスタンプ |
| 名前 | Name__c |
自動採番 | 署名リクエストの一意の識別子 |
| 取引先 | Account__c |
参照 (取引先) | 親取引先レコード (省略可) |
| 商談 | Opportunity__c |
参照 (商談) | 親商談レコード (省略可) |
| 取引先責任者 | Contact__c |
参照 (取引先責任者) | 親取引先責任者レコード (省略可) |
| 契約 | Contract__c |
参照 (契約) | 親契約レコード (省略可) |
関係:
- 複数の
BoxSign_Signer__cレコード (署名者ごとに1つ) に対する親 - Salesforce標準オブジェクト (取引先、商談、取引先責任者、契約) の参照 (省略可)
BoxSign_Signer__c
用途: Box Signリクエストの個々の署名者を表します。
使用する場面: 個々の署名者のステータスの追跡、保留中の署名者の特定、署名者の完了時刻に関するレポートの作成を行う際に、このオブジェクトにクエリを実行します。
主な項目:
項目 |
API名 |
型 |
説明 |
|---|---|---|---|
| BoxSign | BoxSign__c |
主従関係 (BoxSign__c) | 親署名リクエスト |
| メール | Email__c |
メール | 署名者のメールアドレス |
| 名前 | Name__c |
自動採番 | この署名者の一意の識別子 |
| ステータス | Status__c |
選択リスト | 現在の状態: Awaiting、Signed、Declinedなど |
| 取引先責任者 | Contact__c |
参照 (取引先責任者) | Salesforceの取引先責任者レコードのリンク (省略可) |
| 署名者ID | SignerId__c |
テキスト | Box提供の外部識別子 |
| メッセージ | Message__c |
長いテキスト | 署名者に送信されたメッセージ (省略可) |
関係:
BoxSign__cの子 (主従関係)- 複数の
BoxSign_Signer_Input__cレコード (フォーム項目) の親 - 取引先責任者の参照 (省略可)
BoxSign_Signer_Input__c
用途: 署名者に関するフォーム項目の定義と取得した値 (チェックボックス、日付項目、テキスト入力など) を格納します。
使用する場面: 署名プロセスで署名者が入力したデータ (同意日、イニシャル、カスタムフォームへの回答など) を抽出する際に、このオブジェクトにクエリを実行します。
主な項目:
項目 |
API名 |
型 |
説明 |
|---|---|---|---|
| BoxSign署名者 | BoxSign_Signer__c |
主従関係 (BoxSign_Signer__c) | 親署名者のレコード |
| タイプ | Type__c |
テキスト | 入力タイプの説明 |
| タイプコード | Type_Code__c |
数値 | 入力の種類を識別する数値コード |
| チェックボックスの値 | Checkbox_Value__c |
チェックボックス | ブール型の入力値 |
| 日付の値 | Date_Value__c |
日付 | 日付の入力値 |
| テキスト | Text__c |
テキスト | 自由形式のテキスト値 |
| ラベル | Label__c |
テキスト | 署名フォームに表示されるラベル |
| ページインデックス | Page_Index__c |
数値 | ドキュメント内のページ番号 |
| 例外 | Exception__c |
長いテキスト | 検証が失敗した場合のエラーの詳細 |
| 外部ID | External_Id__c |
テキスト | Box提供の外部識別子 |
関係:
BoxSign_Signer__cの子 (主従関係)- Box Sign階層におけるリーフノード
ドキュメント生成オブジェクト
DocGen_Template__c
用途: Box Doc Genで使用されるドキュメント生成テンプレートに関するメタデータを格納します。 各テンプレートは、Boxファイルを参照しており、必要に応じてBox Signに対して有効にすることも可能です。
使用する場面: ユーザーがドキュメントを生成できるように、テンプレートレコードを作成します。 利用可能なテンプレートの選択リストを作成したり、テンプレートの使用状況を追跡したりするためにクエリを実行します。
主な項目:
項目 |
API名 |
型 |
説明 |
|---|---|---|---|
| コード | Code__c |
テキスト (一意) | テンプレートの開発者名 |
| 説明 | Description__c |
長いテキスト | 人間が判読できる説明 |
| フォルダID | Folder_Id__c |
テキスト | テンプレートファイルを含むBoxフォルダ |
| ファイルID | File_Id__c |
テキスト | テンプレートのBoxファイルID |
| ファイルバージョンID | File_Version_Id__c |
テキスト | Boxのバージョン識別子 |
| Box Signの利用可否 | Available_for_Box_Sign__c |
チェックボックス | Box Signとの連携を有効にする |
| 生成されるファイル名 | Generated_File_Name__c |
テキスト | 生成されるドキュメントのデフォルトの名前 |
関係: スタンドアロンのオブジェクト。 カスタムの自動化またはフローを通じてSalesforceレコードに関連付けられる場合があります。
カスタム設定
カスタム設定には、構成データが保存され、標準的なSOQLクエリではなくApex経由でアクセスします。 レポートでは使用できませんが、構成値への効率的なアクセスを可能にします。
Folder_Details__c (フォルダの詳細) – リストのカスタム設定
機能分野: フォルダ管理
用途: パッケージの設定フローおよびUIコンポーネントで使用される基本的なフォルダマッピング構成を格納します。
使用する場面: 主に初期設定時に入力されます。 管理者は、オブジェクトフォルダマッピングの切り替え時やルートフォルダの変更時に、これらの設定の編集が必要になる場合があります。
主な項目:
項目 |
API名 |
型 |
説明 |
|---|---|---|---|
| フォルダID | box__FolderId__c |
テキスト | BoxフォルダID |
| フォルダ名 | box__Folder_Name__c |
テキスト | Box提供のキャッシュされたフォルダ名 |
アクセス方法:
- [Setup (設定)] → [Custom Settings (カスタム設定)] → [Folder Details (フォルダ詳細)] → [Manage (管理)]
- Apex経由:
box__Folder_Details__c.getAll()またはbox__Folder_Details__c.getValues(name)
BoxSignSettings – 階層のカスタム設定
機能分野: Box Sign
用途: Box Signの機能およびBox Sign APIのパラメータについて組織全体での構成を格納します。
使用する場面: 管理者は、初期設定時またはBox Signの動作をカスタマイズする際にこれを設定します。 開発者は、カスタム統合の作成時にこれらの設定を参照します。
主な構成オプション:
- デフォルトの署名者と署名者の順序
- ドキュメントの差し込み項目に対する事前入力タグのマッピング
- リマインダのメール本文および件名のテンプレート
- Box Sign APIコールバックのURLおよびパラメータ
- 機能フラグと動作設定
アクセス方法:
- [Setup (設定)] → [Custom Settings (カスタム設定)] → [BoxSignSettings] → [Manage (管理)]
- Apex経由:
box__BoxSignSettings__c.getInstance()
カスタムメタデータタイプ
BoxSignDisplaySettings (BoxSignDisplaySetting__mdt)
機能分野: Box Sign
用途: Box SignのUIおよび表示動作 (ボタンラベル、ページレイアウト、フィールドの可視性など) を制御します。
使用する場面: パッケージのコンポーネントによって自動的に参照されます。 開発者は、拡張してBox SignのUIエクスペリエンスをカスタマイズできます。
主な利点:
- 変更セットまたはソース管理を通じて組織間で展開可能
- 管理パッケージに追加可能
- コードによるバージョン管理
アクセス方法:
- [Setup (設定)] → [Custom Metadata Types (カスタムメタデータタイプ)] → [BoxSignDisplaySetting] → [Manage Records (レコードの管理)]
- Apex経由: SOQLを使用したクエリ (
SELECT ... FROM box__BoxSignDisplaySetting__mdt)
レポート作成および使用状況
このセクションは、カスタムオブジェクトのみに適用されます。 カスタム設定とカスタムメタデータタイプは、標準的なSalesforceレポートでは報告できません。
標準的なレポートの種類
このパッケージでは、簡単にレポートを作成できるように標準的なレポートタイプがインストールされます。
- Boxフォルダのコラボレーション –
box__FRUP__cを基に作成 - Box Signリクエスト –
box__BoxSign__cおよび関連オブジェクトを基に作成
カスタムレポート
box__FRUP__cは、フォルダの権限に関する主要な連結オブジェクトです。 FRUPをカスタムオブジェクトと結合したり、クロスオブジェクトレポートを作成したりするには、カスタムレポートタイプを作成します。
Box Signオブジェクトは、シンプルな親子階層 (box__BoxSign__c → box__BoxSign_Signer__c → box__BoxSign_Signer_Input__c) に従うため、カスタムレポートタイプまたはSOQLクエリを使用して簡単に拡張できます。
box__DocGen_Template__cは、利用可能なテンプレート、使用パターン、監査テンプレートの構成を追跡するために、レポートの対象にすることができます。
ベストプラクティス:
box__FRUP__cにクエリを実行する際は、最適なパフォーマンスを得るために必ずbox__Record_ID_Indexed__cでフィルタをかけてください。 インデックスが作成されていないbox__Record_ID__c項目は、以前のバージョンとの互換性を保つためだけに存在します。
一般的なクエリパターン
特定のレコードのBoxフォルダにアクセスできるすべてのユーザーを検索する:
SELECT box__Salesforce_User__r.Name, box__Permission__c, box__Folder_ID__c
FROM box__FRUP__c
WHERE box__Record_ID_Indexed__c = '001...'保留中のすべてのBox Signリクエストを検索する:
SELECT box__Name__c, box__Status__c, box__BoxSign_url__c
FROM box__BoxSign__c
WHERE box__Status__c IN ('Draft', 'Sent', 'Viewed')完了した署名から署名者の入力データを抽出する:
SELECT box__BoxSign_Signer__r.box__Email__c, box__Label__c, box__Text__c, box__Date_Value__c
FROM box__BoxSign_Signer_Input__c
WHERE box__BoxSign_Signer__r.box__BoxSign__r.box__Status__c = 'Completed'
リファレンス: Box for Salesforceのアーキテクチャ - エンティティ関係図