Запланируйте какое-нибудь задание в Acumatica

У меня следующая задача: выполнить какое-то событие с некоторым интервалом. В руководстве к T200 я обнаружил, что это можно сделать через страницы обработки. Для этого мне нужно добавить граф с суффиксом процесса. Но что меня озадачивает, так это как сделать так, чтобы появлялись кнопки «Обработать», «Обработать все», «Расписания»? Другой вопрос, который у меня есть, - как выполнить какое-то действие по какому-то расписанию в Acumatica? Какой рекомендуемый подход?


person Yuriy Zaletskyy    schedule 06.02.2015    source источник
comment
Итак ... это два разных вопроса.   -  person    schedule 06.02.2015


Ответы (1)


Ключевым моментом, который отличает графики обработки от других типов страниц в Acumatica, является то, что они имеют представление данных типа PXProcessing<> или PXProcessingJoin<> - они вместе с процедурой обработки, определенной на графике, заставят систему создать Process < / em>, Обработать все и Расписание на соответствующем экране. Обычно ваш график будет выглядеть так:

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 (а также Entry и Maint) - это просто вопрос стиля / соглашения. (Одним из важных исключений являются объекты настройки с префиксом / суффиксом Cst, но это немного другая история.)

Что касается периодического выполнения некоторых действий, для этого вы используете Расписания автоматизации (SM205020) - это экран, который открывается при нажатии кнопки Расписание на любом экране обработки. Там вы можете создать расписание, которое запускает обработку на определенном экране обработки. Расписания можно точно настроить в соответствии с вашими целями с точки зрения частоты выполнения и даже предусмотреть некоторую дополнительную фильтрацию.

person Alex Turok    schedule 08.02.2015
comment
Что такое ARDocumentList? - person Yuriy Zaletskyy; 09.02.2015
comment
Извините, это была ошибка копирования-вставки - должно быть DocumentsToProcess. Проверьте обновленный код. Виноват. - person Alex Turok; 09.02.2015