サポートされているコール
create()、delete()、describeSObjects()、query()、retrieve()、update()、upsert()
特別なアクセスルール
Summer ’20 以降、このオブジェクトにアクセスできるのは、Account オブジェクトへのアクセス権を持つユーザのみとなります。
特別なアクセスルール
カスタマーポータルユーザはこのオブジェクトにアクセスできません。
項目
一部の項目で使用可能なプロパティは、組織でデフォルトとなっている共有設定によって異なります。一覧表示されているプロパティは、それらの項目のデフォルト設定の場合に該当します。
| AccountAccessLevel |
- 型
- picklist
- プロパティ
- Create、Defaulted on create、Filter、Group、Restricted picklist、Sort、Update
- 説明
- Account に対して割り当てる User または Group のアクセスのレベル。値は次のとおりです。
- Read
- Edit
-
All (この値は、create コールまたは update コールには使用できません)。
この項目は、少なくとも組織のデフォルトである Account のアクセスレベルと同等のアクセスレベルに設定する必要があります。また、この項目、OpportunityAccessLevel 項目、CaseAccessLevel 項目のいずれかを、組織のデフォルトのアクセスレベルより高いレベルに設定する必要があります。
|
| AccountId |
- 型
- reference
- プロパティ
- Create、Filter、Group、Sort
- 説明
- この共有エントリに関連付けられた Account の ID。この項目は更新できません。
|
| CaseAccessLevel |
- 型
- picklist
- プロパティ
- Create、Defaulted on create、Filter、Group、Restricted picklist、Sort、Update
- 説明
- 取引先に関連するケースに対して割り当てる User または Group のアクセスのレベル。値は次のとおりです。
この項目は、少なくとも組織のデフォルトである CaseAccessLevel と同等のアクセスレベルに設定する必要があります。AccountAccessLevel 項目が「All」に設定されている場合、この項目を API を使用して更新することはできません。API を使用して、関連付けられている取引先所有者のこの項目を更新することはできません。Salesforce ユーザインターフェースを使用して、取引先所有者の CaseAccessLevel を更新する必要があります。
|
| ContactAccessLevel |
- 型
- picklist
- プロパティ
- Filter、Group、Nillable、Restricted picklist、Sort
- 説明
- 取引先に関連する取引先責任者に対して持つ User または Group のアクセスのレベル。値は次のとおりです。
この項目は、少なくとも組織のデフォルトである ContactAccessLevel と同等のアクセスレベルに設定する必要があります。ContactAccessLevel 項目が「Controlled by Parent」に設定されている場合、この項目を API を使用して更新することはできません。API を使用して、関連付けられている取引先所有者のこの項目を更新することはできません。Salesforce ユーザインターフェースを使用して、取引先所有者の ContactAccessLevel を更新する必要があります。
|
| OpportunityAccessLevel |
- 型
- picklist
- プロパティ
- Create、Defaulted on create、Filter、Group、Restricted picklist、Sort、Update
- 説明
- Account に関連する商談に対して割り当てる User または Group のアクセスのレベル。値は次のとおりです。
この項目は、少なくとも組織のデフォルトの商談のアクセス権のレベルと同等のアクセスレベルに設定する必要があります。AccountAccessLevel 項目が「All」に設定されている場合、この項目を API を使用して更新することはできません。API を使用して、関連付けられている Account 所有者のこの項目を更新することはできません。Salesforce ユーザインターフェースを使用して、Account 所有者の opportunityAccessLevel を更新する必要があります。
|
| RowCause |
- 型
- picklist
- プロパティ
- Create、Filter、Group、Nillable、Restricted picklist、Sort
- 説明
- 共有エントリが存在する理由。この項目に書き込めるのは、その値が省略されているか、Manual (デフォルト) に設定されている場合のみです。正しい組織の共有設定を使用して、API バージョン 32.0 以降でこの項目の値を作成できます。
- 使用できる値は次のとおりです。
-
Manual — 「All」のアクセス権を持つ User が手動で Account をユーザまたはグループと共有していたため、User または Group にアクセス権が割り当てられています。
-
Owner — User は、Account の所有者です。
-
Team— User または Group には、チームアクセス権があります (AccountTeamMember です)。
-
Rule— User または Group には、Account 共有ルールを介したアクセス権が割り当てられています。
-
GuestRule— ユーザまたはグループには、Account ゲストユーザ共有ルールを介したアクセス権が割り当てられています。
-
ImplicitParent — User または Group は取引先を所有しているか、取引先に関連するレコード (商談、ケース、取引先責任者、契約、注文など) への共有アクセス権を持っているため、アクセス権が割り当てられています。
-
GuestParentImplicit — ゲストユーザは、Account に関連するレコード (商談、ケース、取引先責任者、契約、注文など) へのアクセス権を持っているため、アクセス権が割り当てられています。
-
LpuParentImplicit — User には、Account に関連するレコードのうち、大規模コミュニティおよびポータルユーザが所有し、共有グループを介して共有されているレコードへのアクセス権があるため、アクセス権が割り当てられています。
-
LpuImplicit — User には、大規模コミュニティおよびポータルユーザが所有するレコードへの共有グループを介したアクセス権が割り当てられています。
-
PortalImplicit — Account はポータルユーザに関連付けられています。
-
ARImplicit — パートナー取引先またはカスタマー取引先に属する User には、取引先リレーションデータ共有ルールを介した Account へのアクセス権が割り当てられています。
-
Territory2AssociationManual — エンタープライズテリトリー管理 API バージョン 44.0 以前では、取引先をテリトリーに手動で割り当てたときに TerritoryManual 理由コードが AccountShare レコードに書き込まれていました。API バージョン 45.0 以降では、TerritoryManual のすべてのインスタンスが Territory2AssociationManual に置き換わり、取引先をテリトリーに手動で割り当てたときに Territory2AssociationManual 理由コードが AccountShare レコードに書き込まれます。
-
Territory — テリトリーには、テリトリー割り当てルールを介したアクセス権が割り当てられています。
-
TerritoryManual — API バージョン 45.0 以降では使用できなくなり、Territory2AssociationManual 値で置き換えられました。
|
| UserOrGroupId |
- 型
- reference
- プロパティ
- Create、Filter、Group、Sort
- 説明
- Account に対してアクセス権が割り当てられた User または Group の ID。この項目は更新できません。
|
使用方法
このオブジェクトを使用して、他のユーザが所有する Account レコードを参照および編集できるユーザやグループを指定できます。
既存のレコードに一致する AccountShare レコードを作成すると、要求は、変更された項目を更新し、既存のレコードを返します。
たとえば、次のコードは、ユーザが所有するすべての取引先を検索し、ポータルユーザに対してそれらの取引先の共有を直接設定します。
1QueryResult result = conn.query("SELECT Id FROM Account WHERE OwnerId = '005D0000001LPFB'");
2// Create a new AccountShare object
3List<AccountShare> shares = new ArrayList<AccountShare>();
4for (SObject rec : result.getRecords()) {
5 AccountShare share = new AccountShare();
6 share.setAccountId(rec.getId());
7 //Set the portal user Id to share the accounts with
8 share.setUserOrGroupId("003D000000QA8Tl");
9 share.setAccountAccessLevel("Edit");
10 share.setOpportunityAccessLevel("Read");
11 share.setCaseAccessLevel("Edit");
12 shares.add(share);
13}
14conn.create(shares.toArray(new AccountShare[shares.size()]));
このコードは、ある時点でユーザが所有する取引先を共有しますが、その後所有することになった取引先は共有しません。このような共有では、AccountOwnerSharingRule のような所有者ベースの共有ルールを使用します。
取引先が複数の方法でユーザと共有されている場合、複数の共有レコードが表示されない場合があります。次の 1 つ以上の RowCause 値によってユーザに取引先へのアクセス権がある場合、AccountShare オブジェクトのレコードはアクセスレベルが最も高い 1 レコードに圧縮されます。
- ImplicitParent
- Manual
- Owner