ПланФикс API: Задачи
Список функций для управления задачами
task.add Добавление задачи
Добавление:
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.add">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<task>
<title><!-- Название задачи --></title>
<description><!-- О чем эта задача --></description>
<importance><!-- Срочность --></importance>
<status><!-- Статус --></status>
<checkResult>{true|false}</checkResult><!-- Является ли задача задачей с обязательной проверкой результата -->
<!-- Создатель задачи -->
<owner>
<id></id>
</owner>
<!-- Над задача -->
<parent>
<id></id>
</parent>
<!-- В рамках какого проекта поставлена задача -->
<project>
<id></id>
</project>
<!-- Контрагент -->
<client>
<id></id>
</client>
<startTime><!-- Время начала (приступить к работе) --></startTime>
<endTime><!-- Время окончания (закончить работу До) --></endTime>
<!-- список исполнителей -->
<Workers>
<!-- список пользователей -->
<Users>
<id><!-- идентификатор логина --></id>
<id></id>
<!-- ... -->
</Users>
<Groups>
<id></id>
<id></id>
<!-- ... -->
</Groups>
</Workers>
<!-- периодичность задачи, необязательный параметр -->
<periodicity>
<!-- ежедневно -->
<daily>
<type>{EVERY|EVERY_WORKING|AFTER_COMPLETE}</type>
<shift></shift>
</daily>
<!-- еженедельно -->
<weekly>
<type>{EVERY|AFTER_COMPLETE}</type>
<shift></shift>
<days><!-- список дней через запятую --></days>
</weekly>
<!-- ежемесячно -->
<monthly>
<type>{AFTER_COMPLETE|DAY_OF_MONTH|BY_CONDITION}</type>
<month></month>
<day></day>
<dayType></dayType>
</monthly>
</periodicity>
</task>
</request>
Добавляемые даты могут задаваться в двух форматах. Первый формат короткий, указывается только число, год и месяц. Второй формат - полный, дополнительно указывается время начала/завершения, если того требует задача. Периодичность - не обязательный параметр. Внутри тега periodicity может быть только один из перечисленных элементов: daily, weekly, monthly.
Ответ при удачном выполнении операции:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
</task>
</response>
task.update Обновление задачи
Запрос на обновление информации:
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.update">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<task>
<id></id>
<title><!-- Название задачи --></title>
<description><!-- О чем эта задача --></description>
<importance><!-- Срочность --></importance>
<status><!-- Статус --></status>
<checkResult>{true|false}</checkResult><!-- Является ли задача задачей с обязательной проверкой результата -->
<!-- Создатель задачи -->
<owner>
<id></id>
</owner>
<!-- Над задача -->
<parent>
<id></id>
</parent>
<!-- В рамках какого проекта поставлена задача -->
<project>
<id></id>
</project>
<!-- Контрагент -->
<client>
<id></id>
</client>
<startTime><!-- Время начала (приступить к работе) --></startTime>
<endTime><!-- Время окончания (закончить работу До) --></endTime>
<!-- список исполнителей -->
<workers>
<!-- список пользователей -->
<users>
<id><!-- идентификатор логина --></id>
<id></id>
<!-- ... -->
</users>
<groups>
<id></id>
<id></id>
<!-- ... -->
</groups>
</workers>
<!-- периодичность задачи, необязательный параметр -->
<periodicity>
<!-- ежедневно -->
<daily>
<type>{EVERY|EVERY_WORKING|AFTER_COMPLETE}</type>
<shift></shift>
</daily>
<!-- еженедельно -->
<weekly>
<type>{EVERY|AFTER_COMPLETE}</type>
<shift></shift>
<days><!-- список дней через запятую --></days>
</weekly>
<!-- ежемесячно -->
<monthly>
<type>{AFTER_COMPLETE|DAY_OF_MONTH|BY_CONDITION}</type>
<month></month>
<day></day>
<dayType></dayType>
</monthly>
</periodicity>
</task>
</request>
Ответ при удачном выполнении запроса:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
</task>
</response>
task.get Получение карточки задачи
Запрос на получение:
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.get">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<id></id>
</request>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
<title><!-- Название задачи --></title>
<description><!-- О чем эта задача --></description>
<importance><!-- Срочность --></importance>
<status><!-- Статус --></status>
<checkResult>{true|false}</checkResult><!-- Является ли задача задачей с обязательной проверкой результата -->
<!-- Создатель задачи -->
<owner>
<id></id>
<name></name>
</owner>
<!-- Над задача -->
<parent>
<id></id>
</parent>
<!-- В рамках какого проекта поставлена задача -->
<project>
<id></id>
<title></title>
</project>
<!-- Контрагент -->
<client>
<id></id>
<name></name>
</client>
<beginDateTime><!-- Время создания задачи --></beginDateTime>
<startTime><!-- Время начала (приступить к работе) --></startTime>
<endTime><!-- Время окончания (закончить работу До) --></endTime>
<!-- Сквозной номер -->
<general></general>
<isOverdued><!-- Задача не выполнена в срок --></isOverdued>
<isCloseToDeadline><!-- Задача близка к дедлайну --></isCloseToDeadline>
<isNotAcceptedInTime><!-- Задача не принята вовремя --></isNotAcceptedInTime>
<!-- Помещена в избранные -->
<starred>{true|false}</starred>
</task>
</response>
task.getList Список задач
Получение списка задач:
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.getList">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<!-- список какого пользователя мы хотим посмотреть -->
<login>
<id></id>
</login>
<target>
Входящие/исходящие/Все
</target>
<!-- фильтр по проекту, не обязательное поле -->
<project>
<id></id>
</project>
<sort></sort>
<status><!-- смотри константы --></status>
<pageCurrent></pageCurrent>
<pageSize></pageSize>
<filter></filter>
</request>
Параметр filter может принимать следующие значения: ACTIVE (активные задачи), OVERDUE (просроченные задачи), MY (мои задачи). Значение параметра может представлять комбинацию допустимых значений, например:
<filter>ACTIVE MY</filter>
Значения параметра target:
- all - все
- in - входящие, значение по умолчанию
- out - исходящие
Значения параметра sort смотри в Типы сортировок
Результатом выполнения функции является следующий ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<tasks count="размер списка">
<task>
<id></id>
<title><!-- Название задачи --></title>
<description><!-- О чем эта задача --></description>
<importance><!-- Срочность --></importance>
<status><!-- Статус --></status>
<checkResult>{true|false}</checkResult><!-- Является ли задача задачей с обязательной проверкой результата -->
<!-- Создатель задачи -->
<owner>
<id></id>
<name></name>
</owner>
<!-- Над задача -->
<parent>
<id></id>
</parent>
<!-- В рамках какого проекта поставлена задача -->
<project>
<id></id>
<title></title>
</project>
<!-- Контрагент -->
<client>
<id></id>
<name></name>
</client>
<beginDateTime><!-- Время создания задачи --></beginDateTime>
<startTime><!-- Время начала (приступить к работе) --></startTime>
<endTime><!-- Время окончания (закончить работу До) --></endTime>
<!-- Сквозной номер -->
<general></general>
<isOverdued><!-- Задача не выполнена в срок --></isOverdued>
<isCloseToDeadline><!-- Задача близка к дедлайну --></isCloseToDeadline>
<isNotAcceptedInTime><!-- Задача не принята вовремя --></isNotAcceptedInTime>
<!-- Помещена в избранные -->
<starred>{true|false}</starred>
<!-- исполнители -->
<workers>
<users>
<user>
<id></id>
<name></name>
</user>
<user>
<id></id>
<name></name>
</user>
<!-- ... -->
</users>
<groups>
<group>
<id></id>
<name></name>
</group>
<group>
<id></id>
<name></name>
</group>
<!-- ... -->
</groups>
</workers>
</task>
<!-- ... -->
</tasks>
</response>
task.accept Принять задачу
Для дальнейшей работы с задачей, пользователь должен принять задачу. Вызов функции:
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.accept">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<task>
<id>идентификатор задачи, которую принимает пользователь</id>
</task>
</request>
Результатом корректного выполнения запроса будет:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
</task>
</response>
task.reject Отклонить задачу
Для отклонения задачи, необходимо вызвать следующую функцию:
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.reject">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<task>
<id>идентификатор задачи, которую принимает пользователь</id>
</task>
<reason>причина по которой отклоняется задача,обязательное поле, не может быть пустым</reason>
</request>
Результатом удачного выполнения функции будет следующий ответ?
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
</task>
</response>
task.changeExpectDate Изменить дату выполнения задачи
Если пользователь по какой-то причине не может выполнить в установленный срок задачу, он может перенести время выполнения её.
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.changeExpectDate">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<task>
<id>идентификатор задачи, которую принимает пользователь</id>
</task>
<expectDate></expectDate>
</request>
При успешном выполнении получим следующий ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
<endTime></endTime>
</task>
</response>
Если в ответе отсутствует параметр endTime - это говорит о том, что был послан запрос постановщику с предложением о смене даты.
task.changeStatus Изменить статус задачи
Изменение статуса:
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.changeExpectDate">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<task>
<id><!-- идентификатор задачи --></id>
</task>
<status></status>
</request>
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
</task>
</response>
task.changeWorkers Изменить (добавить/удалить) исполнителей
Запрос на изменение исполнителей. <?xml version="1.0" encoding="UTF-8"?> <request method="task.changeWorkers">
<account></account> <sid></sid> <task> <id></id> </task> <workers> <users> <id></id> <id></id> </users> </workers>
</request> Важно понимать, что необходимо посылать полный список исполнителей, сервер автоматически рассчитает кого необходимо удалить, а кого добавить, и кого необходимо оставить. Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
</task>
</response>
Константы
Срочность
- LOW - Не срочная
- AVERAGE - Обычная
- HIGH - Срочная
Статус
- DRAFT - Черновик
- ACTIVE - Активный но еще не принятый
- ACCEPTED - Принятый
- COMPLETED - Завершенный
- DELAYED - Отложенный
- REJECTED - Отклоненный
- DONE - Выполненный
- CANCELED - Отмененный
Типы сортировок
- NUMBER_ASC - сортировка по номеру (возрастание)
- NUMBER_DESC - сортировка по номеру (убывание)
- IMPORTANCE_ASC - сортировка по приоритету (возрастание)
- IMPORTANCE_DESC - сортировка по приоритету (убывание)
- DEADLINE_ASC - сортировка по времени окончания (возрастание)
- DEADLINE_DESC - сортировка по времени окончания (убывание)
- TASKTITLE_ASC - сортировка по названию задачи (возрастание)
- TASKTITLE_DESC - сортировка по названию задачи (убывание)
- PROJECT_ASC - сортировка по названию проекта (возрастание)
- PROJECT_DESC - сортировка по названию проекта (убывание)
Ошибки
по ходу реализации раздел дополниться, сей час не понятен полный список возможных ошибок