2017-10-23 7 views
0

特定のエンティティの共有アクセス権を取得する方法を探しています。RetrieveSharedPrincipalsAndAccessRequestのWeb APIの代替方法

ウェブAPI経由でこれを行う方法はありますか?

私はRetrieveSharedPrincipalsAndAccessRequestを認識していますが、残りのツールはWeb APIのみに依存していますので、組織サービスを完全に使用しないようにしたいと考えています。

答えて

2

この要求は、バージョン9.0で提供されています(ダイナミクス365 7月更新)

私はあなたが8.xのバージョンを使用していると信じています。そのような場合、これはそれほど簡単ではありません。単にカスタムアクションを作成します。 https://msdn.microsoft.com/en-us/library/dn481600.aspx

アクションが直接WebAPIのから呼び出され、このシナリオでは最も有用であるどのようなワークフロー、プラグインや、から使用することができます。 https://msdn.microsoft.com/en-us/library/mt607600.aspx

だから、例えば、あなたの呼び出しはそのようになります。 :

POST [Organization URI]/api/data/v8.2/new_RetrievePrincipalAccessAction HTTP/1.1 
Accept: application/json 
Content-Type: application/json; charset=utf-8 
OData-MaxVersion: 4.0 
OData-Version: 4.0 

{ 
"ObjectId": 3, 
"ObjectType": "account" 
} 

は今、あなたはプラグインを作成し、あなたの行動の後動作(アクションはあなたがプラグインを登録するために使用できるカスタムメッセージを生成する)に登録する必要があります。例えば:あなたのプラグインで https://community.dynamics.com/crm/b/magnetismsolutionscrmblog/archive/2017/09/18/how-to-trigger-plugins-on-custom-messages-using-actions-in-dynamics-365

、あなたはもちろん、標準IOrganizationService使用してRetrieveSharedPrincipalsAndAccessRequestを呼び出すことができますし、単に行動ののOutputParametersに結果を置きます。最も有用なのは、JSON文字列のようになります。

public void Execute(IServiceProvider serviceProvider) 
{ 
    var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext)); 
    //do the logic retrieve what you want 

    context.OutputParameters["result"] = someResultAsJsonString; 
} 

あなたのJS WEBAPIコールが

{ 
    result: someResultAsJsonString 
} 

を返します。そして、あなたはあなたのJSコードでこれであなたがやりたいことができます:)

+0

おかげで、私は確かにしています8.x APIを使用します。私のコードからアセンブリを使用し、RetrieveSharedPrincipalsAndAccessRequestを実行するだけで、あなたの提案はちょっとしたことに思えます。私はちょうど私が何かを明らかに欠けていたことを確認したかった – Paul

+0

はい、しかし、その場合、あなたが完全に頼んでいるWebAPIは、ここで私が推測したように(例えば、CRMのSDKを使用できない場合、何か)。私はこれをやっていないといくつかの仕事ができると思います。現在、プラグインを使ってCRMアクション内のロジックのほとんどを実行しています(ほとんどの場合、D365のどこからでもこのロジックを実行するのが簡単なので、簡単に)私のためのそのような操作は15分の問題の上になります。 –

+0

私たちはさまざまな視点を持っていますが、これは私が一般的なダイナミクスで作業する前の最初の(そして最も可能性の高い)最後のことです。しかし、他の読者にいくつかの内部を与えるかもしれません。 – Paul

関連する問題