在 Acumatica 中安排一些任务

Schedule some task in Acumatica

我有以下任务:以一定间隔执行一些事件。在 T200 手册中,我发现它可以通过处理页面来完成。为此,我需要添加带有后缀过程的图表。但是令我困惑的是如何让按钮出现过程,过程全部,时间表?我的另一个问题是如何在 Acumatica 中按计划执行某些操作?推荐的方法是什么?

Acumatica 中处理图与其他类型页面的区别在于它们具有 PXProcessing<>PXProcessingJoin<> 类型的数据视图,以及定义在图形,将使系统在相应屏幕上创建 ProcessProcess AllSchedule 按钮。一般来说,您的图表将如下所示:

public class YourProcessingGraph : PXGraph<YourProcessingGraph>
{
    //Data view that provides a list of items to process
    public PXProcessing<ARInvoice,
        Where<ARInvoice.released, Equal<boolFalse>>> DocumentsToProcess;

    public YourProcessingGraph()
    {
        DocumentsToProcess.SetProcessDelegate(DoActualProcessing);

        //You can also change button captions
        DocumentsToProcess.SetProcessCaption("Do");
        DocumentsToProcess.SetProcessAllCaption("Do For All");
    }

    public static void DoActualProcessing(List<ARInvoice> itemsToProcess)
    {
        // Do something cool here
    }
}

您可以在您提到的 T200 培训以及 Acumatica 的源代码中找到如何正确定义处理图的更好示例 - 例如ARDocumentRelease 图。

Acumatica 在确定什么是什么时不依赖于您定义的 类 的名称(无论是 DAC 还是图形),因此 Process 后缀(以及 EntryMaint)只是 style/convention 的问题。 (一个重要的例外是 Cst prefix/suffix 附带的自定义对象,但这些有点不同。)

至于定期执行某些操作,您可以使用 Automation Schedules (SM205020) - 这是当您单击 Schedule[=31] 时打开的屏幕=] 任何处理屏幕上的按钮。在那里您可以创建一个计划,该计划将在特定处理屏幕上启动处理。可以对时间表进行微调以在执行频率方面匹配您的目标,甚至允许进行一些额外的过滤。