HTTP API справочника задач

Назначение справочника и настройка исполнителя описаны в руководстве администратора.

Класс:

ru.bgcrm.core.task.struts.TaskAction

Создание задачи

Метод: createTask

url: /admin/task.do?action=createTask

Параметры уходят телом запроса: скрипт бывает длиннее, чем помещается в строку запроса.

Входные параметры
Название Обязателен Описание

title

Да

Наименование задачи

clazz

Нет, если указан скрипт

Класс обработчик задачи

script

Нет, если указан класс

Скрипт

Ответ
{
    "status": "ok",
    "message": "",
    "data": {
        "task": {
            "id": 1,
            "title": "Название_задачи",
            "clazz": "ru.bgcrm.dyn.NotifyExecutorsTask",
            "script": null,
            "enabled": true
        }
    },
    "eventList": []
}

Редактирование задачи

Метод: updateTask

url: /admin/task.do?action=updateTask

Параметры уходят телом запроса, как и у создания.

Входные параметры
Название Обязателен Описание

id

Да

ID задачи

title

Да

Наименование задачи

clazz

Нет, если указан скрипт

Класс обработчик задачи

script

Нет, если указан класс

Скрипт

Ответ. updateTask ничего не возвращает, поэтому под ключом task находится пустой объект:
{
    "status": "ok",
    "message": "",
    "data": {
        "task": {}
    },
    "eventList": []
}

Выключение задачи

Метод: disableTask

url: /admin/task.do?action=disableTask&id=:id

Входные параметры
Название Обязателен Описание

id

Да

ID задачи

Пример: /admin/task.do?action=disableTask&id=1

Включение задачи

Метод: enableTask

url: /admin/task.do?action=enableTask&id=:id

Входные параметры
Название Обязателен Описание

id

Да

ID задачи

Пример: /admin/task.do?action=enableTask&id=1

Удаление задачи

Метод: deleteTask

url: /admin/task.do?action=deleteTask&id=:id

Входные параметры
Название Обязателен Описание

id

Да

ID задачи

Пример: /admin/task.do?action=deleteTask&id=1

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

Откат изменения задачи

Метод: rollbackTask

url: /admin/task.do?action=rollbackTask&id=:id&recordId=:recordId

Входные параметры
Название Обязателен Описание

id

Да

ID задачи

recordId

Да

ID последней записи истории по задаче

Откатывает последнее действие: правку — возвратом полей к значениям до неё, удаление — восстановлением задачи под прежним id. Создание и восстановление не откатываются. Если после указанной записи появились новые, действие отвечает ошибкой.

Пример: /admin/task.do?action=rollbackTask&id=1&recordId=7

Ответ
{
    "status": "ok",
    "message": "",
    "data": {
        "task": {
            "id": 1,
            "title": "Название_задачи",
            "clazz": "ru.bgcrm.dyn.NotifyExecutorsTask",
            "script": null,
            "enabled": true
        }
    },
    "eventList": []
}

Получение задачи по ID

Метод: getTaskById

url: /admin/task.do?action=getTaskById&id=:id

Входные параметры
Название Обязателен Описание

id

Да

ID задачи

Пример: /admin/task.do?action=getTaskById&id=1

Ответ
{
    "status": "ok",
    "message": "",
    "data": {
        "task": {
        "id": 1,
        "title": "Название_задачи",
        "clazz": "ru.bgcrm.dyn.NotifyExecutorsTask",
        "script": null,
        "enabled": true
        }
    },
    "eventList": []
}

Поиск задач

Метод: searchTasks

url: /admin/task.do?action=searchTasks&pageIndex=:pageIndex&pageSize=:pageSize&id=:id&filter=:filter&enabled=:enabled

Пример: /admin/task.do?action=searchTasks&pageIndex=1&pageSize=10&enabled=true

Входные параметры
Название Обязателен Описание

id

Нет

ID задачи

filter

Нет

Подстрока для поиска по наименованию, классу и скрипту

enabled

Нет

Состояние задачи

Ответ
{
    "status": "ok",
    "message": "",
    "data": {
        "tasks": {
            "page": {
                "pageIndex": 1,
                "pageSize": 10,
                "pageCount": 1,
                "recordCount": 1
            },
            "list": [
                {
                    "id": 1,
                    "title": "Название_задачи",
                    "clazz": "ru.bgcrm.dyn.NotifyExecutorsTask",
                    "script": null,
                    "enabled": true
                }
            ]
        }
    },
    "eventList": []
}
Выборка приходит внутри ключа tasks: действие кладёт в ответ целиком объект SearchResult, поэтому list и page вложены в него. Так же устроены ответы поиска использования и истории.

Поиск использования задачи

Метод: searchTaskUsage

url: /admin/task.do?action=searchTaskUsage&id=:id

Входные параметры
Название Обязателен Описание

id

Да

ID задачи

Возвращает типы процессов, в правилах автоматизации которых используется задача. Правила одного типа процесса сгруппированы в одну запись.

Пример: /admin/task.do?action=searchTaskUsage&id=1&pageIndex=1&pageSize=5

Ответ
{
    "status": "ok",
    "message": "",
    "data": {
        "usages": {
            "page": {
                "pageIndex": 1,
                "pageSize": 5,
                "pageCount": 1,
                "recordCount": 1
            },
            "list": [
                {
                    "processTypeId": 11207,
                    "processTypeTitle": "Заявка ЮЛ",
                    "rules": [
                        {
                            "id": 235,
                            "title": "Создать задачу",
                            "enabled": true
                        }
                    ]
                }
            ]
        }
    },
    "eventList": []
}

Поиск классов-обработчиков

Метод: searchTaskHandlers

url: /admin/task.do?action=searchTaskHandlers&filter=:filter

Входные параметры
Название Обязателен Описание

filter

Нет

Подстрока в полном имени класса, без учёта регистра

Отдаёт классы, пригодные в обработчики задачи: скомпилированные классы динамического кода, реализующие ru.bgcrm.core.task.executor.TaskHandler. Классы из сборки в выборку не попадают — их имя вводится в поле вручную.

Пример: /admin/task.do?action=searchTaskHandlers&filter=news

Ответ
{
    "status": "ok",
    "message": "",
    "data": {
        "handlers": [
            {
                "name": "ru.bgcrm.dyn.ufanet.advertise.task.CreateLinkProcessTask",
                "packageName": "ru.bgcrm.dyn.ufanet.advertise.task",
                "simpleName": "CreateLinkProcessTask"
            }
        ]
    },
    "eventList": []
}

Поиск истории изменений

Метод: searchTaskAudit

url: /admin/task.do?action=searchTaskAudit&id=:id&actions=:actions&deleted=:deleted

Входные параметры
Название Обязателен Описание

id

Нет

ID задачи

actions

Нет

Действия через запятую: create, update, delete, restore. Неизвестное значение даёт ошибку, а не пустой фильтр

deleted

Нет

Только удалённые задачи: последние записи удаления по задачам, которых нет в справочнике

Одна выборка на всю историю: без фильтров отдаёт все записи, новые первыми.

Пример: /admin/task.do?action=searchTaskAudit&id=1&pageIndex=1&pageSize=10

Ответ
{
    "status": "ok",
    "message": "",
    "data": {
        "auditRecords": {
            "page": {
                "pageIndex": 1,
                "pageSize": 10,
                "pageCount": 1,
                "recordCount": 1
            },
            "list": [
                {
                    "id": 7,
                    "taskId": 1,
                    "action": "update",
                    "actionTitle": "изменена",
                    "userId": 8379,
                    "userName": "Зарипов И. Р.",
                    "time": 1758000000000,
                    "title": "Название_задачи",
                    "changes": [
                        {
                            "field": "enabled",
                            "title": "Состояние",
                            "before": "включена",
                            "after": "выключена"
                        }
                    ]
                }
            ]
        }
    },
    "eventList": []
}
time — метка времени в миллисекундах. У создания, удаления и восстановления в changes лежит полный снимок полей задачи в after.