RSA Archer API Ресурс и разъяснение содержания

Я могу получить доступ как к RSA REST, так и к API на основе WSDL. Их документы ссылаются на содержание и ресурсы. Однако при входе в реальный инструмент я могу получить доступ к таким вещам, как билет на инцидент и тому подобное.

Билеты на инциденты будут иметь INC-1234, который будет строкой. Но API принимает целочисленные значения для контента или ресурса при поиске по идентификатору.

self.wsdl['search'].service.SearchRecordsByReport(
                sessionToken=self.token,
                reportIdOrGuid=14,
                pageNumber=1
)

Если я не предоставлю целое число, я получу 404 с простым "сообщением": "Запрос недействителен". в REST и что-то более сложное, если я передаю значение в SOAP

Итак, Вопрос 1. Есть ли ресурс RSA, который коррелирует / демистифицирует отношения вызовов в API с фактическими названиями вещей, с которыми я имею дело в пользовательском интерфейсе.

Вопрос 2. Есть ли библиотека кодов, в которой кто-то ранее создал / изменил билеты на инциденты rsa?

1 ответ

Если вы говорите о получении contentID записи, вы можете получить его двумя способами: в GUI наведите курсор мыши на свое ключевое поле (ссылка, по которой можно кликнуть), и в левом нижнем углу лучника отобразится что-то похожее на "123456|100|17", где первый набор - это contentID этой записи.

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

Если вы хотите сделать все это из кода, я обычно собираю это вместе так:

  1. Выполнить поиск отчета; Получите идентификаторы полей из отчета (вероятно, важно убедиться, что ваше ключевое поле включено в графический интерфейс отчета, чтобы вы могли определить, с какой записью вы имеете дело); сделать другой вызов API (возможно, REST, поскольку он действительно обрабатывает метаданные), чтобы получить имя поля и т. д. (или вы можете сделать все это статическим и просто жестко закодировать имена полей с помощью соответствующих GUIDS)
  2. Внутри тега вы можете поймать атрибут contentID. Затем сделайте шаг вниз и сравните тег поля, соответствующий вашему ключевому полю, и у вас будет contentID этой записи.
  3. Делайте записи обновления, удаления и т. Д. Все, что вам нужно сделать.

Если вы ищете конкретный идентификатор отчета, сделайте вызов REST, чтобы получить все отчеты, и он вернет имена и идентификаторы отчетов, а затем займитесь своими делами, делая другие вызовы.

Недавно я столкнулся с подобной ситуацией, когда мне нужно искать значение поля (например, "INC-1234") с помощью API Archer.

Итак, для вашего вопроса 1: метод, который я нашел удобным для моих требований, - это "ExecuteQuickSearchWithModuleIds", который может искать значение и предоставляет все ContentID, которые имеют эти значения (с учетом ModuleId).

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ExecuteQuickSearchWithModuleIds xmlns="http://archer-tech.com/webservices/">
      <sessionToken>ABC123ABC123ABC123ABC123ABC1</sessionToken>
      <moduleIds>123</moduleIds>
      <keywords>INC-1234</keywords>
      <pageNumber>9999999</pageNumber>
      <pageSize>9999999</pageSize>
    </ExecuteQuickSearchWithModuleIds>
</soap:Body>
</soap:Envelope>

И для вашего вопроса 2 я нашел богатую библиотеку для Python3 Archer RSA.

Надеюсь, это поможет кому-то, кто задается этим вопросом.

Другие вопросы по тегам