确定是否在 运行 计划任务内的方法?

Way to determine if within a running scheduled task?

在图形处理逻辑中,我如何判断它是通过计划任务而不是通过用户交互执行的?

PXProcessing 好像没有多少,AUSchedule 里面的记录也没有table

原因:如果我在交互式会话中,我想重定向到我创建的文档的多个屏幕。在计划任务中,我不想让这些重定向弄乱服务器

查看 SOShipmentEntry 的代码存储库。搜索 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");
    }
}