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

Profile

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

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

API バージョン 50.0 以降、[プロファイルの絞り込み] 設定が有効になっている場合に、適切な権限を持つユーザのみが自分以外のプロファイル名を参照できます。

以下の作業を行う権限を持つユーザがこれらのアクションを実行した場合にもプロファイル名が表示されます。

  • プロファイルへのタブやレコードタイプの割り当てを含むウィザードステップでのタブまたはレコードタイプの作成作業。
  • フローの関連付けを行うためにプロファイルリストの表示が必要となる、ログインフローの設定作業。
  • 割り当て可能なプロファイルを特定するためにプロファイルの参照が必要となる、代理管理者の設定作業。
  • 代理の顧客システム管理者としての組織の管理作業。
  • 代理グループのプロファイルを表示して割り当てるための、代理管理者としての組織の管理作業。

重要

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

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

バージョン

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

特別なアクセスルール

Summer ’20 以降、カスタマーポータルおよびパートナーポータルのユーザはこのタイプにアクセスできなくなります。

指定されたプロファイル内の標準オブジェクトとカスタムオブジェクトの次の設定、割り当て、および権限を表示するには、「設定・定義を参照する」権限が必要です。
  • クライアント設定
  • 項目権限
  • レイアウトの割り当て
  • オブジェクト権限
  • 権限の連動関係
  • 権限セットのタブ設定
  • 権限セットグループのコンポーネント
  • レコードのタイプ

項目

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

プロファイルメタデータのリリースは、対象組織の既存のプロファイル設定を上書きするように設計されています。たとえば、プロファイルの権限を無効にした場合、新たに無効化された権限情報はエクスポートされません。メタデータを使用してすべてのプロファイルの変更 (権限の無効化を含む) を強制的にリリースするには、無効化された権限を明示的に示すコードを追加します。たとえば、対象組織にリリースする前に、プロファイルメタデータ .xml ファイルに <value>false</value> コードを追加します。

重要

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

メモ

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

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

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

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

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

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

objectPermissions ProfileObjectPermissions[] このプロファイルに割り当てられているユーザがアクセスできるオブジェクト、および使用可能なアクセス権の種類 (作成、参照、編集、削除など) を示します。API バージョン 28.0 以降、この項目は allowReadtrue の場合にのみ取得されます。

API バージョン 50.0 以降では、標準プロファイルの標準オブジェクトの編集は無効です。

メモ

pageAccesses ProfileApexPageAccess[] このプロファイルに割り当てられているユーザが実行できる Visualforce ページを示します。
profileActionOverrides ProfileActionOverride[] このプロファイルに割り当てられている Lightning Experience ホームページのアクション上書きのリスト。ユーザがプロファイルでログインすると、一致する ProfileActionOverride の割り当てが、ActionOverride で指定された [ホーム] タブの既存の上書きよりも優先されます。

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

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

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

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

LoginFlow

LoginFlow は Salesforce にアクセスする前に実行するようユーザに指示するビジネスプロセスを表します。ログインフローを追加したり、編集したりするには、メタデータ API を使用します。ログインフローを削除するには、ログインフローページを使用します。

項目名 項目の型 説明
flow string uiLoginFlowType が VisualWorkflow の場合にのみ必須。フローの名前。
flowtype LoginFlowType (string 型の列挙) 必須。値は UI です。
friendlyname string 必須。LoginFlow の名前。
uiLoginFlowType UiLoginFlowType (string 型の列挙) 必須。LoginFlow 種別。有効な値は、VisualWorkflow または VisualForce です。
useLightningRuntime boolean Lightning ランタイムが使用されているか (true)、否か (false (デフォルト)) を示します。uiLoginFlowType が VisualWorkflow の場合にのみ使用します。
vfFlowPage string uiLoginFlowType が VisualForce の場合にのみ必須。VisualForce ページの名前。
vfFlowPageTitle string uiLoginFlowType が VisualForce の場合にのみ必須。VisualForce ページの名前。

ProfileActionOverride

ProfileActionOverride は、Lightning Experience にある標準 [ホーム] タブの ActionOverride のユーザプロファイルベースの上書きを表します。
  • ProfileActionOverride は API バージョン 39.0 から 44.0 の Profile でのみ定義できます。API バージョン 45.0 以降では、代わりに CustomApplication について ProfileActionOverride を定義する必要があります。API バージョン 45.0 以降では、より詳細なホームページの割り当てがサポートされるように、ユーザプロファイルに関連するホームページの割り当てには、対応するアプリケーションの割り当ても含める必要があります。そのため、ProfileActionOverride は、Profile ではなく CustomApplication で定義されます。
  • 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 値は、将来の使用のために予約されています。null 値 (値を指定しないのと同じ) は Salesforce Classic を表します。

pageOrSobjectType string 上書きする sObject 型の名前。有効な値は、standard および custom です。

actionName が tab の場合、この値は standard-home である必要があります。

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) を示します。

ProfileCategoryGroupVisibility

ProfileCategoryGroupVisibility はこのプロファイルに割り当てられているユーザにデータカテゴリグループが表示されるかどうかを決定します。API バージョン 41.0 以降で利用できます。

項目名 項目の型 説明
dataCategories string[] 1 つ以上のデータカテゴリ名の配列。
dataCategoryGroup string 必須。データカテゴリグループの名前。
visibility CategoryGroupVisibility (string 型の列挙) 必須。データカテゴリの表示設定を示します。有効な値は、次のとおりです。
  • ALL
  • CUSTOM
  • NONE

ProfileCustomMetadataTypeAccess

ProfileCustomMetadataTypeAccess は、プロファイルに割り当てられているユーザのカスタムメタデータ型アクセスを表します。API バージョン 47.0 以降で利用できます。

項目 項目の型 説明
enabled boolean 必須。このカスタムメタデータ型のレコードが参照可能か (true)、否か (false) を示します。
name string 必須。カスタムメタデータ型名。

ProfileApexClassAccess

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

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

ProfileCustomPermissions

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

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

ProfileCustomSettingAccesses

ProfileCustomSettingAccesses はプロファイルに割り当てられているユーザのカスタム設定を表します。API バージョン 47.0 以降で利用できます。

項目 項目の型 説明
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 に設定されています。

ProfileFlowAccess

ProfileFlowAccess は、プロファイルでアクセス権が付与されるフローを表します。API バージョン 47.0 以降で利用できます。

項目 項目の型 説明
enabled boolean 必須。このプロファイルを割り当てられているユーザがフローにアクセスできるか (true)、否か (false) を示します。デフォルト値は false です。
flow string 必須。アクセス権が付与されているフローの名前。

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

使用方法

カスタムプロファイルを作成するには、プロファイルメタデ��タ型で deploy() コールを使用するのではなく、プロファイル SOAP API オブジェクトを使用することをお勧めします。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>53.0</version>
12</Package>

CustomObject のワイルドカード「*」は標準オブジェクトに一致しません。このワイルドカード動作は、意図しない大きな影響を及ぼすプロファイルの変更を避けるうえで役立ちます。Developer Edition 組織でいくつかのカスタムオブジェクトを作成し、その情報を retrieve() (取得) し、後でカスタムオブジェクトを本番組織に deploy() (リリース) する場合、すべての標準オブジェクトおよび標準項目のプロファイルおよび項目レベルのセキュリティは、上書きされません。これらの標準オブジェクトおよび標準項目を上書きできるのは、それらのオブジェクトまたは項目の個々の 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>53.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>53.0</version>
12</Package>

マニフェストファイル内のワイルドカードのサポート

このメタデータ型では、package.xml マニフェストファイル内のワイルドカード文字 * (アスタリスク) がサポートされます。マニフェストファイルの使用についての詳細は、「zip ファイルを使用したメタデータのリリースと取得」を参照してください。