ПланФикс API: Задачи: различия между версиями

Материал из Planfix
Перейти к: навигация, поиск
Нет описания правки
Нет описания правки
 
(не показано 11 промежуточных версий 4 участников)
Строка 1: Строка 1:
{{#seo:
|title=ПланФикс API: Задачи
|titlemode=append
|keywords=планфикс, ПланФикс API: Задачи,API
|description=ПланФикс API: Задачи
}}
Список функций для управления задачами:
Список функций для управления задачами:
#[[ПланФикс API task.add|task.add / Добавление задачи]]
#[[ПланФикс API task.add|task.add / Добавление задачи]]
#[[ПланФикс API task.update|task.update / Обновление задачи]]
#[[ПланФикс API task.update|task.update / Обновление задачи]]
#[[ПланФикс API task.updateCustomData|task.updateCustomData / Обновление пользовательских полей задачи]]
#[[ПланФикс API task.get|task.get / Получение карточки задачи]]
#[[ПланФикс API task.get|task.get / Получение карточки задачи]]
#[[ПланФикс API task.getMulti|task.getMulti / Получение множества карточек задач]]
#[[ПланФикс API task.getList|task.getList / Список задач]]
#[[ПланФикс API task.getList|task.getList / Список задач]]
#[[ПланФикс API task.accept|task.accept / Принять задачу]]
#[[ПланФикс API task.accept|task.accept / Принять задачу]]
Строка 8: Строка 16:
#[[ПланФикс API task.changeExpectDate|task.changeExpectDate / Изменить дату выполнения задачи]]
#[[ПланФикс API task.changeExpectDate|task.changeExpectDate / Изменить дату выполнения задачи]]
#[[ПланФикс API task.changeStatus|task.changeStatus / Изменить статус задачи]]
#[[ПланФикс API task.changeStatus|task.changeStatus / Изменить статус задачи]]
#[[ПланФикс API task.getPossibleStatusToChange|task.getPossibleStatusToChange / Получить список возможных статусов для изменения]]
#[[ПланФикс API task.changeWorkers|task.changeWorkers / Изменить (добавить/удалить) исполнителей]]
#[[ПланФикс API task.changeWorkers|task.changeWorkers / Изменить (добавить/удалить) исполнителей]]
#[[ПланФикс API task.getFilterList|task.getFilterList/ Получить список доступных фильтров задач]]


== task.add Добавление задачи==
Добавление:
<source lang="xml">
<?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>
</source>
Добавляемые даты могут задаваться в двух форматах. Первый формат короткий, указывается только число, год и месяц. Второй формат - полный, дополнительно указывается время начала/завершения, если того требует задача. Периодичность - не обязательный параметр. Внутри тега '''periodicity''' может быть только один из перечисленных элементов: ''daily'', ''weekly'', ''monthly''.
Ответ при удачном выполнении операции:
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
<task>
<id></id>
</task>
</response>
</source>
== task.update Обновление задачи ==
Запрос на обновление информации:
<source lang="xml">
<?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>
</source>
Ответ при удачном выполнении запроса:
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
  <task>
    <id></id>
  </task>
</response>
</source>
== task.get Получение карточки задачи ==
Запрос на получение:
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.get">
<account><!-- имя аккаунта --></account>
<sid><!-- ключ сессии, полученный после аутентификации --></sid>
<id></id>
</request>
</source>
Ответ:
<source lang="xml">
<?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>
</source>
== task.getList Список задач ==
Получение списка задач:
<source lang="xml">
<?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>
</source>
Параметр '''filter''' может принимать следующие значения: '''ACTIVE''' (активные задачи), '''OVERDUE''' (просроченные задачи), '''MY''' (мои задачи). Значение параметра может представлять комбинацию допустимых значений, например:
<source lang="xml">
  <filter>ACTIVE MY</filter>
</source>
Значения параметра '''target''':
*'''all''' - все
*'''in''' - входящие, значение по умолчанию
*'''out''' - исходящие
Значения параметра '''sort''' смотри в [[#Типы сортировок|Типы сортировок]]
Результатом выполнения функции является следующий ответ:
<source lang="xml">
<?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>
</source>
== task.accept Принять задачу ==
Для дальнейшей работы с задачей, пользователь должен принять задачу. Вызов функции:
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.accept">
  <account><!-- имя аккаунта --></account>
  <sid><!-- ключ сессии, полученный после аутентификации --></sid>
  <task>
    <id>идентификатор задачи, которую принимает пользователь</id>
  </task>
</request>
</source>
Результатом корректного выполнения запроса будет:
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
  <task>
    <id></id>
  </task>
</response>
</source>
== task.reject Отклонить задачу ==
Для отклонения задачи, необходимо вызвать следующую функцию:
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.reject">
  <account><!-- имя аккаунта --></account>
  <sid><!-- ключ сессии, полученный после аутентификации --></sid>
  <task>
    <id>идентификатор задачи, которую принимает пользователь</id>
  </task>
  <reason>причина по которой отклоняется задача,обязательное поле, не может быть пустым</reason>
</request>
</source>
Результатом удачного выполнения функции будет следующий ответ?
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
  <task>
    <id></id>
  </task>
</response>
</source>
== task.changeExpectDate Изменить дату выполнения задачи ==
Если пользователь по какой-то причине не может выполнить в установленный срок задачу, он может перенести время выполнения её.
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.changeExpectDate">
  <account><!-- имя аккаунта --></account>
  <sid><!-- ключ сессии, полученный после аутентификации --></sid>
  <task>
    <id>идентификатор задачи, которую принимает пользователь</id>
  </task>
  <expectDate></expectDate>
</request>
</source>
При успешном выполнении получим следующий ответ:
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
  <task>
    <id></id>
    <endTime></endTime>
  </task>
</response>
</source>
Если в ответе отсутствует параметр '''endTime''' - это говорит о том, что был послан запрос постановщику с предложением о смене даты.
== task.changeStatus Изменить статус задачи ==
Изменение статуса:
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<request method="task.changeExpectDate">
  <account><!-- имя аккаунта --></account>
  <sid><!-- ключ сессии, полученный после аутентификации --></sid>
  <task>
    <id><!-- идентификатор задачи --></id>
  </task>
  <status></status>
</request>
</source>
Ответ:
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
  <task>
    <id></id>
  </task>
</response>
</source>
== task.changeWorkers Изменить (добавить/удалить) исполнителей ==
Запрос на изменение исполнителей.
<source lang="xml">
<?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>
</source>
Важно понимать, что необходимо посылать полный список исполнителей, сервер автоматически рассчитает кого необходимо удалить, а кого добавить, и кого необходимо оставить.
Ответ:
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
  <task>
    <id></id>
  </task>
</response>
</source>
== Константы ==
=== Срочность ===
*'''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''' - сортировка по названию проекта (убывание)
== Ошибки ==
по ходу реализации раздел дополниться, сей час не понятен полный список возможных ошибок


== Перейти ==
== Перейти ==
[[ПланФикс API]]
[[Список функций]]

Текущая версия от 08:20, 12 июля 2022