この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

ContentDistribution

ドキュメントの外部共有に関する情報を表します。このオブジェクトは、API バージョン 32.0 以降で使用できます。

サポートされているコール

create()、delete()、describeSObjects()、query()、retrieve()、undelete()、update()、upsert()

特別なアクセスルール

  • コンテンツ配信を照会するには、コンテンツ配信を有効にする必要があります。
  • ユーザ (「すべてのデータの参照」権限を持つユーザを含む) は、自分がアクセス権を持つファイルに対してのみクエリを実行できます。このファイルがコンテンツライブラリによって管理されている場合、ユーザは、ライブラリ権限定義で [コンテンツの配信] を有効にしていて、ライブラリのメンバーである必要があります。このファイルがコンテンツライブラリによって管理されていない場合は、ユーザに「Salesforce Files のコンテンツ配信の作成を有効化」権限が必要です。
  • ユーザが DistributionPublicUrl および Password 項目を照会できるのは、ユーザがそのファイルの所有者か、そのファイルがユーザと共有されているか、RelatedRecordId にこのユーザがアクセス可能なレコードが指定されている場合のみです。
  • 共有ドキュメントを削除すると、関連付けられたすべての ContentDistribution もカスケード削除されます。削除された ContentDistribution は、QueryAll 動詞を使用することで引き続きクエリ可能です。
  • 共有ドキュメントがアーカイブされている場合、ユーザが編集できる項目は、ExpiryDate と PreferencesExpires のみです。
  • カスタマーポータルユーザはこのオブジェクトにアクセスできません。
  • Chatter Free ユーザはこのオブジェクトにアクセスできません。

項目

項目名 詳細
ContentDocumentId
型
reference
プロパティ
Filter、Group、Nillable、Sort
説明
共有ドキュメントの ID。
ContentDownloadUrl
型
string
プロパティ
Sort、Nillable
説明
ファイルをダウンロードするためのリンク。この項目は、API バージョン 40.0 以降で使用できます。
ContentVersionId
型
reference
プロパティ
Create、Filter、Group、Sort
説明
共有ドキュメントバージョンの ID。
これはリレーション項目です。
リレーション名
ContentVersion
リレーション種別
Lookup
参照先
ContentVersion
DistributionPublicUrl
型
string
プロパティ
Nillable、Sort
説明
共有ドキュメントへのリンクの URL。
ExpiryDate
型
dateTime
プロパティ
Create、Filter、Nillable、Sort、Update
説明
共有ドキュメントがアクセス不能になった日付。
FirstViewDate
型
dateTime
プロパティ
Filter、Nillable、Sort
説明
共有ドキュメントが最初に表示された日付。
LastViewDate
型
dateTime
プロパティ
Filter、Nillable、Sort
説明
共有ドキュメントが最後に表示された日付。
Name
型
string
プロパティ
Create、Filter、Group、idLookup、Sort、Update
説明
コンテンツ配信の名前。
OwnerId
型
reference
プロパティ
Create、Filter、Group、Sort、Update
説明
共有ドキュメントを所有するユーザの ID。
これはリレーション項目です。
リレーション名
Owner
リレーション種別
Lookup
参照先
User
PdfDownloadUrl
型
string
プロパティ
Sort、Nillable
説明
ファイルを PDF としてダウンロードするためのリンク。この項目は、API バージョン 40.0 以降で使用できます。
Password
型
string
プロパティ
Group、Nillable、Sort
説明
共有ドキュメントへのアクセスを許可するパスワード。
PreferencesAllowOriginalDownload
型
boolean
プロパティ
Create、Filter、Update
説明
true の場合、共有ドキュメントは、アップロードされたときのファイル形式としてダウンロードできます。

false の場合、ダウンロード可能かどうかは、ファイルのプレビューが存在するかどうかによって異なります。プレビューが存在する場合、ファイルはダウンロードできません。プレビューが存在しない場合、ファイルは引き続きダウンロードできます。

共有ドキュメントがリンクの場合、ダウンロードできません。

PreferencesAllowPDFDownload
型
boolean
プロパティ
Create、Filter、Update
説明
true の場合、元のファイル形式が PDF か、PDF プレビューが生成済みであれば、共有ドキュメントを PDF としてダウンロードできます。
PreferencesAllowViewInBrowser
型
boolean
プロパティ
Create、Filter、Update
説明
true の場合、共有ドキュメントのプレビューを Web ブラウザで表示できます。
PreferencesExpires
型
boolean
プロパティ
Create、Filter、Update
説明
true の場合、共有ドキュメントへのアクセス権は、ExpiryDate に指定された日に期限が切れます。
PreferencesLinkLatestVersion
型
boolean
プロパティ
Create、Filter、Update
説明
true の場合、ユーザには最新バージョンの共有ドキュメントが表示されます。false の場合、ユーザには、共有しているバージョンのドキュメントが表示されます。これは最新バージョンでない場合もあります。
PreferencesNotifyOnVisit
型
boolean
プロパティ
Create、Filter、Update
説明
true の場合、共有ドキュメントの所有者には、共有ドキュメントが初めて表示またはダウンロードされたときにメールで通知されます。
PreferencesNotifyRndtnComplete
型
boolean
プロパティ
Create、Filter、Update
説明
true の場合、共有ドキュメントの所有者には、Web ブラウザでプレビュー可能な共有ドキュメントの変換が生成されると、メールで通知されます。
PreferencesPasswordRequired
型
boolean
プロパティ
Create、Filter、Update
説明
true の場合、共有ドキュメントにアクセスするには、Password で指定されたパスワードが必要です。
RelatedRecordId
型
reference
プロパティ
Create、Filter、Group、Nillable、Sort、Update
説明
共有ドキュメントが関連付けられているレコード (Account、Campaign、Case など) の ID。
これは多態的なリレーション項目です。
リレーション名
RelatedRecord
リレーション種別
Lookup
参照先
Account、Campaign、Case、Contact、EmailMessage、Lead、ListEmail、Opportunity
ViewCount
型
int
プロパティ
Filter、Group、Nillable、Sort
説明
共有ドキュメントが表示された回数。

使用方法

このオブジェクトを使用して、リンク経由または Salesforce CRM Content 配信経由で、外部共有されたドキュメントに関する情報を作成、更新、削除、照会します。

ContentDistribution オブジェクトでは、挿入、更新、削除操作の前後のトリガがサポートされます。さらに、復元後のトリガがサポートされます。

例

マーケティング担当副社長は、ファイル作成者に、作成したファイルをコンテンツ配信を使用して外部ユーザと共有できるかどうかを指定させることを検討しています。また、一部のファイルにはパスワードを設定することも考えています。この場合、ContentVersion オブジェクトにカスタム項目 DeliveryPolicy を追加できます。このカスタム項目を、値 Allowed、Blocked、Password required を持つ選択リストにします。この項目を ContentVersion レイアウトに追加して、ユーザがファイルごとに配信ポリシーを設定できるようにします。次に、ContentDistribution オブジェクト用の挿入トリガを追加して、ファイルに設定された配信ポリシーに基づいてルールを適用します。

ContentDistribution の ContentVersionId は一意にする必要があります。

メモ

次の ContentDistribution オブジェクト用トリガにより、各ファイルの配信ポリシールールが適用されます。
1trigger deliveryPolicy on ContentDistribution (before insert) {
2    for (ContentDistribution cd : trigger.new) {
3        String versionId = DeliveryPolicyHelper.getContentVersionId(cd);
4        ContentVersion version = [select DeliveryPolicy__c from ContentVersion where Id = :versionId];
5        String policy = version.DeliveryPolicy__c;
6        if (policy.equals('Blocked')) {
7            cd.addError('This file is not allowed to be delivered.');
8        } else if (policy.equals('Password required')){
9            if (!DeliveryPolicyHelper.requirePassword(cd)) {
10                cd.addError('To deliver this file, set a password.');
11            }
12        } 
13    }
14}
トリガは次のヘルパークラスをコールします。
1public class DeliveryPolicyHelper {
2    public static String getContentVersionId(ContentDistribution cd) {
3        if (cd.ContentVersionId != null) {
4            return cd.ContentVersionId;
5        } else {
6            String versionId = [select LatestPublishedVersionId from ContentDocument where Id = :cd.ContentDocumentId].get(0).LatestPublishedVersionId;
7            return versionId;
8        }
9    }
10    
11    public static boolean requirePassword(ContentDistribution cd) {
12        return cd.PreferencesPasswordRequired;
13    }
14}

Apex では、5 秒を超える同時要求は組織ごとに 10 件に制限されています。ファイルをアップロードするトリガは、この制限にすぐに達する可能性があります。

重要