ПланФикс API task.add — различия между версиями

Материал из ПланФикс
Перейти к: навигация, поиск
 
(не показаны 34 промежуточные версии 5 участников)
Строка 1: Строка 1:
 +
{{#seo:
 +
|title=ПланФикс API task.add
 +
|titlemode=append
 +
|keywords=планфикс, задачи, апи, api
 +
|description=ПланФикс API task.add
 +
}}
 +
 
Функция позволяет создать новую задачу. Формат запроса:
 
Функция позволяет создать новую задачу. Формат запроса:
 
<source lang="xml">
 
<source lang="xml">
Строка 6: Строка 13:
 
   <sid></sid>
 
   <sid></sid>
 
   <task>
 
   <task>
 +
    <template></template>
 
     <title></title>
 
     <title></title>
 
     <description></description>
 
     <description></description>
 
     <importance></importance>
 
     <importance></importance>
 
     <status></status>
 
     <status></status>
 +
    <statusSet></statusSet>
 
     <checkResult></checkResult>
 
     <checkResult></checkResult>
 
     <owner>
 
     <owner>
Строка 23: Строка 32:
 
       <id></id>
 
       <id></id>
 
     </client>
 
     </client>
 +
    <beginDateTime></beginDateTime>
 +
    <startDateIsSet></startDateIsSet>
 +
    <startDate></startDate>
 +
    <startTimeIsSet></startTimeIsSet>
 
     <startTime></startTime>
 
     <startTime></startTime>
 +
    <endDateIsSet></endDateIsSet>
 +
    <endDate></endDate>
 +
    <endTimeIsSet></endTimeIsSet>
 
     <endTime></endTime>
 
     <endTime></endTime>
 +
    <isSummary></isSummary>
 +
    <duration></duration>
 +
    <durationUnit></durationUnit>
 +
    <durationIsSet></durationIsSet>
 
     <workers>
 
     <workers>
 
       <users>
 
       <users>
Строка 36: Строка 56:
 
         <!-- ... -->
 
         <!-- ... -->
 
       </groups>
 
       </groups>
     </workers>
+
     </workers>  
     <periodicity>
+
     <members>
       <!-- ежедневно -->
+
       <users>
      <daily>
+
         <id></id>
         <type>{EVERY|EVERY_WORKING|AFTER_COMPLETE}</type>
+
         <id></id>
         <shift></shift>
+
        <!-- ... -->
      </daily>
+
       </users>
      <!-- еженедельно -->
+
      <groups>
       <weekly>
+
         <id></id>
         <type>{EVERY|AFTER_COMPLETE}</type>
+
         <id></id>
         <shift></shift>
+
         <!-- ... -->
         <days><!-- список дней через запятую --></days>
+
      </groups>
      </weekly>
+
    </members>    
      <!-- ежемесячно -->
+
    <auditors>
       <monthly>
+
       <users>
         <type>{AFTER_COMPLETE|DAY_OF_MONTH|BY_CONDITION}</type>
+
         <id></id>
         <month></month>
+
         <id></id>
         <day></day>
+
         <!-- ... -->
        <dayType></dayType>
+
      </users>
       </monthly>
+
       <groups>
 
+
        <id></id>
      <startDate></startDate>
+
         <id></id>
      <endCondition>
+
         <!-- ... -->
         <type></type>
+
      </groups>
         <date></date>
+
    </auditors>
        <repeatCount></repeatCount>
+
    <customData>
      </endCondition>
+
       <customValue>
       <notify>
+
         <id></id>
         <type></type>
+
         <value></value>
         <day></day>
+
       </customValue>
       </notify>
+
      <!-- ... -->
     </periodicity>
+
     </customData>
 
   </task>
 
   </task>
 +
  <signature></signature>
 
</request>
 
</request>
 
</source>
 
</source>
 
{| class="wikitable" style="margin-top: 1em; width:100% "
 
{| class="wikitable" style="margin-top: 1em; width:100% "
 
!width="150"|Название !!width="200"| Тип !!width="50%"| Значение !! Примечание  
 
!width="150"|Название !!width="200"| Тип !!width="50%"| Значение !! Примечание  
 +
|-
 +
|template ||id ||идентификатор шаблона задачи || id в ответе [[ПланФикс API task.getList|task.getList]] с target = template
 +
|-
 +
|colspan="4"|Реализация создания задачи по шаблону в API на текущий момент неполна.
 +
 +
Из шаблона устанавливается форма создания задачи (и соответственно имеющиеся в задаче пользовательские поля) и часть её свойств.
 +
 +
Из шаблона на текущий момент не устанавливаются: сроки задачи, аудиторы, аналитики, файлы, напоминания, чек-листы. Исполнители и участники устанавливаются из шаблона, если они отсутствуют в запросе.
 
|-
 
|-
 
|title ||string ||название задачи ||
 
|title ||string ||название задачи ||
Строка 80: Строка 109:
 
|importance || enum||срочность || перечень допустимых значений смотри в разделе [[ПланФикс API:Срочность задачи|срочность задач]]
 
|importance || enum||срочность || перечень допустимых значений смотри в разделе [[ПланФикс API:Срочность задачи|срочность задач]]
 
|-
 
|-
|status ||enum ||статус задачи || перечень допустимых значений смотри в разделе [[ПланФикс API:Статусы задач|статусы задач]]
+
|status ||enum/int ||статус задачи || Допустимы значения из раздела [[ПланФикс API:Системные статусы задач|Системные статусы задач]] или идентификаторы статусов, полученные в результате вызова функции [[ПланФикс API taskStatus.getListOfSet|taskStatus.getListOfSet]]
 +
|-
 +
|statusSet ||int ||процесс задачи || Идентификаторы процессов можно получить в результате вызова функции [[ПланФикс API taskStatus.getSetList|taskStatus.getSetList]]
 
|-
 
|-
 
|checkResult ||bool ||является ли задача задачей с обязательной проверкой результата ||
 
|checkResult ||bool ||является ли задача задачей с обязательной проверкой результата ||
Строка 86: Строка 117:
 
|owner || || создатель задачи||необязательное поле. Если не указано - берется пользователь от имени которого выполняется функция
 
|owner || || создатель задачи||необязательное поле. Если не указано - берется пользователь от имени которого выполняется функция
 
|-
 
|-
|owner.id ||int ||идентификатор пользователя ||
+
|owner.id ||int ||идентификатор пользователя || если это контакт - нужно использовать userid из ответа [[ПланФикс API contact.get|contact.get]]
 
|-
 
|-
 
|parent || ||над задача || необязательное поле
 
|parent || ||над задача || необязательное поле
Строка 98: Строка 129:
 
|client || || контрагент|| необязательный параметр
 
|client || || контрагент|| необязательный параметр
 
|-
 
|-
|client.id ||int ||идентификатор контрагента ||допустимо значение 0
+
|client.id ||int ||идентификатор контрагента (id из ответа contact.get) ||допустимо значение 0
 
|-
 
|-
|startTime ||DateTime || время начала работы || в интерфейсе ПланФикс поле ''приступить к работе''
+
|beginDateTime ||DateTime || дата/время создания - не обязательный, по-умолчанию текущие || может заполняться, только если авторизация была сделана под сотрудником с правами администратора
 
|-
 
|-
|endTime ||DateTime || время окончания задачи ||в интерфейсе ПланФикс поле ''закончить работу До''
+
|startDateIsSet ||bool (0/1)|| задана ли дата начала работы ||  
 
|-
 
|-
|workers || ||корневой элемент списка исполнителей задачи ||
+
|startDate ||Date || дата начала работы || в интерфейсе ПланФикс поле ''приступить к работе''
 
|-
 
|-
|workers.users || || корневой элемент списка пользователей, которым поставлена задача ||
+
|startTimeIsSet ||bool (0/1)|| задано ли время начала работы ||  
 
|-
 
|-
|workers.users.id ||int ||идентификатор пользователя которому поставлена задача ||
+
|startTime ||Time || время начала работы || в интерфейсе ПланФикс поле ''приступить к работе''
 
|-
 
|-
|workers.groups || ||корневой элемент списка групп, которым поставлена задача ||
+
|endDateIsSet ||bool (0/1)|| задана ли дата завершения работы ||  
 
|-
 
|-
|workers.groups.id ||int || идентификатор группы||
+
|endDate ||Date || дата завершения работы || в интерфейсе ПланФикс поле ''закончить работу До''
 
|-
 
|-
|periodicity ||node ||задает периодичность выполнения задачи || смотри описание структуры узлов ''daily'', ''weekly'' и ''monthly'' ниже
+
|endTimeIsSet ||bool (0/1)|| задано ли время завершения работы ||  
 
|-
 
|-
|periodicity.startDate || DateTime || начиная с этой даты начинает работать повторение задачи ||
+
|endTime ||Time || время завершения работы || в интерфейсе ПланФикс поле ''закончить работу До''
 
|-
 
|-
|periodicity.endCondition || || условия окончания повторения ||
+
|isSummary ||bool (0/1)|| задача является суммарной ||  
 
|-
 
|-
|periodicity.endCondition.type ||enum || условие окончания || допустимые значения: '''ENDLESS''' - нет конечной даты, '''BYCOUNT''' - После ''repeatCount '' повторений, '''BYENDDATE''' - до даты определенной в '''date'''
+
|durationIsSet||bool|| задана ли длительность ||  
 
|-
 
|-
|periodicity.endCondition.date ||DateTime || дата, после которой повторение задачи перестает работать || используется при type=BYENDDATE
+
|duration||int|| длительность ||  
 
|-
 
|-
|periodicity.endCondition.repeatCount || int|| количество повторений, после которого задача перестает повторяться || используется при type=BYCOUNT
+
|durationUnit||int|| 0 - минуты, 1 - часы, 2 - дни ||  
 
|-
 
|-
|periodicity.notify || ||уведомления ||
+
|workers || ||корневой элемент списка исполнителей задачи ||
 
|-
 
|-
|periodicity.notify.type ||int || тип период, 0 - рабочий день, 1 - неделя ||
+
|workers.users || || корневой элемент списка пользователей, которым поставлена задача ||
 
|-
 
|-
|periodicity.notify.day || int|| размер период || если type=0 и day=2, то еведомление прийдет за 2 рабочих дня до начала задачи
+
|workers.users.id ||int ||идентификатор пользователя которому поставлена задача || для контактов - нужно использовать userid из ответа [[ПланФикс API contact.get|contact.get]]
 
|-
 
|-
|}
+
|workers.groups || ||корневой элемент списка групп, которым поставлена задача ||
Добавляемые даты могут задаваться в двух форматах. Первый формат короткий, указывается только число, год и месяц. Второй формат - полный, дополнительно указывается время начала/завершения, если того требует задача. Периодичность - не обязательный параметр. Внутри тега '''periodicity''' может быть только один из перечисленных элементов: ''daily'', ''weekly'', ''monthly''.
 
 
 
=== описание параметра periodicity ===
 
Описание параметра ''daily'', параметры ''weekly'' и ''monthly'' в этом случае не могут быть заданы. Указывает что задача должна повторяться ежедневно, согласно установленным критериям:
 
{| class="wikitable" style="margin-top: 1em; width:100% "
 
!width="150"|Название !!width="200"| Тип !!width="50%"| Значение !! Примечание
 
 
|-
 
|-
|type ||enum||определяет периодичность || допустимые значения EVERY или EVERY_WORKING, или AFTER_COMPLETE
+
|workers.groups.id ||int || идентификатор группы||
 
|-
 
|-
|shift || int||определяет сдвиг в днях || используется только при значениях type равным  EVERY или AFTER_COMPLETE
+
|members || ||корневой элемент списка участников задачи ||
 
|-
 
|-
|}
+
|members.users || || корневой элемент списка участников задачи ||
Значение EVERY интерпретируется как каждый N-й день, заданный в параметре '''shift'''. EVERY_WORKING - каждый рабочий день.  Значение AFTER_COMPLETE интерпретируется как ставить новую задачу через N-й день после каждого завершения, заданный в параметре '''shift'''.
 
 
 
Описание параметра ''weekly'', параметры ''daily'' и ''monthly'' в этом случае не могут быть заданы. Указывает что задача должна повторяться еженедельно, согласно установленным критериям:
 
{| class="wikitable" style="margin-top: 1em; width:100% "
 
!width="150"|Название !!width="200"| Тип !!width="50%"| Значение !! Примечание
 
 
|-
 
|-
|type ||enum || определяет периодичность || допустимые значения EVERY или AFTER_COMPLETE
+
|members.users.id ||int ||идентификатор участника задачи || для контактов - нужно использовать userid из ответа [[ПланФикс API contact.get|contact.get]]
 
|-
 
|-
|shift ||int || сдвиг в днях ||  
+
|members.groups || ||корневой элемент списка групп участников ||
 
|-
 
|-
|days ||set/list || перечень дней недели, разделитель символ запятой (,). понедельник имеет индекс 1, воскресение - 7. || используется только при type=AFTER_COMPLETE
+
|members.groups.id ||int || идентификатор группы участников ||
 
|-
 
|-
|}
+
|auditors || ||корневой элемент списка аудиторов задачи, содержимое аналогично workers и members ||
Значение AFTER_COMPLETE интерпретируется как: ставить задачу через N-й неделю после каждого завершения, заданную в параметре '''shift'''.
 
 
 
Описание параметра ''monthly'', параметры ''daily'' и ''weekly'' в этом случае не могут быть заданы. Указывает что задача должна повторяться ежемесяно, согласно установленным критериям:
 
{| class="wikitable" style="margin-top: 1em; width:100% "
 
!width="150"|Название !!width="200"| Тип !!width="50%"| Значение !! Примечание
 
 
|-
 
|-
|type ||enum || периодичность || допустимые значения AFTER_COMPLETE или DAY_OF_MONTH, или BY_CONDITION
+
|customData|| ||значения пользовательских полей задачи ||
 
|-
 
|-
|month ||int ||задает месяц в/через который должно действие/задача повторяться ||
+
|customData.customValue.id|| ||идентификатор пользовательского поля задачи ||
 
|-
 
|-
|day ||int ||задает день в/через который должна задача повторяться || не используется при type=AFTER_COMPLETE
+
|customData.customValue.value|| ||значение пользовательского поля задачи || (для полей типа набор задач, список сотрудников, набор записей справочника - идентификаторы через запятую в квадратных скобках)
|-
 
|dayType ||enum || определяет тип дня || используется при type=BY_CONDITION. Допустимые значения смотри в разделе [[ПланФикс API:Тип дня для повторяющейся задачи|тип дня для повторяющейся задачи]]
 
 
|-
 
|-
 
|}
 
|}
 +
Добавляемые даты могут задаваться в двух форматах. Первый формат короткий, указывается только число, год и месяц. Второй формат - полный, дополнительно указывается время начала/завершения, если того требует задача.
  
 
Ответ при удачном выполнении операции:
 
Ответ при удачном выполнении операции:
Строка 180: Строка 194:
 
   <task>
 
   <task>
 
     <id></id>
 
     <id></id>
 +
    <general></general>
 
   </task>
 
   </task>
 
</response>
 
</response>
Строка 187: Строка 202:
 
|-
 
|-
 
|task.id ||int ||идентификатор созданной задачи ||
 
|task.id ||int ||идентификатор созданной задачи ||
 +
|-
 +
|task.general ||int ||сквозной номер созданной задачи||
 
|-
 
|-
 
|}
 
|}
Строка 198: Строка 215:
 
</response>
 
</response>
 
</source>
 
</source>
{| class="wikitable" style="margin-top: 1em; width:100% "
 
!width="50"|Значение ''code'' !! Расшифровка
 
|-
 
|align="center"| 0000|| неизвестная ошибка
 
|-
 
|}
 
 
  
  
 
== Перейти ==
 
== Перейти ==
*[[ПланФикс API]]
 
 
*[[ПланФикс API:Задачи]]
 
*[[ПланФикс API:Задачи]]
 +
*[[Коды ошибок]]
 +
*[[Список функций]]

Текущая версия на 05:52, 26 августа 2021

Функция позволяет создать новую задачу. Формат запроса:

<?xml version="1.0" encoding="UTF-8"?>
<request method="task.add">
  <account></account>
  <sid></sid>
  <task>
    <template></template>
    <title></title>
    <description></description>
    <importance></importance>
    <status></status>
    <statusSet></statusSet>
    <checkResult></checkResult>
    <owner>
      <id></id>
    </owner>
    <parent>
      <id></id>
    </parent>
    <project>
      <id></id>
    </project>
    <client>
      <id></id>
    </client>
    <beginDateTime></beginDateTime>
    <startDateIsSet></startDateIsSet>
    <startDate></startDate>
    <startTimeIsSet></startTimeIsSet>
    <startTime></startTime>
    <endDateIsSet></endDateIsSet>
    <endDate></endDate>
    <endTimeIsSet></endTimeIsSet>
    <endTime></endTime>
    <isSummary></isSummary>
    <duration></duration>
    <durationUnit></durationUnit>
    <durationIsSet></durationIsSet>
    <workers>
      <users>
        <id></id>
        <id></id>
        <!-- ... -->
      </users>
      <groups>
        <id></id>
        <id></id>
        <!-- ... -->
      </groups>
    </workers>    
    <members>
      <users>
        <id></id>
        <id></id>
        <!-- ... -->
      </users>
      <groups>
        <id></id>
        <id></id>
        <!-- ... -->
      </groups>
    </members>      
    <auditors>
      <users>
        <id></id>
        <id></id>
        <!-- ... -->
      </users>
      <groups>
        <id></id>
        <id></id>
        <!-- ... -->
      </groups>
    </auditors>
    <customData>
      <customValue>
        <id></id>
        <value></value>
      </customValue>
      <!-- ... -->
    </customData>
  </task>
  <signature></signature>
</request>
Название Тип Значение Примечание
template id идентификатор шаблона задачи id в ответе task.getList с target = template
Реализация создания задачи по шаблону в API на текущий момент неполна.

Из шаблона устанавливается форма создания задачи (и соответственно имеющиеся в задаче пользовательские поля) и часть её свойств.

Из шаблона на текущий момент не устанавливаются: сроки задачи, аудиторы, аналитики, файлы, напоминания, чек-листы. Исполнители и участники устанавливаются из шаблона, если они отсутствуют в запросе.

title string название задачи
description string о чем задача, описание
importance enum срочность перечень допустимых значений смотри в разделе срочность задач
status enum/int статус задачи Допустимы значения из раздела Системные статусы задач или идентификаторы статусов, полученные в результате вызова функции taskStatus.getListOfSet
statusSet int процесс задачи Идентификаторы процессов можно получить в результате вызова функции taskStatus.getSetList
checkResult bool является ли задача задачей с обязательной проверкой результата
owner создатель задачи необязательное поле. Если не указано - берется пользователь от имени которого выполняется функция
owner.id int идентификатор пользователя если это контакт - нужно использовать userid из ответа contact.get
parent над задача необязательное поле
parent.id int идентификатор задачи, которая будет являться над задачей допустимо значение 0 (ноль)
project в рамках какого проекта поставлена задача
project.id int идентификатор проекта
client контрагент необязательный параметр
client.id int идентификатор контрагента (id из ответа contact.get) допустимо значение 0
beginDateTime DateTime дата/время создания - не обязательный, по-умолчанию текущие может заполняться, только если авторизация была сделана под сотрудником с правами администратора
startDateIsSet bool (0/1) задана ли дата начала работы
startDate Date дата начала работы в интерфейсе ПланФикс поле приступить к работе
startTimeIsSet bool (0/1) задано ли время начала работы
startTime Time время начала работы в интерфейсе ПланФикс поле приступить к работе
endDateIsSet bool (0/1) задана ли дата завершения работы
endDate Date дата завершения работы в интерфейсе ПланФикс поле закончить работу До
endTimeIsSet bool (0/1) задано ли время завершения работы
endTime Time время завершения работы в интерфейсе ПланФикс поле закончить работу До
isSummary bool (0/1) задача является суммарной
durationIsSet bool задана ли длительность
duration int длительность
durationUnit int 0 - минуты, 1 - часы, 2 - дни
workers корневой элемент списка исполнителей задачи
workers.users корневой элемент списка пользователей, которым поставлена задача
workers.users.id int идентификатор пользователя которому поставлена задача для контактов - нужно использовать userid из ответа contact.get
workers.groups корневой элемент списка групп, которым поставлена задача
workers.groups.id int идентификатор группы
members корневой элемент списка участников задачи
members.users корневой элемент списка участников задачи
members.users.id int идентификатор участника задачи для контактов - нужно использовать userid из ответа contact.get
members.groups корневой элемент списка групп участников
members.groups.id int идентификатор группы участников
auditors корневой элемент списка аудиторов задачи, содержимое аналогично workers и members
customData значения пользовательских полей задачи
customData.customValue.id идентификатор пользовательского поля задачи
customData.customValue.value значение пользовательского поля задачи (для полей типа набор задач, список сотрудников, набор записей справочника - идентификаторы через запятую в квадратных скобках)

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

Ответ при удачном выполнении операции:

<?xml version="1.0" encoding="UTF-8"?>
<response status="ok">
  <task>
    <id></id>
    <general></general>
  </task>
</response>
Название Тип Значение Примечание
task.id int идентификатор созданной задачи
task.general int сквозной номер созданной задачи


В противном случае будет возвращен ответ с ошибкой:

<?xml version="1.0" encoding="UTF-8"?>
<response status="error">
  <code></code>
</response>


Перейти