XOps поддерживает двустороннюю синхронизацию между историями XOps и внешней платформой управления сервисами. Эта интеграция помогает согласовывать действия по расследованию на всех платформах, чтобы обновления, внесенные на одной платформе, отображались на другой.
Для получения дополнительной информации см. Создание двусторонних интеграций с платформами управления сервисами.
Чтобы настроить интеграцию ServiceNow, выполните следующие пять шагов.
Создайте поля, которые будут заполняться при выставлении заявки в Приложении Управления Cato (CMA).
Чтобы создать пользовательские поля:
- Войдите на платформу ServiceNow.
- Откройте любое происшествие.
- В верхнем баннере щелкните правой кнопкой мыши и перейдите в Настроить > Конструктор форм.
- При необходимости согласитесь попробовать Конструктор форм и выберите вид по умолчанию.
- Нажмите Добавить поле в таблицу происшествий.
-
Добавьте следующие поля:
-
ID аккаунта CMA
- Тип: Integer
- Свойства: Только для чтения, Обязательно, Активное
-
ID истории CMA
- Тип: String
- Свойства: Только для чтения, Обязательно, Активное
-
Служебные ключи API позволяют интегрироваться с внешними инструментами и сервисами и создаются в формате: R=<...>|K=<...>. Для получения дополнительной информации о создании ключа API, см. Создание ключей API для Cato API.
Создав ключ API сервиса, скопируйте и сохраните его, чтобы ввести на платформе ServiceNow.
Создайте на платформе ServiceNow защищенное системное свойство для хранения ключа API.
Чтобы создать защищенное системное свойство:
- Перейдите по адресу https://<ваш экземпляр>.service-now.com/sys_properties_list.do
- Нажмите Новый.
-
В форме Новая запись системных свойств добавьте следующие детали:
- Имя: cma_prod_api_key
- Тип: Password2
- Значение: сервисный ключ API, который вы создали на шаге 2
- Нажмите Отправить.
Создайте REST-сообщение для отправки деталей из инцидентов ServiceNow в Cato:
Чтобы создать REST-сообщение:
- На платформе ServiceNow перейдите в Все>Системные веб-сервисы>Исходящие>REST-сообщения.
- Нажмите Новый.
-
В форме REST-сообщение добавьте следующие детали:
- Имя: добавьте имя для REST-сообщения
- Конечная точка: https://<ваше имя аккаунта Cato>.cc.catonetworks.com/api/v1/graphql2
- Тип аутентификации: без аутентификации
-
Методы HTTP: нажмите Новый и добавьте следующие детали:
- Имя: добавьте имя
- Метод HTTP: POST
- Конечная точка: https://<ваше имя аккаунта Cato>.cc.catonetworks.com/api/v1/graphql2
- Нажмите Отправить.
Создайте бизнес-правило для триггера REST-сообщения.
Чтобы создать бизнес-правило:
- На платформе ServiceNow перейдите в Все>Системные определения>Бизнес-правило.
- Нажмите Новый.
-
В форме Новая запись бизнес-правила добавьте следующие детали:
- Имя: добавьте имя для бизнес-правила
- Таблица: происшествие
- Когда: После
- Обновить: True (Установите флажок)
- Условие фильтра: изменение комментариев
-
На вкладке Дополнительно добавьте этот скрипт:
(function executeRule(current, previous) { try { var lastComment = current.comments.getJournalEntry(1) || ''; lastComment = stripJournalHeader(lastComment); if (!lastComment) { gs.info("GraphQL webhook: Empty comment, skipping " + current.number); return; } var accountId = current.u_cma_account_id; var storyId = current.u_cma_story_id; gs.info("GraphQL webhook: accountId " + accountId + " story " + storyId); if (!accountId || !storyId) { gs.error("GraphQL webhook: Missing accountId/storyId for " + current.number); return; } var gqlQuery = "mutation CreateStoryComment($accountId: ID!, $input: AddStoryCommentInput!) {" + " xdr(accountId: $accountId) {" + " addStoryComment(input: $input) {" + " comment { id type __typename }" + " __typename" + " }" + " __typename" + " }" + "}"; var body = { query: gqlQuery, variables: { accountId: accountId.toString(), input: { type: "USER", storyId: storyId.toString(), text: lastComment } } }; var apiKey = gs.getProperty('cma_prod_api_key'); var r = new sn_ws.RESTMessageV2('Update XDR story comments CMA Prod', 'post'); r.setRequestHeader('Content-Type', 'application/json'); r.setRequestHeader('Accept', 'application/json'); r.setRequestHeader('x-api-key', apiKey); r.setRequestBody(JSON.stringify(body)); //var response = r.execute(); // can be changed to Async - only for debug purposes var eccSysId = r.executeAsync(); gs.info("GraphQL webhook queued, ECC sys_id=" + eccSysId); var status = response.getStatusCode(); var responseBody = response.getBody(); // Safe logging (see next section for masking) gs.info("GraphQL webhook: status=" + status); gs.info("GraphQL webhook: responseBody=" + responseBody); } catch (ex) { gs.info("GraphQL webhook: Failed: " + ex.message); } function stripJournalHeader(text){ text = text || ''; if (text.indexOf('\n') > -1) { return text.split('\n').slice(1).join('\n').trim(); } return text.trim(); } })(current, previous); - Нажмите Отправить.
Вы можете определить проблемы и ошибки в следующих местах:
- Системные журналы: Перейдите в Системные журналы > Все и найдите сообщения, содержащие
GraphQL webhook. - Запись ECC: Перейдите по адресу https://
.service-now.com/sys_ecc_queue_list.do и найдите запись ECC с зафиксированным ECC sys_id.
0 комментариев
Войдите в службу, чтобы оставить комментарий.