如何从Microsoft.Xrm.Sdk.IPlugin返回到客户端(休息调用)的输出?

时间:2014-04-02 14:47:42

标签: dynamics-crm

我创建了一个自定义实体和一个匹配的插件。 插件在实体的创建消息,预操作和同步上注册。 通过休息调用触发插件执行。输入是正确的。但我无法将数据发送到客户端。

我应该设置OutputParameters,更改InputParameter,更改插件注册,......? 或者之后我应该检索实体吗?

此模式描述于 命令模式段下的http://crm.davidyack.com/journal/2012/6/26/crm-client-extension-data-access-strategies.html

2 个答案:

答案 0 :(得分:0)

要在Pre-Create中更新记录中的某些值,您可以使用以下内容:

public void Execute(IServiceProvider serviceProvider)
{
IPluginExecutionContext context = (IPluginExecutionContext)
serviceProvider.GetService(typeof(IPluginExecutionContext));

Entity yourEntityName= (Entity)context.InputParameters["Target"]

if(yourEntityName.Attributes.Contains("SomeAttribute"))
yourEntityName.Attributes["SomeAttribute"] = "SomeValues"
}

这就是你要找的东西吗?

更改"SomeAttribute"以查找要更改的属性名称,并将"SomeValues"更改为要传递给记录的值。

答案 1 :(得分:0)

在PreCreate事件中,使用结果填充文本区域。在Create结束时,您的实体将在此字段中填入结果。在休息调用中,在创建实体后检索它,并从文本区域中检索结果。

如果您使用的是CRM 2013,而不是使用自定义实体和插件,则可以使用Actions执行服务器端执行,并且可以从REST调用中调用Actions。操作就像任何SDK消息一样,您可以提供输入,它将具有输出。

HTH

由于 麦