0
Голосовать

автоматически выполнить задачу по процессу в TS 3.X

Создано:
Метки записи:

Добрый день!

Подскажите, как можно автоматически выполнить задачу по процессу в TS 3.X?
Например, стоит задача "проверить оплату". И каждую ночь система проверяет (в базе данных или с вызовом приложения), получена ли оплата.
Если получена, то необходимо закрыть задачу, как выполненную и перейти к следующему шагу процесса.

Комментарии

Тимофеев Александр

Владимир.
Сделать то, что Вы хотите можно прописав все необходимые действия кодом,
который выполнять в нужное время по таймеру. Для TS 3.4 и старше через
раздел JobManager, для более ранних версий, через планировщик Windows,
или какой-то свой крон. В скриптах можно и задачу закрыть, и следующую поставить.
Мы подобное делали, если нужна конкретная помощь, пишите в личку.

Владимир Соколов
Тимофеев Александр пишет:
Для TS 3.4 и старше

У клиента 3.3.2
Боюсь, upgrade будет слишком трудозатратен

Тимофеев Александр

Мы пользовались программой nnCron (https://ru.wikipedia.org/wiki/NnCron).
Ее версия Lite бесплатна, но обеспечивает все необходимое и ставится как сервис.
Скрипты запускаются через WSH в командной строке. Прописываем коннект к конфигурции
и выполнение скриптов. Примеры есть в SDK. В nnCron есть логи, видно когда и что запускалось.
Можно настроить выполнение скриптов без отображения. Только надо установить параметр
AsLoggedUser OFF в ini файле и запускать сервис от системного пользователя, чтобы запускались
скрипты из командных файлов.
Больше "хитростей" нет.
Если не получится, напишите, я поищу в архивах работающий пример.

Савельева Алла

Здравствуйте, Владимир!

Можно реализовать эту функциональность на уровне базы данных в триггере.

Если получена оплата, то апдейтить данную задачу и элемент процесса, который с ней связан, а после этого создавать новый элемент процесса и новую задачу, которая идет следующим шагом по процессу.

Найти элемент задачи можно по полю WorkflowItemID в tbl_Task, а искать в tbl_WorkflowItem. В tbl_WorkflowItem определить WorkflowID для следующего элемента, который нужно создать (так в базовой версии, в Вашей версии могут быть отличия).

Владимир Соколов
Савельева Алла пишет:
Можно реализовать эту функциональность на уровне базы данных в триггере

Наверное, на уровне БД параметры процесса не поменять...

Савельева Алла
Владимир Соколов пишет:
Наверное, на уровне БД параметры процесса не поменять...

Такие ограничения данного варианта решения есть и описанное Вами основное, хотя на самом деле все зависит от того, какой параметр нужно передать.

В некоторых случаях можно.

Например, если нужно, чтобы после закрытия задачи новая задача создалась с другим номером счета.
Тогда можно добавить задачу с нужным номером счета на уровне БД, а после выполнения этого элемента процесса передать значение нового счета в параметры бизнес-процесса и продолжать с ним работать дальше.

Как вариант, возможно, переделать процесс иначе, чтобы нужный параметр менялся на другом шаге.