Tempo Servlet инструкция обслуживания

Руководство по Tempo сервлетам

Интеграция двух систем - довольно сложный процесс; изменение в одной системе должно отражаться в другой. Темп, однако, позволяет пользователям легко изменять рабочие журналы, будь то для простого редактирования, такого как исправление орфографии или изменение даты, или для более сложной задачи, такой как удаление рабочего журнала.

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

Службы Tempo предназначены для межмашинной связи и обычно не используются обычными пользователями. Сервисы предоставляют ВСЕ рабочие журналы независимо от разрешений. Поэтому они должны использоваться с осторожностью и должны быть открыты только для ограниченного числа людей / компьютеров. Администраторы JIRA контролируют доступ к сервисам Tempo с помощью фильтрации IP-адресов.

На этой странице подробно объясняются доступные функции в API службах Tempo и их использование в вашей компании. Пожалуйста, прокомментируйте эту страницу, если что-то не совсем понятно или у вас есть вопросы по этому вопросу.

GetWorklogs

Получает все рабочие журналы за указанный период, возвращает данные в указанном формате (XML, Excel или тестовые данные)

  1. URL: http (s): //yourserver.yourdomain/plugins/servlet/tempo-getWorklog/? DateFrom = 2011-01-01 & dateTo = 2011-01-31 & format = xml & diffOnly = false & tempoApiToken = my-token
    1. Это метод HTTP GET
    2. Токен API-интерфейса Tempo описан на странице контроля доступа.
  2. Параметры:
  1. dateFrom = yyyy-mm-dd
  2. dateTo = yyyy-mm-dd
    1. Обратите внимание, что пропуск обеих дат возвращает текущий «открытый период», который контролируется в JIRA Admin.
  3. format=xml|excel|testData
    1. Внешние приложения используют формат XML
    2. Смотрите эту страницу, если вы хотите включить пользовательские поля JIRA в экспорт XML
    3. testData создает XML, который можно использовать в качестве входных данных для обновления
  4. diffOnly = true|false(default)
    1. Внешние приложения используют diffOnly = true, чтобы получать только измененные записи с момента последнего GetWorklogs
    2. diffOnly возвращает только те записи, которые были изменены с момента последнего обновления (UpdateWorklogs) или помечены как внешняя ошибка (external_result не в порядке)
  5. errorsOnly = true|false(default)
    1. Возвращает список рабочих журналов, которые внешняя система помечала как ошибку или не подходит для экспорта (отсутствует billingKey или staffId или выражение недопустимо)
  6. validOnly=true|false(default)
    1. Возвращает список рабочих журналов, которые действительны для импорта, т. е. Имеют как billingKey, так и активность
  7. addBillingInfo=true|false(default)
    1. Добавляет платежную информацию в каждый рабочий журнал
  8. addIssueSummary=true|false(default)
    1. Добавляет поле с резюме задачи в каждый рабочий журнал
  9. addIssueDetails=true|false(default)
    1. Добавляет сведения о задаче, такие как тип задачи, исходная оценка, оставшаяся оценка, версия, компонент, ключ проекта, категория проекта, название проекта и приоритет задачи.
  10. addWorklogDetails=true|false(default)
    1. Добавляет детали рабочего журнала, такие как дата создания и дата обновления
  11. addUserDetails=true|false(default)
    1. Добавляет пользовательские данные, такие как полное имя пользователя и все пользовательские свойства JIRA. Пользовательские свойства отображаются только в формате XML 
  12. headerOnly=true|false(default)
    1. Возвращает только информацию заголовка (без данных). Используется для просмотра текущего «открытого периода».
  13. userName=userName
    1. Фильтры только по датам и имени пользователя
  14. billingKey = billingKeyId
    1. Фильтры только по датам и ключу выставления счета (счет, пункт расходов)
      Глобальные учетные записи не поддерживаются 
  15. addParentIssue=true|false(default)
    1.  Добавляет поле описания задачи в каждый рабочий журнал только в формате XML
  16. addParentIssue=true|false(default)
    1. Добавляет сведения о родительской задаче в каждый рабочий журнал в подзадаче. Действительно только в формате XML
  17. projectKey = projectKey
    1. Фильтры только по датам и ключам проекта
  18. issueKey = issueKey
    1. Фильтры только по датам и ключам выдачи
  19. addApprovalStatus=true|false(default)
    1. Добавляет статус утверждения расписания, рецензента, отметку времени и комментарий для расписания пользователя. 

                                                    authenticationStatus не является частью diffOnly = true

Пример результата из Jira во внешнюю систему:

Пример результатов из GetWorklogs


<?xml version="1.0" encoding="UTF-8"?>
<worklogs>
  <worklog>
    <worklog_id>46445</worklog_id>
    <issue_id>13189</issue_id>
    <issue_key>CLOUD-18</issue_key>
    <hours>8.0</hours>
    <work_date>2011-10-11</work_date>
    <username>erica</username>
    <staff_id>2410724289</staff_id>
    <billing_key>6</billing_key>
    <billing_attributes>Account=201405,Billable=3600,Box=true,Input=abc,longSelect=11,Number=123,Type=3<billing_attributes/>
    <activity_id>v10444</activity_id>
    <activity_name>CloudBay Sprint 4</activity_name>
    <work_description>Review</work_description>
    <parent_key/>
    <reporter>john</reporter>
    <external_id/>
    <external_tstamp/>
    <hash_value>dc11dffc091fcc72e7358067a9488fa1e31ce314</hash_value>
  </worklog>
</worklogs>

Информация о активности: активность для рабочего журнала является одной из следующих:

  • «Версия» ("Version") по задаче. Если по задаче существует более одной версии, версия, выбранная в качестве действия, является первой в порядке планирования. Идентификатор активности имеет префикс "v"
  • «Компонент» ("Component") по задаче. Если в задаче имеется более одного компонента, то выбранный компонент является самым последним (тот, который имеет самый высокий идентификатор). Идентификатор активности имеет префикс "c"
  • Если у задачи есть и «Компонент» ("Component"), и «Версия» ("Version"), версия выбирается в качестве действия

UpdateWorklogs

Обновляет рабочие журналы с внешней информацией (внешний идентификатор и внешние часы) из внешней системы на сервер Jira.

Примечание. Поле hash_value из getWorklog должно использоваться с обновлением для проверки целостности обновления.

  1. URL: http (s): //yourserver.yourdomain/plugins/servlet/tempo-updateWorklog/? TempoApiToken = my-token (info) Токен безопасности Tempo API описан на странице справки по сервлету Tempo.
    1. HTTP GET открывает простую форму для вставки ввода XML (используется для тестирования)
    2. HTTP POST принимает ввод XML и обновляет рабочие журналы в JIRA
      1. Входной XML должен быть отправлен как параметр: worklogs 
  2. Пример от POSTMAN или браузера:

  1. Пример ввода из внешней системы в Jira:

Пример ввода в UpdateWorklogs - POST-ed с параметром worklogs


<?xml version="1.0" encoding="UTF-8"?>
<worklog_updates>
  <worklog_update>
    <worklog_id>46445</worklog_id>
    <external_id>SAP-ID-12345</external_id>
    <external_hours>8.0</external_hours>
    <external_result>OK</external_result>
    <hash_value>dc11dffc091fcc72e7358067a9488fa1e31ce314</hash_value>
  </worklog_update>
</worklog_updates>
  1. Пример вывода из Jira во внешнюю систему:

Пример вывода из UpdateWorklogs


<?xml version="1.0" encoding="UTF-8"?>
<worklog_results>
  <worklog_result>
    <worklog_id>46445</worklog_id>
    <external_id>SAP-ID-12345</external_id>
    <result_tstamp>2011-10-12 11:13:48</result_tstamp>
    <external_hours>8.0</external_hours>
    <external_result>OK</external_result>
    <update_result>OK</update_result>
    <ms>125</ms>
  </worklog_result>
</worklog_results>

WorklogReport

Возвращает отчет рабочего журнала в формате XML, который можно использовать в качестве входных данных для инструмента отчетности (iReport).

  1. URL: http (s): //yourserver.yourdomain/plugins/servlet/tempo-getWorklogReport/? DateFrom = 2011-01-01 & dateTo = 2011-02-01 & billingKey = ABC & useExternalHours = true | false & tempoApiToken = my-token

Токен безопасности Tempo API описан на странице справки по сервлету Tempo.

  1. Параметры:
    1. dateFrom = yyyy-mm-dd
    2. dateTo = yyyy-mm-dd
    3. billingKey = ключ биллинга для использования в запросе
    4. useExternalHours = false | true (по умолчанию). Внешние часы - это часы, зарегистрированные во внешней системе с помощью updateWorklog.

BillingKeyList

Возвращает список доступных учетных записей (ключей биллинга), которые будут использоваться при создании отчетов.

  1. URL: http (s): //yourserver.yourdomain/plugins/servlet/tempo-billingKeyList&tempoApiToken=my-token

Токен безопасности Tempo API описан на странице справки по сервлету Tempo.

  1. Обратите внимание, что атрибут enabled может иметь следующие значения:
    1. «2» - Закрыто: учетная запись была закрыта вручную в учетных записях Tempo.
    2. «3» - Открыто: учетная запись открыта

HolidayList

Возвращает список зарегистрированных нерабочих дней (праздничных дней), которые будут использоваться при расчете часов во внешней системе.

  1. URL: http (s): //yourserver.yourdomain/plugins/servlet/tempo-holidayList/? TempoApiToken = my-token

Если вы добавляете параметр, подобный токену безопасности в приведенном выше URL, вам нужно добавить "?" до первого параметра.

По материалам Tempo Server: Tempo Servlet manual