【发布时间】:2019-11-07 09:55:33
【问题描述】:
如何在图形处理逻辑中判断它是通过计划任务而不是通过用户交互执行的?
PXProcessing 好像没有多少,AUSchedule 表中的记录也没有
原因:如果我在交互式会话中,我想为我创建的文档重定向到多个屏幕。在计划任务中,我不想让这些重定向使服务器混乱
【问题讨论】:
如何在图形处理逻辑中判断它是通过计划任务而不是通过用户交互执行的?
PXProcessing 好像没有多少,AUSchedule 表中的记录也没有
原因:如果我在交互式会话中,我想为我创建的文档重定向到多个屏幕。在计划任务中,我不想让这些重定向使服务器混乱
【问题讨论】:
查看 SOSshipmentEntry 的代码存储库。搜索 SOInvoiceEntry,它将带您进入创建发票的 Action 函数。您可以看到他们调用了 adapter.MassProcess 函数来查看它是否在进程中运行,并根据状态抛出异常、设置信息或错误。 您还可以看到 AllowRedirect 标志正在使用中。
以下是在发货发票创建结束时重定向到发票的示例:
SOInvoiceEntry ie = PXGraph.CreateInstance<SOInvoiceEntry>();
......
......
if (adapter.AllowRedirect && !adapter.MassProcess && created.Count > 0)
{
using (new PXTimeStampScope(null))
{
ie.Clear();
ie.Document.Current = ie.Document.Search<ARInvoice.docType, ARInvoice.refNbr>(((ARInvoice)created[0]).DocType, ((ARInvoice)created[0]).RefNbr, ((ARInvoice)created[0]).DocType);
throw new PXRedirectRequiredException(ie, "Invoice");
}
}
【讨论】: