我正在编写一个在发票的 PostCreation 上触发的插件。这个插件创建一个佣金记录,并且应该在佣金记录上设置一个查找字段,该字段指向新创建的发票。但是,在插件运行时,发票的 Guid 似乎没有任何价值 - 我假设它只有在提交到数据库后才会获得 Guid?
有没有一种方法可以让我获得新发票的 Guid 甚至手动设置它,以便在插件结束之前知道它会是什么?
谢谢
我正在编写一个在发票的 PostCreation 上触发的插件。这个插件创建一个佣金记录,并且应该在佣金记录上设置一个查找字段,该字段指向新创建的发票。但是,在插件运行时,发票的 Guid 似乎没有任何价值 - 我假设它只有在提交到数据库后才会获得 Guid?
有没有一种方法可以让我获得新发票的 Guid 甚至手动设置它,以便在插件结束之前知道它会是什么?
谢谢
OutputParameters
在插件内部,只有在步骤以异步模式或同步模式后事件注册时才能访问。
但是,只有同步 post-event 和异步注册插件才会填充 OutputParameters,因为响应是核心平台操作的结果
因为您将该步骤注册为事件后,您可以使用 Daryl 的代码(正确的属性是id
小写)
为帐户实体、在 Create 消息上和异步模式下注册此插件。或者,您可以在沙箱中的后期事件上注册插件。
在基本插件示例中,有一个关于执行模式的警告,因为代码使用了OutputParameters
集合,但没有解释原因。
本例中的代码是:
Guid regardingobjectid = new Guid(context.OutputParameters["id"].ToString());
只要您处于 Invoice 的 Post Creation 步骤,Guid 就应该在那里。
你在哪里找它?你有没有试过这个:
Guid id = (Guid)context.OutputParameters["id" ];