1

我正在编写一个在发票的 PostCreation 上触发的插件。这个插件创建一个佣金记录,并且应该在佣金记录上设置一个查找字段,该字段指向新创建的发票。但是,在插件运行时,发票的 Guid 似乎没有任何价值 - 我假设它只有在提交到数据库后才会获得 Guid?

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

谢谢

4

2 回答 2

2

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

来自MSDN - 了解传递给插件的数据上下文

但是,只有同步 post-event 和异步注册插件才会填充 OutputParameters,因为响应是核心平台操作的结果

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

来自MSDN - 示例:基本插件

为帐户实体、在 Create 消息上和异步模式下注册此插件。或者,您可以在沙箱中的后期事件上注册插件。

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

本例中的代码是:

Guid regardingobjectid = new Guid(context.OutputParameters["id"].ToString());
于 2013-08-20T13:13:25.987 回答
1

只要您处于 Invoice 的 Post Creation 步骤,Guid 就应该在那里。

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

Guid id = (Guid)context.OutputParameters["id" ];
于 2013-08-20T12:24:54.053 回答