ワークフローを使用してMS Dynamics CRMでレコードを共有する方法
-
10-07-2019 - |
質問
次のことを行いたい:
営業担当者がカスタムエンティティをMS CRM 4.0の商談に割り当てる(「Primary Expertise」と呼びましょう)と、システムは関連する「Primary Expertise」の所有者として定義されているユーザーと商談を共有します記録します。
ワークフローを介して自動的に実行したいのですが、それを実現するワークフローステップが見つかりません。はい、いくつかのフォーラムで、.NETアセンブリを介してのみ実際にはまだ可能ではないことを読みました。
経験、誰か?
解決
正しい、それは.NETアセンブリを介してのみ可能です。ただし、(CRM 4を使用している場合)ワークフローで所有者をアクティビティの所有者に変更し、以前の所有者との共有オプションを使用して、古い所有者がカスタムエンティティにアクセスできるようにしますか?
他のヒント
これを試してください:
カスタムワークフローアクティビティを呼び出すことによってのみ可能です。カスタムワークフローアクティビティ内で、構成することにより GrantAccessRequestおよびGrantAccessResponse を呼び出すことができます。 PrincipalAccess オブジェクト
こちらを参照してください" オブジェクトの共有"詳細セクション。
カスタムプラグインを使用する場合、コードは次のようになります。
var rights = AccessRights.ReadAccess | AccessRights.WriteAccess;
var principalAccess = new PrincipalAccess
{
// Gives the principal read write access
AccessMask = rights,
// Set the PrincipalAccess Object's Properties
Principal = sharingTarget.Key
};
// Create the Request Object
var grantAcessRequest = new GrantAccessRequest();
// Set the Request Object's properties
grantAcessRequest.PrincipalAccess = principalAccess;
// Set the Target. In my case it is account record
var entityReference = new EntityReference(localContext.PluginExecutionContext.PrimaryEntityName,
localContext.PluginExecutionContext.PrimaryEntityId);
//throw new InvalidPluginExecutionException("EntityReference");
grantAcessRequest.Target = entityReference;
// Execute the Request
localContext.OrganizationService.Execute(grantAcessRequest);
所属していません StackOverflow