我正在编写一个插件,它在发票的PostCreation上触发。这个插件创建一个佣金记录,应该在佣金记录上设置一个指向新创建的发票的查询字段。然而,当插件运行时,发票Guid似乎没有任何价值 - 我认为一旦它被提交到数据库,它只会得到一个Guid。Dynamics CRM插件 - 设置相关记录
有没有办法让我可以得到新发票的Guid,甚至手动设置它,以便我知道插件结束之前会是什么?
感谢
我正在编写一个插件,它在发票的PostCreation上触发。这个插件创建一个佣金记录,应该在佣金记录上设置一个指向新创建的发票的查询字段。然而,当插件运行时,发票Guid似乎没有任何价值 - 我认为一旦它被提交到数据库,它只会得到一个Guid。Dynamics CRM插件 - 设置相关记录
有没有办法让我可以得到新发票的Guid,甚至手动设置它,以便我知道插件结束之前会是什么?
感谢
只要你在发票的帖子创建步骤,将GUID应该在那里。
你在找什么?您是否尝试过这样的:
Guid id = (Guid)context.OutputParameters["id" ];
里面一个插件就可以访问到,只有当步骤在异步模式或同步模式后事件注册的OutputParameters
。
从MSDN - Understand the Data Context Passed to a Plug-In
然而,只有同步后事件和异步注册 插件具有填充OutputParameters作为响应,是因为你注册的核心平台操作
的结果 作为事后步骤,您可以使用Daryl的代码(正确的财产是id
小写)
注册该插件用于账户实体,在创建消息时, 和在异步模式。或者,您可以在沙盒中的后期事件中注册插件 。
在基本插件示例中,由于代码使用OutputParameters
集合,因此代码使用OutputParameters
集合,但它没有解释为什么。
在这个例子中的代码是:
Guid regardingobjectid = new Guid(context.OutputParameters["id"].ToString());
谢谢你的快速回复,但是这个代码似乎是给了我一个“键不存在”错误 – user2463758
ID必须是“ID”。案件事宜!我已经编辑了上面的答案。 http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.messages.createresponse_properties.aspx –