2016-06-22 1 views
2

コンテキストDynamics CRM 2016でExecuteWorkflowRequestを使用してパラメータを使用してアクションを呼び出す方法は?

私は正常と呼ばれるアクションにはパラメータがありませんExecuteWorkflowRequest使用してアクションを呼び出すことができます。アクションはシンプルなワークフロー、カテゴリーと「アクション」です

var request = new ExecuteWorkflowRequest 
{ 
    EntityId = myEntityId, 
    WorkflowId = myWorkFlowId, 
}; 
service.Execute(request); 

を。 しかし、私はパラメータでアクションを呼び出すことはできません。

string myParameter = "Hello"; 
var inputArgumentCollection = new InputArgumentCollection(); 
inputArgumentCollection.Arguments.Add("MyParameterName", myParameter); 
var request = new ExecuteWorkflowRequest 
{ 
    EntityId = myEntityId, 
    WorkflowId = myWorkFlowId, 
    InputArguments = inputArgumentCollection 
}; 
service.Execute(request); 

と呼ばれるワークフローがカテゴリーである:この呼び出しは言って例外が発生する「MyParameterName」と呼ばれるオプションの文字列型の入力パラメータを持つアクション

私がこれまで試したどのような

私も試してみた

This workflow cannot run because arguments provided by parent workflow does not match with the specified parameters in linked child workflow.

...を:のいくつかの場所は、要求自体のParametersコレクションを使用して、古いCRMバージョン用(証拠を)お勧めします...それは醜いおよび/または間違っているようだが、私は成功しません、それを撮影しました:

request.Parameters.Add("MyParameter", myParameter); 

Unrecognized request parameter: MyParameter

質問による返品は

にはどうすれExecuteWorkflowRequestを使用してAPIを経由してパラメータを提供する私のパラメータ化アクションを呼び出すことができますか?

+0

私はあなたができるとは思わない...(2016年に特別に更新されていない限り):http://stackoverflow.com/questions/10978236/pass-a-parameter-to-a-crm-2011-workflow -via-the-api –

答えて

2

ExecuteWorkflowRequestは、まだ動作していない古いバージョンのDynamics CRMでワークフローを実行するように設計されたリクエストです。引数を渡すことはできません。

代わりにあなたが必要なパラメータを持つアクションを作成し、このようにそれを実行する必要があります。

var request = new OrganizationRequest("new_myaction") 
{ 
    // EntityReference to the target of the action (suggested custom parameter) 
    ["Target"] = myEntityId, 
    // Another custom parameter 
    ["MyParameterName"] = "Hello" 
}; 

service.Execute(request); 

ここ"new_myaction"は、アクションの論理名です。

+0

これは、CRM 2016 Online - '予期しないエラー:メンバをオーバーライドしている間に継承セキュリティルールが違反しました:'でエラーをスローします。 'Microsoft.Crm.CrmException.GetObjectData(System.Runtime.Serialization.SerializationInfo、System.Runtime.Serialization .StreamingContext) 'を返します。オーバーライドするメソッドのセキュリティアクセシビリティは、オーバーライドされるメソッドのセキュリティアクセシビリティと一致する必要があります。 –

+0

@ Dead.Rabit:シリアル化エラーのように見えます。アクションにはオブジェクトを渡すことはできません。 –

+0

何らかの理由で編集できませんでしたが、混乱を避けるために 'myEntityRef'に' myEntityId'を変更することもできます。 – vleong

関連する問題