archerrsa-archer-grc

How to get ID's of the records in Cross-reference field using Web API in RSA Archer?


I need to get the ID's of the records in a cross-reference field using Web API. Is there an API method to solve this type of task? Or at least I want to know, how to get the value of a specific field?

There are many different methods described in the documentation for operating with list fields (such as GetValuesListValue) and I wonder if there a same way to solve my task. I can use ExecuteSeach method, but it isn't very convenient.


Solution

  • Alexander, you can either use the REST or Webservices APIs.

    REST APIs

    Using the Get content by id, /api/core/content/*contentid* Then you can pass OData to just get the field (id) contents by passing the following in the body {"Value":"?$filter=FieldId eq '*field id of cross-reference field*'"}

    Webservices APIs

    You can call the /ws/record.asmx GetRecordById passing the following

    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <GetRecordById xmlns="http://archer-tech.com/webservices/">
          <sessionToken>session token</sessionToken>
          <moduleId>int</moduleId>
          <contentId>int</contentId>
        </GetRecordById>
      </soap:Body>
    </soap:Envelope>
    

    Then you'd have to iterate through the returned XML to get the field contents.