我确定我遗漏了一些小问题,但是在BLC或ASPX页面中是否需要指定任何特定内容以允许重定向在PXLongOperation中运行?
在我的情况下,我正在为CRCaseMaint屏幕创建一个自定义按行动创建销售订单。
作为基础,在OpportunityMaint的CreateSalesOrder操作中,在长时间运行的进程中调用“DoCreateSalesOrder”方法
PXLongOperation.StartOperation(this, delegate()
{
var grapph = PXGraph.CreateInstance<OpportunityMaint>();
grapph.Opportunity.Current = opportunity;
grapph.CreateOrderParams.Current = CreateOrderParams.Current;
grapph.DoCreateSalesOrder();
});
DoCreateSalesOrder方法的最后一步是重定向到销售订单屏幕
throw new PXRedirectRequiredException(docgraph, "");
看到这个功能与我试图实现的功能大约99%相似,我在自定义中复制了这个功能。
一切都按照我的预期运行(我的操作被调用,我的智能面板显示,我的创建销售订单方法调用),除非我在PXLongOperation中放置我的等效“DoCreateSalesOrder”方法,重定向永远不会发生。
如果我注释掉PXLongOperation包装器,该方法将作为最后一步正确地重定向到销售订单页面。
附加调试器显示销售订单文档存在且它正在进行重定向,但最终重定向没有发生。
如前所述,我确信这是我忘了设置的一些小问题,但是有没有人遇到过这个并有任何想法?
答案 0 :(得分:1)
回答我自己的问题,因为我知道这是一个小问题,但可能会帮助别人。
PXLongOperation定义不正确。
我有这个:
PXLongOperation.StartOperation(Base, delegate ()
但是看看这是一个GraphExtension应该是这样的:
{{1}}
更改后,它按预期工作