上下文
我可以使用ExecuteWorkflowRequest成功调用Actions,其中被调用的操作没有参数:
var request = new ExecuteWorkflowRequest
{
EntityId = myEntityId,
WorkflowId = myWorkFlowId,
};
service.Execute(request);
其中action是一个简单的工作流程,类别为“Action”。 但是我不能用参数调用Actions。
到目前为止我尝试了什么:
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);
调用的Workflow是一个Category:Action,带有一个名为“MyParameterName”的可选字符串类型输入参数
此调用导致异常说:
此工作流无法运行,因为父工作流提供的参数与链接子工作流中的指定参数不匹配。
我也试过...... 有些地方建议(没有证明)旧版CRM版本使用请求本身的参数集合......虽然它看起来很丑陋和/或错误,但我给了它一个拍摄,没有成功:
request.Parameters.Add("MyParameter", myParameter);
以
返回无法识别的请求参数:MyParameter
问题
如何使用ExecuteWorkflowRequest调用我的参数化Action提供参数?
答案 0 :(得分:3)
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"
是操作的逻辑名称。