Get a DM Object

post/datamart.fetch/{objectId}

Retrieves the object's (Data Feed, Data Source, Datamart) row level data. A filter can be applied.

If you want to achieve better performance when fetching large data sets and if you do not need the total number of items in the table – use the /datamart.fetchnocount/{typedId} endpoint instead.

You can choose fields to be returned in the response by employing the resultFields or valueFields filter:

resultFields: returns key-value pairs as objects. This is the more friendly response compared to valueFields but the server fetches all fields from the database in the backend which might result in a slower performance. See the List Product's listProductsResponseExample_resultFields response example.

valueFields: returns just an array of values. Use this option if a better performance is required. See the List Product's listProductsResponseExample_valueFields response example.

When distinctResults is set to true, it applies only to the first column specified in the valueFields array. For example, if "valueFields": ["ConditionType", "TableNumber"] is used, only distinct values for ConditionType are returned.

Please note: When paging is applied, use a deterministic sort (for example, "sortBy":["InvoiceLineID"]). If no sorting is defined when paging, you may get duplicates in the response.

Securitybasic or X-PriceFx-jwt
Request
path Parameters
objectId
required
string

Use one of the following object identifiers:

  • typedUniquename – Format: "<typeCode>.<uniqueName>" (e.g., DMDS.SalesTransactions)
  • typedId – Format: "<dbId>.<typeCode>" (e.g., 123456.DMDS)'
  • "*" (asterisk) – Asterisk can be used when you are providing a source$query in data within the request body
Example: 123456.DMDS || DMDS.Transactions || DM.TxDM || *
query Parameters
timeout
string
Default: "60"

Set this parameter to override the default timeout (60 seconds) of the query. The maximum allowed timeout is 300 seconds. The default timeout value and the maximum timeout value can be configured in the backend. Setting higher timeout can be useful, for example, when a query takes long time (e.g., when processing large tables).

Example: timeout=20
Request Body schema: application/json
endRow
number
oldValues
any
operationType
string non-empty
startRow
number
textMatchStyle
string non-empty
object
_constructor
string non-empty
operator
string non-empty
Array of objects non-empty unique
Array (non-empty)
fieldName
string non-empty
operator
string non-empty
value
string non-empty
sortBy
Array of strings
resultFields
Array of strings

The list of fields you want to return.

valueFields
Array of any
distinctResults
boolean

set to true to return only unique values.

Responses
200

OK

Response Schema: application/json
object
node
string non-empty
startRow
number
data
Array of objects non-empty unique
endRow
number
totalRows
number
status
number
Request samples
application/json
{
  • "endRow": 300,
  • "oldValues": null,
  • "operationType": "fetch",
  • "startRow": 0,
  • "textMatchStyle": "exact",
  • "data": {
    • "_constructor": "AdvancedCriteria",
    • "operator": "and",
    • "criteria": [
      • {
        • "fieldName": "currency",
        • "operator": "iEquals",
        • "value": "EUR"
        }
      ]
    },
  • "sortBy": [
    • "InvoiceLineID"
    ],
  • "resultFields": [
    • "ProductID",
    • "label",
    • "unitOfMeasure",
    • "currency",
    • "formulaName",
    • "lastUpdateDate"
    ]
}
Response samples
application/json
{
  • "response": {
    • "node": "string",
    • "startRow": 0,
    • "data": [
      • { }
      ],
    • "endRow": 0,
    • "totalRows": 0,
    • "status": 0
    }
}