2013-08-20 73 views
1

我正在编写一个插件,它在发票的PostCreation上触发。这个插件创建一个佣金记录,应该在佣金记录上设置一个指向新创建的发票的查询字段。然而,当插件运行时,发票Guid似乎没有任何价值 - 我认为一旦它被提交到数据库,它只会得到一个Guid。Dynamics CRM插件 - 设置相关记录

有没有办法让我可以得到新发票的Guid,甚至手动设置它,以便我知道插件结束之前会是什么?

感谢

回答

1

只要你在发票的帖子创建步骤,将GUID应该在那里。

你在找什么?您是否尝试过这样的:

Guid id = (Guid)context.OutputParameters["id" ]; 
+0

谢谢你的快速回复,但是这个代码似乎是给了我一个“键不存在”错误 – user2463758

+0

ID必须是“ID”。案件事宜!我已经编辑了上面的答案。 http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.messages.createresponse_properties.aspx –

2

里面一个插件就可以访问到,只有当步骤在异步模式或同步模式后事件注册的OutputParameters

MSDN - Understand the Data Context Passed to a Plug-In

然而,只有同步后事件和异步注册 插件具有填充OutputParameters作为响应,是因为你注册的核心平台操作

的结果 作为事后步骤,您可以使用Daryl的代码(正确的财产是id小写)

MSDN - Sample: Basic Plug-In

注册该插件用于账户实体,在创建消息时, 和在异步模式。或者,您可以在沙盒中的后期事件中注册插件 。

在基本插件示例中,由于代码使用OutputParameters集合,因此代码使用OutputParameters集合,但它没有解释为什么。

在这个例子中的代码是:

Guid regardingobjectid = new Guid(context.OutputParameters["id"].ToString()); 
+0

谢谢你,就这样做了! – user2463758

+0

+1表示它正在同步执行...... – Daryl

+0

与异步与同步无关。达里尔的回答是正确的,只有一个案例错误。 –