Dynamics CRM插件 - 设置相关记录

时间:2013-08-20 12:15:07

标签: c# dynamics-crm-2011

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

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

由于

2 个答案:

答案 0 :(得分:2)

在插件内部,只有当步骤以异步模式或事后同步模式注册时,才可以访问OutputParameters

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

  

但是,只有同步后事件和异步注册   插件的OutputParameters已填充,因为响应是结果   核心平台运营

因为您已将该步骤注册为事后事件,您可以使用Daryl的代码(正确的属性为id小写)

来自MSDN - Sample: Basic Plug-In

  

在创建消息上注册帐户实体的此插件,   并在异步模式下。或者,您可以注册插件   沙盒中的事后活动。

在基本插件示例中,有关于执行模式的警告,因为代码使用OutputParameters集合,但没有解释原因。

此示例中的代码为:

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

答案 1 :(得分:1)

只要您处于发票的创作后步骤,Guid就应该在那里。

你在哪里寻找它?你试过这个:

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