【发布时间】:2016-05-11 02:37:26
【问题描述】:
我有一个自定义项,我想在发布发票时运行一些代码(网络服务调用)。在训练中,在我的 Graph Extension 中,我使用并修改了以下示例,其中 CreateAPBills 方法是我想要在 Release Action(最终是 RowPersisted 事件)上运行的方法:
public class ARInvoiceEntryExt : PXGraphExtension<ARInvoiceEntry>
{
public PXAction<ARInvoice> release;
[PXUIField(DisplayName = "Release", MapEnableRights = PXCacheRights.Update, MapViewRights = PXCacheRights.Update)]
[PXProcessButton]
public IEnumerable Release(PXAdapter adapter)
{
PXGraph.InstanceCreated.AddHandler<ARInvoiceEntry>((graph) =>
{
graph.RowPersisted.AddHandler<ARInvoice>((cache, args) =>
{
if (args.TranStatus == PXTranStatus.Completed)
{
CreateAPBill(cache);
}
});
});
return Base.release.Press(adapter);
}
不幸的是,这似乎不起作用。我错过了什么?
【问题讨论】:
-
在和其他人讨论过这个问题之后——我不一定需要在 RowPersisted 事件上发生这种情况——因为 Release 可以在没有保存的情况下发生,对吗?因此,换句话说,我需要在 Release 操作时启动我的代码。我还需要为此添加事件处理程序吗?