0

我可以访问基于 RSA REST 和 WSDL 的 API。他们的文件涉及内容和资源。但是,当登录到实际工具时,我可以访问诸如事件票之类的东西。

事件票证将具有 INC-1234,这将是一个字符串。但 API 在按 ID 搜索时采用整数值作为内容或资源。

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

如果我不提供整数,我会得到一个带有简单“消息”的 404:“请求无效。” 在 REST 中,如果我在 SOAP 中传递一个类似的值,则更复杂一些

所以,问题 1. 是否有一个 RSA 资源可以将 API 中的调用关系与我在 UI 中处理的事物的实际名称相关联/揭开神秘面纱。

问题 2. 是否有人在之前创建/修改了 rsa 事件单的代码库?

4

2 回答 2

2

如果您正在谈论获取记录 contentID,您可以通过两种方式获取它,在 GUI 中将鼠标悬停在您的关键字段(可点击链接)上,然后在弓箭手的左下角显示类似于“123456|100|”的内容。 17" 其中第一组是该记录的 contentID。

如果您正在谈论获取报告 ID(如上所示的 14 个),您可以在转到主报告列表时执行相同的操作,它会显示在浏览器的右下角。

如果你想从代码中完成这一切,我通常会像这样拼凑起来:

  1. 执行报告搜索;从报告 <FieldDefinition> 中获取字段 ID(确保您的关键字段包含在报告 GUI 中可能很重要,这样您就可以识别您正在处理的记录);进行另一个 API 调用(可能是 REST,因为它确实处理元数据)以获取字段名称等(或者您可以将其全部设为静态并使用相应的 GUIDS 对字段名称进行硬编码)
  2. 在 <Record> 标记中,您可以获取 contentID 属性。然后退一步比较与您的关键字段匹配的字段标签,您将获得该记录的 contentID。
  3. 无论您需要做什么,都可以进行记录更新、删除等。

如果您正在寻找特定的报告 ID,请进行 REST 调用以获取所有报告,它会返回报告名称和 ID,然后继续您的业务进行其他调用。

于 2018-02-16T22:26:52.393 回答
0

我最近遇到了类似的情况,我必须使用 Archer 的 API 搜索字段值(例如“INC-1234”)。

因此,对于您的问题 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找到了一个丰富的库。

希望这对解决这个问题的人有所帮助。

于 2019-09-09T07:23:57.587 回答