質問

次のことを行いたい:

営業担当者がカスタムエンティティをMS CRM 4.0の商談に割り当てる(「Primary Expertise」と呼びましょう)と、システムは関連する「Primary Expertise」の所有者として定義されているユーザーと商談を共有します記録します。

ワークフローを介して自動的に実行したいのですが、それを実現するワークフローステップが見つかりません。はい、いくつかのフォーラムで、.NETアセンブリを介してのみ実際にはまだ可能ではないことを読みました。

経験、誰か?

役に立ちましたか?

解決

正しい、それは.NETアセンブリを介してのみ可能です。ただし、(CRM 4を使用している場合)ワークフローで所有者をアクティビティの所有者に変更し、以前の所有者との共有オプションを使用して、古い所有者がカスタムエンティティにアクセスできるようにしますか?

他のヒント

これを試してください:

http://crm40sharestep.codeplex.com

カスタムワークフローアクティビティを呼び出すことによってのみ可能です。カスタムワークフローアクティビティ内で、構成することにより 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);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top