Advanced LoadCollection with properties

This variation of the LoadCollection API returns the records of the specified IDO collection. This endpoint includes the property list as a query parameter instead of a path parameter. Unlike the basic LoadCollection API and the LoadCollection with properties API, this variation offers various options to filter the result.
LoadCollection, Advanced, with properties

Parameters

Name In Required? Description
responsetype Path Yes Response request data format: Supply any of these values:
  • xml
  • json
  • js
  • schema
ido Path Yes This is the name of the IDO collection.
props Query Yes This is a comma-delimited list of properties.
filter Query No This parameter restricts the result set. This can be any valid SQL WHERE clause.
orderby Query No This parameter is a comma-delimited list of properties that specifies the order in which the result set should be sorted. To have a property sorted in descending order, use the DESC keyword after the property name.
recordcap Query No This parameter specifies how many records are to be retrieved in each request. These are the valid values:
  • -1- This specifies that the system default record cap is to be used. This is typically 200, but it can be any number as set by the system administrator.
  • 0 - This value specifies that all records are to be retrieved, regardless of any record cap settings.
  • Any other positive integer specifies the number of records that are to be retrieved.
distinct Query No This parameter specifies that a set of data that represents only distinct combinations of requested properties is to be returned.
clm Query No This parameter is the name of a custom load method.

This parameter can be used in conjunction with the clmparms parameter.

clmparms Query No This parameter is used for a comma-delimited list of custom load methods.
loadtype Query No This parameter is used for load collection paging. It is used in conjunction with the bookmark parameter.

To use, specify one of these types:

  • FIRST
  • NEXT
  • PREV
  • LAST
bookmark Query No This parameter is for the bookmark ID. Bookmark IDs serve as a reference when you want to get to the next or previous records in a collection.

The “bookmark” value uses this format:

<B><P><p>UserId</p></P><D><f>false</f></D><F><v>1</v></F><L><v>2</v></L></B>

where:

  • <B></B> is the bookmark envelope tag.
  • <P></P> is the property name of the primary key.
  • <D></D> is a flag that, if TRUE, specifies that records are to be read in descending order.
  • <f></f> is the value of the <D></D> element (TRUE or FALSE).
  • <F></F> is the first row in the collection.
  • <L></L> is the last row in the collection.
  • <v><v> is the value of the row for the given property name.

For an example of this, see Example: Bookmark IDs in LoadCollection responses.

pqc Query No This parameter specifies a method to execute once for each row in the result set after the query is completed.

This is the equivalent of the WinStudio PQ option in Load/Save Overrides and uses the same syntax.

ro Query No This parameter specifies that the return results are to be marked as "Read Only".

When this is set to True, retrieved records do not include the _ItemID property, which can be substantial for update and delete operations.

Headers

Name Description
Authorization If the API is called directly, then a Mongoose security token is obtained through a call to the GetSecurityToken API.

If the API is called through ION API, then a valid OAuth2.0 bearer token is provided by ION API.

X-Infor-MongooseConfig This is the name of a configuration that is available on the application server. This is required only when using the Mongoose API through the ION API.

Request data

None

Response data in XML format

<MGRestResponse
	xmlns="http://schemas.datacontract.org/2004/07/"
	xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <Items>
    <item>
      <p>1</p>
      <p>sa</p>
    </item>
  </Items>
  <Message i:nil="true"/>
  <MessageCode>0</MessageCode>
</MGRestResponse>

Response data in JSON format

{
   "Items": [
      [ "1", "sa" ]
   ],
   "Message": null,
   "MessageCode": 0
}

Response data in JSON Stream format

{
   "Message": "Success",
   "MessageCode": 0,
   "Items": [
      {
         "UserId": 1,
         "Username": "sa"
      }
   ]
}

Response data in Full Schema format

<NewDataSet>
  <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="UserNames" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="UserNames">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="UserId" msdata:Caption="sUserID" type="xs:decimal"/>
                <xs:element name="Username" msdata:Caption="sUsername" type="xs:string"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <UserNames>
    <UserId>1</UserId>
    <Username>sa</Username>
  </UserNames>
</NewDataSet>

Example

This example code retrieves the user ID, username, and user description of the 'sa' user from the Users table. Notice that the properties are provided as a query parameter.

string xml = string.Empty;
 
using ( HttpClient client = new HttpClient() )
{
   // optionally, you can use json as the response type
   string ido = "UserNames";
   string properties = "UserId, Username, UserDesc";
   string filter = "Username%20LIKE%20'sa'";
   string requestUrl = $"http://server/IDORequestService/MGRESTService.svc/xml/{ido}/adv?props={properties}&filter={filter}";
 
   // provide token in the Authorization header
   client.DefaultRequestHeaders.TryAddWithoutValidation(
      "Authorization",
      "b/XdI6IQzCviZOGJ0E+002DoKUFOPmVDkwpQDbQj…==" );
 
   HttpResponseMessage response = client.GetAsync( requestUrl ).Result;
 
   using ( HttpContent content = response.Content )
   {
      Task<string> result = content.ReadAsStringAsync();
      xml = result.Result;
   }
}