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

Profile

ユーザプロファイルを表します。プロファイルは、Salesforce 内でさまざまな機能を実行するためのユーザの権限を定義します。Metadata メタデータ型を拡張し、その fullName 項目を継承します。
API バージョン 29.0 以降では、プロファイルと権限セットの次の管理コンポーネントのアクセス設定を取得およびリリースできます。
  • Apex クラス
  • アプリケーション
  • カスタム項目権限
  • カスタムオブジェクト権限
  • カスタムタブの設定
  • 外部データソース
  • レコードタイプ
  • Visualforce ページ

詳細は、package.xml マニフェストファイルのサンプル」の「管理コンポーネントへのアクセス」を参照してください。

宣言的なメタデータファイルのサフィックスおよびディレクトリの場所

ファイルのサフィックスは、.profile です。各プロファイルに 1 つのファイルがあり、対応するパッケージディレクトリの profiles フォルダに保存されます。

バージョン

プロファイルは、API バージョン 10.0 以降で使用できます。

項目

メタデータ API で返されるプロファイルのコンテンツは、RetrieveRequest メッセージ内で要求されるコンテンツによって異なります。たとえば、プロファイルには、プロファイルと同じ RetrieveRequest で返されたカスタムオブジェクトに含まれている項目の項目レベルのセキュリティのみが含まれます。

API バージョン 38.0 以降は、ユーザインターフェースでは変更できない項目の場合は、メタデータ API を使用して、項目権限を変更し、項目を編集可能にすることができます。たとえば、Asset.ProductCode はユーザインターフェースでは変更できませんが、編集可能項目としてリリースできます。

メモ

プロファイルの定義には次の項目が含まれます。
項目名 データ型 説明
applicationVisibilities ProfileApplicationVisibility[] このプロファイルに割り当てられているユーザに表示されるアプリケーションを示します。API バージョン 29.0 以前では、この項目はカスタムアプリケーションのみをサポートします。API バージョン 30.0 以降、この項目は標準アプリケーションとカスタムアプリケーションの両方をサポートします。
classAccesses ProfileApexClassAccess[] このプロファイルに割り当てられているユーザが実行できるメソッドを持つ最上位の Apex クラスを示します。
custom boolean プロファイルがカスタムプロファイルか (true)、標準プロファイルか (false) を示します。API バージョン 30.0 以降で使用できます。
customPermissions ProfileCustomPermissions[] このプロファイルに割り当てられているユーザが利用可能なカスタム権限を示します。API バージョン 31.0 以降で使用できます。
description string プロファイルの説明。最大 255 文字です。API バージョン 30.0 以降で使用できます。
externalDataSourceAccesses ProfileExternalDataSourceAccess[] このプロファイルに割り当てられたユーザが使用できる、ID 種別が [ユーザ] のデータソースを示します。API バージョン 27.0 以降で利用できます。
fieldLevelSecurities ProfileFieldLevelSecurity[] このプロファイルに割り当てられているユーザに表示される項目、および使用可能なアクセス権の種類 (編集可能または非表示) を示します。この項目は、API バージョン 22.0 以前で使用できます。
fieldPermissions ProfileFieldLevelSecurity[] このプロファイルに割り当てられているユーザに表示される項目、および使用可能なアクセス権の種類 (編集可能または参照可能) を示します。この項目は、API バージョン 23.0 以降で使用できます。
fullName string 名前には、英数字、およびアンダースコア (_) 文字のみを使用できます。また、最初は文字とし、最後にアンダースコアを使用したり、連続した 2 つのアンダースコア文字を含めたりすることはできません。

この項目はMetadata コンポーネントから継承するため、この項目はこのコンポーネントの WSDL で定義されません。作成時、更新時、または削除時に指定する必要があります。コールにおけるこの項目の例を確認するには、create()を参照してください。

layoutAssignments ProfileLayoutAssignments[] このプロファイルで使用するレイアウトを示します。
loginHours ProfileLoginHours[] このプロファイルを持つユーザがログインできる時間を示します。指定されていない場合、ユーザのログイン時間はプロファイルによって制限されません。

この項目は、API バージョン 25.0 以降で使用できます。

loginIpRanges ProfileLoginIpRange[] 特定のプロファイルを持つユーザがログインできる IP アドレスの範囲のリスト。

この項目は、API バージョン 17.0 以降で使用できます。

objectPermissions ProfileObjectPermissions[] このプロファイルに割り当てられているユーザがアクセスできるオブジェクト、および使用可能なアクセス権の種類 (作成、参照、編集、削除など) を示します。API バージョン 28.0 以降、この項目は allowReadtrue の場合にのみ取得されます。
pageAccesses ProfileApexPageAccess[] このプロファイルに割り当てられているユーザが実行できる Visualforce ページを示します。
profileActionOverrides ProfileActionOverride[] このプロファイルに割り当てられている Lightning Experience ホームページのアクション上書きのリスト。ユーザがプロファイルでログインすると、一致する ProfileActionOverride の割り当てが、ActionOverride で指定された [ホーム] タブの既存の上書きよりも優先されます。

この項目は、API バージョン 37.0 以降で使用できます。

recordTypeVisibilities ProfileRecordTypeVisibility[] このプロファイルに割り当てられているユーザのレコードタイプの表示設定を示します。API バージョン 29.0 以降では、無効なレコードタイプの場合、この項目は取得またはリリースされません。
tabVisibilities ProfileTabVisibility[] このプロファイルに割り当てられているユーザに表示されるレコードタイプ、および表示されるアプリケーション内のタブを示します。
userLicense string プロファイルの[ユーザライセンス]。ユーザライセンスによって、ユーザがアクセスできる機能の基準が決まります。各ユーザには必ず 1 つのユーザライセンスが割り当てられます。

この項目は、API バージョン 17.0 以降で使用できます。

userPermissions ProfileUserPermission[] ユーザ権限 (「API の有効化」など) を指定します。また、このプロファイルでその権限が有効化されているかどうかも指定します。この項目は、有効なユーザ権限のみを取得します。API バージョン 29.0 以降で使用できます。

ProfileActionOverride

ProfileActionOverride は、Lightning Experience にある標準 [ホーム] タブの ActionOverride のユーザプロファイルベースの上書きを表します。

Lightning ページが package.xml で参照されていなければ、ProfileActionOverride 設定は .profile ファイルで取得されません。

メモ

項目名 データ型 説明
actionName string 必須。使用できる値は、上書きできるアクションと同じです。
  • accept
  • clone
  • delete
  • edit
  • list
  • new
  • tab
  • view
content string flexipagelightningcomponentscontrol、または visualforcetype が設定されている場合は、この項目を設定します。override として使用する Lightning ページ、Lightning コンポーネント、Sコントロールまたは、Visualforce ページの名前を参照します。インストールされたコンポーネントを参照するには、Component_namespace__Component_name の形式を使用します。
formFactor FormFactor (string 型の列挙) 上書きするページのサイズ。

Large 値は Lightning Experience デスクトップ環境を表し、flexipage 型と lightningcomponent 型でのみ有効です。Small 値は、電話またはタブレットの Salesforce モバイルアプリケーションを表します。Medium 値は、将来の使用のために予約されています。

pageOrSobjectType string 上書きする sObject 型の名前。有効な値は、standard および custom です。
recordType string ProfileActionOverride に割り当てられるレコードタイプ。PageOrSobjectTypestandard-home の場合、この項目は null になります。
type ActionOverrideType(string 型の列挙) 必須。override アクションの種別を表します。有効な値は、「ActionOverrideType」 に記述されています。

ProfileApplicationVisibility

ProfileApplicationVisibility はこのプロファイルに割り当てられているユーザにアプリケーションが表示されるかどうかを決定します。

項目名 データ型 説明
application string 必須。アプリケーションの名前。
default boolean 必須。アプリケーションがデフォルトのアプリケーションであるか (true)、否か (false) を示します。プロファイルごとに 1 つのアプリケーションのみを true に設定できます。
visible boolean 必須。このプロファイルに割り当てられているユーザにこのアプリケーションが表示されるか (true)、否か (false) を示します。

ProfileApexClassAccess

ProfileApexClassAccess は、このプロファイルに割り当てられているユーザが実行できるメソッドを持つ最上位の Apex クラスを決定します。

項目名 データ型 説明
apexClass string 必須。Apex クラス名。
enabled boolean 必須。このプロファイルに割り当てられているユーザが最上位クラスのメソッドを実行できるか (true)、否か (false) を示します。

ProfileCustomPermissions

ProfileCustomPermissions はプロファイルに割り当てられているユーザのカスタムアクセス権限を表します。取得できるのは有効なカスタム権限のみです。

項目名 データ型 説明
enabled boolean 必須。カスタム権限が有効化されているか (true)、否か (false) を示します。
name string 必須。カスタム権限名。

ProfileExternalDataSourceAccess

ProfileExternalDataSourceAccess は、ID 種別が [ユーザ] のユーザのデータソースアクセスを表します。API バージョン 27.0 以降で利用できます。

項目名 データ型 説明
enabled boolean 必須。データソースが有効化されているか (true)、否か (false) を示します。
externalDataSource string 外部データソースの名前。

ProfileFieldLevelSecurity

ProfileFieldLevelSecurity は、プロファイルに割り当てられているユーザの項目レベルセキュリティを表します。API バージョン 30.0 以降では、必須項目の権限の取得やリリースはできません。

項目名 データ型 説明
editable boolean 必須。この項目が編集可能か (true)、否か (false) を示します。

API バージョン 30.0 以降、新しいカスタム項目をリリースするとき、この項目はデフォルトで false になります。

field string 必須。項目の名前を示します。
hidden boolean この項目が非表示であるか (true)、否か (false) を示します。この項目は、API バージョン 22.0 以前で使用できます。

ポータルプロファイルの場合、この項目は API バージョン 19.0 以降ではデフォルトで true に設定されています。

readable boolean この項目が参照可能か (true)、否か (false) を示します。この項目は、API バージョン 23.0 以降で使用できます。これは、hidden 項目の代わりに使用されます。

API バージョン 30.0 以降、新しいカスタム項目をリリースするとき、この項目はデフォルトで false になります。

ポータルプロファイルの場合、これの項目はデフォルトで false に設定されています。

ProfileLayoutAssignments

ProfileLayoutAssignments はプロファイルおよび特定のエンティティで使用するレイアウトを決定します。

項目名 データ型 説明
layout string 必須。この特定のエンティティのレイアウトを示します。
recordType string この項目は省略可能です。レコードの recordType がレイアウトの割り当てルールに一致する場合、指定されているレイアウトを使用します。

ProfileLoginHours

ProfileLoginHours は、特定のプロファイルを持つユーザがログインできる期間を制限します。

項目名 データ型 説明
weekdayStart string このプロファイルを持つユーザがログインできる曜日の開始時刻を指定します。特定の曜日の開始時刻が指定されている場合、その曜日の終了時刻も指定する必要があります。特定の曜日の Start を End より大きな値に設定することはできません。
  • weekday の有効な値は、mondaytuesdaywednesdaythursdayfridaysaturday、または sunday です。たとえば、mondayStart は、月曜日のログイン期間の開始を示します。
  • Start に使用できる値は、午前 0 時からの分数です。60 (1 時間) で割り切れる値である必要があります。たとえば、300 は、午前 5 時です。
weekdayEnd string このプロファイルを持つユーザがログアウトする必要のある曜日の時刻を指定します。
  • weekday の有効な値は、mondaytuesdaywednesdaythursdayfridaysaturday、または sunday です。たとえば、mondayEnd は、月曜日のログイン期間の終了時刻を指定します。
  • End に使用できる値は、午前 0 時からの分数です。60 (1 時間) で割り切れる値である必要があります。たとえば、1020 は、午後 5 時です。

プロファイルから以前に設定されたログイン時間帯の制限を削除するには、開始時刻または終了時刻を含まない、空の loginHours タグを明示的に含める必要があります。

ProfileLoginIpRange

ProfileLoginIpRange IP は、特定のプロファイルを持つユーザがログインできる IP アドレスの範囲を定義します。

項目名 データ型 説明
description string この項目は、この範囲に対応するネットワークの部分など、範囲の目的を識別するために使用します。この項目は、API バージョン 31.0 以降で使用できます。
endAddress string 必須。範囲の最後の IP アドレス。
startAddress string 必須。範囲の最初の IP アドレス。

ProfileObjectPermissions

ProfileObjectPermissions は、オブジェクトへのユーザのアクセス権を表します。

API バージョン 18.0 以降では、「すべてのデータの参照」または「すべてのデータの編集」が無効化されているすべてのプロファイルの新しいカスタムオブジェクトで、これらの権限は無効化されています。

メモ

項目名 データ型 説明
allowCreate boolean このプロファイルに割り当てられているユーザが object 項目で参照されているオブジェクトを作成できるか (true)、否か (false) を示します。

この項目は、バージョン 14.0 より前のバージョンでは revokeCreate という名前でロジックが逆でした。バージョン間での項目名の変更および true から false への更新およびその逆の処理も自動的に処理されます。そのため、既存の XML コンポーネントファイルを手動で編集する必要は一切ありません。

allowDelete boolean このプロファイルに割り当てられているユーザが object 項目で参照されているオブジェクトを削除できるか (true)、否か (false) を示します。

この項目は、バージョン 14.0 より前のバージョンでは revokeDelete という名前でロジックが逆でした。バージョン間での項目名の変更および true から false への更新およびその逆の処理も自動的に処理されます。そのため、既存の XML コンポーネントファイルを手動で編集する必要は一切ありません。

allowEdit boolean このプロファイルに割り当てられているユーザが object 項目で参照されているオブジェクトを編集できるか (true)、否か (false) を示します。

この項目は、バージョン 14.0 より前のバージョンでは revokeEdit という名前でロジックが逆でした。バージョン間での項目名の変更および true から false への更新およびその逆の処理も自動的に処理されます。そのため、既存の XML コンポーネントファイルを手動で編集する必要は一切ありません。

allowRead boolean このプロファイルに割り当てられているユーザが object 項目で参照されているオブジェクトを表示できるか (true)、否か (false) を示します。

この項目は、バージョン 14.0 より前のバージョンでは revokeRead という名前でロジックが逆でした。バージョン間での項目名の変更および true から false への更新およびその逆の処理も自動的に処理されます。そのため、既存の XML コンポーネントファイルを手動で編集する必要は一切ありません。

modifyAllRecords boolean オブジェクトの共有設定に関係なく、このプロファイルに割り当てられているユーザが object 項目で参照されているオブジェクトを参照、編集、または削除できるか (true)、否か (false) を示します。これは、個別のオブジェクトレベルに限定されている「すべてのデータの編集」ユーザ権限と同じです。これは、API バージョン 15.0 の新項目です。

この項目はすべてのオブジェクトで利用できるわけではありません。これらの権限を現在サポートしているオブジェクトを確認するには、ユーザインターフェースのプロファイルを参照してください。「すべてのデータの編集」を持つプロファイルは、メタデータ API の modifyAllRecords エントリを無視するため、プロファイルで「すべてのデータの編集」が有効化されている場合はエラーを返しません。

メモ

object string 必須。MyCustomObject__c など、このプロファイルで権限が変更されるオブジェクトの名前。
viewAllRecords boolean オブジェクトの共有設定に関係なく、このプロファイルに割り当てられているユーザが object 項目で参照されているオブジェクトを参照できるか (true)、否か (false) を示します。これには非公開レコード (親オブジェクトを持たないレコード) を含みます。これは、個別のオブジェクトレベルに限定されている「すべてのデータの参照」ユーザ権限と同じです。これは、API バージョン 15.0 の新項目です。

この項目はすべてのオブジェクトで利用できるわけではありません。これらの権限を現在サポートしているオブジェクトを確認するには、ユーザインターフェースのプロファイルを参照してください。「すべてのデータの参照」を持つプロファイルは、メタデータ API の viewAllRecords エントリを無視するため、プロファイルで「すべてのデータの参照」が有効化されている場合はエラーを返しません。

メモ

ProfileApexPageAccess

ProfileApexPageAccess では、このプロファイルに割り当てられているユーザが実行できる Visualforce ページを決定します。

項目名 データ型 説明
apexPage string 必須。Visualforce ページ名。
enabled boolean 必須。このプロファイルに割り当てられているユーザが Visualforce ページを実行できるか (true)、否か (false) を示します。

ProfileRecordTypeVisibility

ProfileRecordTypeVisibility は、このプロファイルのレコードタイプの表示設定を表します。レコードタイプを使用すると、さまざまなビジネスプロセス、選択リストの値、およびページレイアウトを、さまざまなユーザに提供できます。

項目名 データ型 説明
default boolean 必須。レコードタイプがこのプロファイルとオブジェクトのペアのデフォルトであるか (true)、否か (false) を示します。オブジェクトあたりに許可されるデフォルトは 1 つのみです。
personAccountDefault boolean レコードタイプがこのプロファイルとオブジェクトのペアのデフォルトの個人取引先レコードタイプであるか (true)、否か (false) を示します。オブジェクトあたりに許可される個人取引先レコードタイプのデフォルトは 1 つのみです。この項目は、取引先または取引先責任者オブジェクトのレコードタイプにのみ関連します。

個人取引先についての詳細は、Salesforce オンラインヘルプの「個人取引先」を参照してください。個人取引先は、Salesforce ではデフォルトで無効になっています。個人取引先を要求するには、Salesforce にお問い合わせください。

recordType string 必須。Account.MyRecordType などのレコードタイプ名。
visible boolean 必須。このレコードタイプがこのプロファイルに割り当てられているユーザに表示されるか (true)、否か (false) を示します。

ProfileTabVisibility

ProfileTabVisibility はこのプロファイルのタブの表示設定を表します。バージョン 17.0 以降では、ProfileTabVisibility は標準オブジェクトのタブの表示設定をサポートしています。マニフェストファイルには、プロファイルのタブの表示設定を取得するための標準タブに対応する標準オブジェクトを含める必要があります。

項目名 データ型 説明
tab string 必須。タブの名前。
visibility TabVisibility (string 型の列挙) 必須。タブの表示設定を示します。有効な値は、次のとおりです。
  • DefaultOff — このタブは [すべてのタブ] ページで利用できます。ユーザは、どのアプリケーションでもタブが表示されるように表示を個別にカスタマイズできます。
  • DefaultOn — タブは [すべてのタブ] ページで利用でき、関連付けられているアプリケーションの表示タブに表示されます。ユーザは、個別に表示をカスタマイズすることが可能で、あるアプリケーションではタブを非表示にしてその他のアプリケーションでは表示するといったことができます。
  • Hidden — このタブは [すべてのタブ] ページでは利用できず、どのアプリケーションにも表示されません。

バージョン 36.0 以前では、Hiddenvisibility が API を使用して設定された場合にのみ返されました。Salesforce でプロファイルから Hidden に設定されていると、API は表示値を返しません。バージョン 37.0 以降では、タブ表示が非表示に設定されていると、値がどう設定されたかに関係なく、API は Hidden を返します。

メモ

ProfileUserPermission

ProfileUserPermission は、プロファイルのアプリケーション権限またはシステム権限を表します。権限ごとにこれらの要素の 1 つを使用します。

項目 データ型 説明
enabled boolean 必須。権限が有効化されるか (true)、無効化されるか (false) を示します。
name string 必須。権限名。

Java のサンプル

次のサンプルは、選択リスト、プロファイル、レコードタイプ、およびカスタムアプリケーションを使用します。

1public void profileSample() {
2  try {
3    // Create an expense report record, tab and app...
4    CustomObject expenseRecord = new CustomObject();
5    expenseRecord.setFullName("ExpenseReport__c");
6    expenseRecord.setLabel("Expense Report");
7    expenseRecord.setPluralLabel("Expense Reports");
8    
9    expenseRecord.setDeploymentStatus(DeploymentStatus.Deployed);
10    expenseRecord.setSharingModel(SharingModel.ReadWrite);
11    
12    CustomField nameField = new CustomField();
13    nameField.setType(FieldType.AutoNumber);
14    nameField.setLabel("Expense Report Number");
15    nameField.setDisplayFormat("ER-{0000}");
16    expenseRecord.setNameField(nameField);
17    
18    AsyncResult[] arsExpenseRecord =
19        metadataConnection.create(new Metadata[] {expenseRecord});
20    
21    Picklist expenseStatus = new Picklist();
22    PicklistValue unsubmitted = new PicklistValue();
23    unsubmitted.setFullName("Unsubmitted");
24    PicklistValue submitted = new PicklistValue();
25    submitted.setFullName("Submitted");
26    PicklistValue approved = new PicklistValue();
27    approved.setFullName("Approved");
28    PicklistValue rejected = new PicklistValue();
29    rejected.setFullName("Rejected");
30    expenseStatus.setPicklistValues(new PicklistValue[] {
31        unsubmitted, submitted, approved, rejected}
32    );
33    
34    CustomField expenseStatusField = new CustomField();
35    expenseStatusField.setFullName(
36        "ExpenseReport__c.ExpenseStatus__c"
37    );
38    expenseStatusField.setLabel("Expense Report Status");
39    expenseStatusField.setType(FieldType.Picklist);
40    expenseStatusField.setPicklist(expenseStatus);
41    AsyncResult[] arsStatusField =
42        metadataConnection.create(new Metadata[] 
43            {expenseStatusField});
44    
45    CustomTab expenseTab = new CustomTab();
46    expenseTab.setFullName("ExpenseReport__c");
47    expenseTab.setMotif("Custom70: Handsaw");
48    expenseTab.setCustomObject(true);
49    AsyncResult[] arsTab =
50        metadataConnection.create(new Metadata[] {expenseTab});
51    
52    CustomApplication application = new CustomApplication();
53    application.setFullName("ExpenseForce");
54    application.setTab(new String[] {expenseTab.getFullName()});
55    AsyncResult[] arsApp =
56        metadataConnection.create(new Metadata[] {application});
57    
58    // Employees and managers have the same app visibility...
59    ProfileApplicationVisibility appVisibility =
60        new ProfileApplicationVisibility();
61    appVisibility.setApplication("ExpenseForce");
62    appVisibility.setVisible(true);
63    
64    Profile employee = new Profile(); 
65    employee.setFullName("Employee");
66    employee.setApplicationVisibilities(
67        new ProfileApplicationVisibility[] {appVisibility}
68    );
69    AsyncResult[] arsProfileEmp =
70    metadataConnection.create(new Metadata[] {employee});
71    
72    Profile manager = new Profile();
73    manager.setFullName("Manager");
74    manager.setApplicationVisibilities(
75        new ProfileApplicationVisibility[] {appVisibility}
76    );
77    AsyncResult[] arsProfileMgr =
78        metadataConnection.create(new Metadata[] {manager});
79    
80    // But employees and managers have different access
81    // to the state of the expense sheet
82    RecordType edit = new RecordType();
83    edit.setFullName("ExpenseReport__c.Edit");
84    RecordTypePicklistValue editStatuses =
85        new RecordTypePicklistValue();
86    editStatuses.setPicklist("ExpenseStatus__c");
87    editStatuses.setValues(new PicklistValue[] 
88        {unsubmitted, submitted});
89    edit.setPicklistValues(new RecordTypePicklistValue[] 
90        {editStatuses});
91    AsyncResult[] arsRecTypeEdit =
92        metadataConnection.create(new Metadata[] {edit});
93    
94    RecordType approve = new RecordType();
95    approve.setFullName("ExpenseReport__c.Approve");
96    RecordTypePicklistValue approveStatuses =
97        new RecordTypePicklistValue();
98    approveStatuses.setPicklist("ExpenseStatus__c");
99    approveStatuses.setValues(new PicklistValue[] 
100        {approved, rejected});
101    approve.setPicklistValues(new RecordTypePicklistValue[]
102        {approveStatuses});
103    AsyncResult[] arsRecTypeApp =
104        metadataConnection.create(new Metadata[] {approve});
105  } catch (ConnectionException ce) {
106    ce.printStackTrace();
107  }
108}

宣言的なメタデータの定義のサンプル

カスタムアプリケーション、カスタムオブジェクト、レコードタイプ、タブ、およびユーザ権限を持つ組織のプロファイルの定義を次に示します。

1<?xml version="1.0" encoding="UTF-8"?>
2<Profile xmlns="http://soap.sforce.com/2006/04/metadata">
3    <applicationVisibilities>
4        <application>PubApps__Myriad_Publishing</application>
5        <default>false</default>
6        <visible>true</visible>
7    </applicationVisibilities>
8    <custom>true</custom>
9    <objectPermissions>
10        <object>TestWeblinks__c</object>
11    </objectPermissions>
12    <recordTypeVisibilities>
13        <default>true</default>
14        <recordType>TestWeblinks__c.My First Recordtype</recordType>
15        <visible>true</visible>
16    </recordTypeVisibilities>
17    <tabVisibilities>
18        <tab>Myriad Publications</tab>
19        <visibility>DefaultOn</visibility>
20    </tabVisibilities>
21    <userPermissions>
22        <enabled>true</enabled>
23        <name>APIEnabled</name>
24    </userpermissions>
25</Profile>

使用方法

retrieve() コールを使用して組織内のプロファイルに関する情報を取得する場合、返される .profile ファイルには retrieve 要求で参照されるその他のメタデータ型のセキュリティ設定のみが含まれます (常に取得されるユーザ権限、IP アドレス範囲、およびログイン時間は除く)。たとえば、次の package.xml ファイルにはすべてのカスタムオブジェクトに一致する types 要素が含まれています。そのため、返されたプロファイルには組織のすべてのカスタムオブジェクトのオブジェクトおよび項目権限が含まれますが、Account などの標準オブジェクト、および標準項目の権限は含まれません。

1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3    <types>
4        <members>*</members>
5        <name>CustomObject</name>
6    </types>
7   <types>
8        <members>*</members>
9        <name>Profile</name>
10    </types>
11    <version>43.0</version>
12</Package>

CustomObject のワイルドカード「*」は標準オブジェクトに一致しません。これは、意図しない大きな影響を及ぼすプロファイルの変更を避けるうえで役立ちます。Developer Edition 組織のいくつかのカスタムオブジェクトを作成し、その情報を retrieve() (取得) し、次にカスタムオブジェクトを本番組織に deploy() (リリース) する場合、Account などのすべての標準オブジェクトのプロファイルおよび項目レベルのセキュリティ、および標準項目は、標準オブジェクトまたは項目の個別の types 要素を明示的に作成しない限り上書きされません。

メタデータ API では、予期しないプロファイルの変更を回避するため、retrieve() コールに標準項目を含めることが意図的に困難になっています。ただし、Account などの標準オブジェクトのカスタム項目と標準項目のプロファイル権限を取得およびリリースすることはできます。

次の package.xml ファイルでは、Account 標準項目とカスタム項目のプロファイル権限を返すことができます。CustomObject 型のメンバーとして標準の Account オブジェクトを指定することにより、types 要素内でこのオブジェクトがどのように定義されるかに注目してください。

1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3    <types>
4        <members>Account</members>
5        <name>CustomObject</name>
6    </types>
7   <types>
8        <members>*</members>
9        <name>Profile</name>
10    </types>
11    <version>43.0</version>
12</Package>

最後の package.xml ファイルでは、Account オブジェクトの MyCustomField__c カスタム項目のプロファイル権限を返すことができます。

1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3   <types>
4        <members>Account.MyCustomField__c</members>
5        <name>CustomField</name>
6   </types>
7   <types>
8        <members>*</members>
9        <name>Profile</name>
10   </types>
11   <version>43.0</version>
12</Package>