如何在 Dynamics CRM 2016 中使用 ExecuteWorkflowRequest 调用带有参数的操作?

2024-03-20

Context

我可以使用 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”的可选字符串类型输入参数的操作

此调用会引发异常:

此工作流无法运行,因为父工作流提供的参数与链接的子工作流中的指定参数不匹配。

我也尝试过...有些地方建议(没有证据)旧版 CRM 版本使用请求本身的参数集合...虽然它看起来丑陋和/或错误,但我尝试了一下,但没有成功:

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

返回与

无法识别的请求参数:MyParameter

Question

如何使用 ExecuteWorkflowRequest 通过 API 调用提供参数的参数化操作?


The 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);

Here "new_myaction"是操作的逻辑名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Dynamics CRM 2016 中使用 ExecuteWorkflowRequest 调用带有参数的操作? 的相关文章

随机推荐