POST Agents/Find/FindFromRestrictions2
POST /api/v1/Agents/Find/FindFromRestrictions2
Execute a Find operation and return a page of results.
The criteria for the Find are passed in directly, not fetched by a restriction storage provider. The columns of the result are calculated based on the restriction.
Archive Restriction strings are OData or SQL-ish. They are parsed and converted into ArchiveRestrictions.
For example:
"name begins 'Super'"
"category = 3"
"category in (2,3,4)"
"xstop set"
"registered after '2014.3.4'"
"registered dateBetween ('2014.11.29', '2014.12.25')"
Unary operators:
"updatedDate lastWeek", "assocId currentAssociate"
Brackets and or
AND and OR can be used to combine terms. AND has a higher priority than OR
"business = 2 AND name contains 'super'"
Brackets can be used for grouping.
"(business = 2 or category = 3) and name contains 'super'"
Aggregation operators
The column names can encode grouping and summarizing. You add functions and modifiers to the column name to trigger aggregation.
Example: group last names together, and inject a header row for each group.
GroupBy(lastName):Header
Example: count instances of middle names, and hide the individual rows, report just the totals for each group using a footer. Note how the modifiers stack.
Count(middleName):HideDetail:Footer
Example: the aggregator functions can nest, so you can say
GroupBy(DatePart(personUpdatedDate):YearMonth):Header
Strings
Use the begins or contains operators to do string searches. You can also use the normal = operator to do string exact match checks.
Use backslash to escape single quotes in strings (note that backslash needs to be doubled because c# also uses backslash escapes):
"department contains 'Bob\\'s'"
Query String Parameters
Parameter Name | Type | Description |
---|---|---|
$select | string | Optional comma separated list of properties to include in the result. Other fields are then nulled out to reduce payload size: "Name,department,category". Default = show all fields. |
POST /api/v1/Agents/Find/FindFromRestrictions2?$select=name,department,category/id
Request Headers
Parameter Name | Description |
---|---|
Authorization | Supports 'Basic', 'SoTicket' and 'Bearer' schemes, depending on installation type. |
X-XSRF-TOKEN | If not using Authorization header, you must provide XSRF value from cookie or hidden input field |
Content-Type | Content-type of the request body: application/json , text/json , application/xml , text/xml , application/x-www-form-urlencoded , application/json-patch+json , application/merge-patch+json |
Accept | Content-type(s) you would like the response in: application/json , text/json , application/xml , text/xml , application/json-patch+json , application/merge-patch+json |
Accept-Language | Convert string references and multi-language values into a specified language (iso2) code. |
SO-Language | Convert string references and multi-language values into a specified language (iso2) code. Overrides Accept-Language value. |
SO-Culture | Number, date formatting in a specified culture (iso2 language) code. Partially overrides SO-Language/Accept-Language value. Ignored if no Language set. |
SO-TimeZone | Specify the timezone code that you would like date/time responses converted to. |
SO-AppToken | The application token that identifies the partner app. Used when calling Online WebAPI from a server. |
Request Body: request
Restrictions, ProviderName, PageSize, PageNumber
Property Name | Type | Description |
---|---|---|
Restrictions | String | |
ProviderName | String | |
PageSize | Integer | |
PageNumber | Integer |
Response:
OK
Response | Description |
---|---|
200 | OK |
Response body: FindResults
Property Name | Type | Description |
---|---|---|
ArchiveColumns | array | Array of ColumnInfo column specifications |
ArchiveRows | array | Array of archive list items, i.e., the service layer carrier for archive rows. These are the find results, represented as archive rows |
RowCount | int32 | Count of rows, independent of paging. If you order up page 1 with page size 50, the row count may still be 279, that being the number of rows that would have been returned in a paging-off situation |
TableRight | TableRight | The carrier's table right |
FieldProperties | object | Field property dictionary mapping field names to field access rights. |
Sample request
POST /api/v1/Agents/Find/FindFromRestrictions2
Authorization: Basic dGplMDpUamUw
Accept: application/json; charset=utf-8
Accept-Language: en
Content-Type: application/json; charset=utf-8
{
"Restrictions": "a",
"ProviderName": "Quitzon LLC",
"PageSize": 717,
"PageNumber": 970
}
Sample response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"ArchiveColumns": [
{
"DisplayName": "Kuvalis-Goodwin",
"DisplayTooltip": "in",
"DisplayType": "voluptas",
"CanOrderBy": true,
"Name": "Cummings, Ruecker and Blanda",
"CanRestrictBy": true,
"RestrictionType": "aut",
"RestrictionListName": "Abernathy-Mertz",
"IsVisible": true,
"ExtraInfo": "adipisci",
"Width": "id",
"IconHint": "ipsum",
"HeadingIconHint": "veniam"
}
],
"ArchiveRows": [
{
"EntityName": "O'Kon LLC",
"PrimaryKey": 89,
"ColumnData": {
"fieldName": {
"DisplayValue": "commodi",
"TooltipHint": "nisi",
"LinkHint": "mollitia"
}
},
"LinkHint": "cumque",
"StyleHint": "est",
"TableRight": null,
"FieldProperties": {
"fieldName": {
"FieldRight": null,
"FieldType": "System.Int32",
"FieldLength": 574
}
}
}
],
"RowCount": 957,
"TableRight": null,
"FieldProperties": {
"fieldName": {
"FieldRight": null,
"FieldType": "System.String",
"FieldLength": 717
}
}
}