Insert one record into an IDO collection (a simpler alternative to the bulk update tool for single-record inserts). Call infor-syteline_get_ido_info(ido) first to learn the exact property names and which are required, then provide the new record’s properties as Name/Value pairs using those names VERBATIM — a Property whose Name is not a real property of the IDO fails the whole call. Requires Edit/Insert privileges on the IDO in the target configuration. HTTP status is 200 even for logical failures — check MessageCode/Message.
Deletes one record from an IDO collection by its ItemId (returned by infor-syteline_load_collection). Requires Delete privileges on the IDO in the target configuration. HTTP status is 200 even for logical failures — check MessageCode/Message.
Discover an IDO’s schema BEFORE querying or modifying it: returns each property’s name, data type, length, required/read-only flags, the IDO’s key properties (Keys), and subcollections. ALWAYS call this first for any IDO you have not already inspected, and copy property and key names VERBATIM into load/filter/update calls — those operations fail if you pass a name that is not an exact property of the IDO. Important nuances: (a) Keys are the primary-key structure (best as filter criteria) and are not guaranteed to be fetchable column names; (b) not every listed property is queryable in load_collection — derived/computed properties (names starting with Der) and some internal fields fail in a properties list, so prefer plain stored fields; (c) property names vary by SyteLine customization, so never assume names — read them here. Read the actual Keys from this response; do not reuse remembered key names (they vary by IDO, tenant, and version). Works without IDO Read data privileges. Note: there is no API to LIST the available IDOs — the IDO name itself must already be known.
Invokes a named method on an IDO (business logic such as posting, validation, or document generation). Use the exact IDO and method names (method names are case-sensitive; call infor-syteline_get_ido_info if unsure of the IDO). The request body is a JSON array of parameter values in positional order (use an empty string for output-only parameters); output parameters come back in the response’s Parameters array. Method execution may modify ERP data — treat as a write operation. HTTP status is 200 even for logical failures — always check the Success field.
Returns the list of SyteLine configurations (sites/databases) available on the server. This is the only operation that does not require the X-Infor-MongooseConfig header, and it needs no IDO privileges — useful as a connectivity check and to discover valid values for the connection’s SyteLine Configuration field.
Query records from a SyteLine IDO collection (a SQL-backed, table-like view). ALWAYS call infor-syteline_get_ido_info(ido) first to discover exact property names and Keys, then query here. CRITICAL behaviors: (1) SILENT FAILURE on bad property names: if ANY name in properties, filter, or orderBy is not a queryable property of the IDO, the ENTIRE query fails — typically Success=false with Message=null (no indication of WHICH name is wrong), or zero Items; never a partial result. Copy names verbatim from get_ido_info, never guess, and if a multi-property query fails, re-test the properties one at a time (a single bad property returns a clear ‘Property X not found on <IDO>’ message) to find the culprit. (2) Not every property from get_ido_info is queryable here: derived/computed properties (names starting with Der) and some internal fields cannot be requested in the properties list and will fail the query — prefer plain stored fields. (3) Keys vs. fetchable fields: the Keys from get_ido_info are the primary-key structure (best used as filter criteria), not a guarantee of a fetchable column; property names also differ from intuition (e.g. CoLine, not CoLineNum). (4) Do NOT use properties='' on large IDOs — many have hundreds of properties (SLItems ~615, SLCos ~442) and '' over thousands of rows times out (HTTP 504). Request only the specific properties you need. (5) Always set a small recordCap (e.g. 50-200) when exploring or building a report; the Mongoose default can return very large result sets and time out. (6) Pagination: results come back in the Items array (NOT ‘Records’). If MoreRowsExist=true, call again with loadType=‘NEXT’ and bookmark set to the Bookmark from the previous response; repeat until MoreRowsExist=false. (7) HTTP status is 200 even for logical failures — always check Success (a privilege failure names the exact IDO needing a Read grant). There is no API to list IDOs, and IDO/field names vary by SyteLine customization (a site may expose names like STI_SLCos) — always rely on get_ido_info rather than assumed names. Standard IDOs: SLItems (items/products), SLCustomers (customers), SLCos (customer orders), SLCoitems (order lines), SLPos (purchase orders), SLPoitems (PO lines), SLItemlocs/SLItemwhses (inventory), UserNames (users).
Insert, update, or delete one or more records in an IDO collection in a single batch. Each change specifies an Action (1=insert, 2=update, 4=delete), the ItemId for update/delete (returned by load_collection), and the modified Properties. Call infor-syteline_get_ido_info(ido) first for the exact property names and Keys, and use property names VERBATIM — a Property whose Name is not a real property of the IDO fails the whole call. Requires Edit privileges on the IDO in the target configuration. HTTP status is 200 even for logical failures — always check Success.
Update one record in an IDO collection (a simpler alternative to the bulk update tool for single-record edits). Requires the record’s ItemId (returned by load_collection) and the changed properties as Name/Value pairs with Modified set true, using exact property names from infor-syteline_get_ido_info — a Property whose Name is not a real property of the IDO fails the whole call. Requires Edit privileges on the IDO in the target configuration. HTTP status is 200 even for logical failures — check MessageCode/Message.
Insert one record into an IDO collection (a simpler alternative to the bulk update tool for single-record inserts). Call infor-syteline_get_ido_info(ido) first to learn the exact property names and which are required, then provide the new record’s properties as Name/Value pairs using those names VERBATIM — a Property whose Name is not a real property of the IDO fails the whole call. Requires Edit/Insert privileges on the IDO in the target configuration. HTTP status is 200 even for logical failures — check MessageCode/Message.Parameters:
Deletes one record from an IDO collection by its ItemId (returned by infor-syteline_load_collection). Requires Delete privileges on the IDO in the target configuration. HTTP status is 200 even for logical failures — check MessageCode/Message.Parameters:
Parameter
Type
Required
Default
Description
ido
string
Yes
—
IDO name (e.g. SLItems, SLCustomers)
itemId
string
Yes
—
Record identity from the load tool (_ItemId)
Show inputSchema
{ "type": "object", "properties": { "PCID": { "type": "string", "description": "Pink Connect ID for the authenticated connection" }, "ido": { "type": "string", "description": "IDO name (e.g. SLItems, SLCustomers)" }, "itemId": { "type": "string", "description": "Record identity from the load tool (_ItemId)" } }, "required": [ "PCID", "ido", "itemId" ]}
Discover an IDO’s schema BEFORE querying or modifying it: returns each property’s name, data type, length, required/read-only flags, the IDO’s key properties (Keys), and subcollections. ALWAYS call this first for any IDO you have not already inspected, and copy property and key names VERBATIM into load/filter/update calls — those operations fail if you pass a name that is not an exact property of the IDO. Important nuances: (a) Keys are the primary-key structure (best as filter criteria) and are not guaranteed to be fetchable column names; (b) not every listed property is queryable in load_collection — derived/computed properties (names starting with Der) and some internal fields fail in a properties list, so prefer plain stored fields; (c) property names vary by SyteLine customization, so never assume names — read them here. Read the actual Keys from this response; do not reuse remembered key names (they vary by IDO, tenant, and version). Works without IDO Read data privileges. Note: there is no API to LIST the available IDOs — the IDO name itself must already be known.Parameters:
Parameter
Type
Required
Default
Description
ido
string
Yes
—
IDO name (e.g. SLItems, SLCustomers, UserNames)
Show inputSchema
{ "type": "object", "properties": { "PCID": { "type": "string", "description": "Pink Connect ID for the authenticated connection" }, "ido": { "type": "string", "description": "IDO name (e.g. SLItems, SLCustomers, UserNames)" } }, "required": [ "PCID", "ido" ]}
Invokes a named method on an IDO (business logic such as posting, validation, or document generation). Use the exact IDO and method names (method names are case-sensitive; call infor-syteline_get_ido_info if unsure of the IDO). The request body is a JSON array of parameter values in positional order (use an empty string for output-only parameters); output parameters come back in the response’s Parameters array. Method execution may modify ERP data — treat as a write operation. HTTP status is 200 even for logical failures — always check the Success field.Parameters:
Parameter
Type
Required
Default
Description
ido
string
Yes
—
IDO name the method belongs to
method
string
Yes
—
IDO method name to invoke
body
string[]
Yes
—
Method parameter values in positional order (use empty string for output-only parameters)
Show inputSchema
{ "type": "object", "properties": { "PCID": { "type": "string", "description": "Pink Connect ID for the authenticated connection" }, "ido": { "type": "string", "description": "IDO name the method belongs to" }, "method": { "type": "string", "description": "IDO method name to invoke" }, "body": { "type": "array", "items": { "type": "string" }, "description": "Method parameter values in positional order (use empty string for output-only parameters)" } }, "required": [ "PCID", "ido", "method", "body" ]}
Returns the list of SyteLine configurations (sites/databases) available on the server. This is the only operation that does not require the X-Infor-MongooseConfig header, and it needs no IDO privileges — useful as a connectivity check and to discover valid values for the connection’s SyteLine Configuration field.Parameters:
Parameter
Type
Required
Default
Description
configGroup
string
No
—
Configuration group name. Use to list only the members of the specified configuration group.
Show inputSchema
{ "type": "object", "properties": { "PCID": { "type": "string", "description": "Pink Connect ID for the authenticated connection" }, "configGroup": { "type": "string", "description": "Configuration group name. Use to list only the members of the specified configuration group." } }, "required": [ "PCID" ]}
Query records from a SyteLine IDO collection (a SQL-backed, table-like view). ALWAYS call infor-syteline_get_ido_info(ido) first to discover exact property names and Keys, then query here. CRITICAL behaviors: (1) SILENT FAILURE on bad property names: if ANY name in properties, filter, or orderBy is not a queryable property of the IDO, the ENTIRE query fails — typically Success=false with Message=null (no indication of WHICH name is wrong), or zero Items; never a partial result. Copy names verbatim from get_ido_info, never guess, and if a multi-property query fails, re-test the properties one at a time (a single bad property returns a clear ‘Property X not found on <IDO>’ message) to find the culprit. (2) Not every property from get_ido_info is queryable here: derived/computed properties (names starting with Der) and some internal fields cannot be requested in the properties list and will fail the query — prefer plain stored fields. (3) Keys vs. fetchable fields: the Keys from get_ido_info are the primary-key structure (best used as filter criteria), not a guarantee of a fetchable column; property names also differ from intuition (e.g. CoLine, not CoLineNum). (4) Do NOT use properties='' on large IDOs — many have hundreds of properties (SLItems ~615, SLCos ~442) and '' over thousands of rows times out (HTTP 504). Request only the specific properties you need. (5) Always set a small recordCap (e.g. 50-200) when exploring or building a report; the Mongoose default can return very large result sets and time out. (6) Pagination: results come back in the Items array (NOT ‘Records’). If MoreRowsExist=true, call again with loadType=‘NEXT’ and bookmark set to the Bookmark from the previous response; repeat until MoreRowsExist=false. (7) HTTP status is 200 even for logical failures — always check Success (a privilege failure names the exact IDO needing a Read grant). There is no API to list IDOs, and IDO/field names vary by SyteLine customization (a site may expose names like STI_SLCos) — always rely on get_ido_info rather than assumed names. Standard IDOs: SLItems (items/products), SLCustomers (customers), SLCos (customer orders), SLCoitems (order lines), SLPos (purchase orders), SLPoitems (PO lines), SLItemlocs/SLItemwhses (inventory), UserNames (users).Parameters:
Parameter
Type
Required
Default
Description
ido
string
Yes
—
IDO name (e.g. SLItems, SLCustomers, UserNames)
properties
string
Yes
—
Comma-delimited list of EXACT property names to return (from get_ido_info). A name that is not a queryable property fails the WHOLE query — usually Success=false with Message=null (no hint which name is wrong), so never guess; if it fails, re-test names one at a time. Derived/computed properties (names starting with Der) and some internal fields are not queryable here. Avoid ’*’ on large IDOs (hundreds of properties cause an HTTP 504 timeout); request only what you need. Example: ‘Item,Description,UnitCost’
filter
string
No
—
SQL WHERE clause WITHOUT the WHERE keyword. Reference only real property names (from get_ido_info); single-quote string literals. An unknown field name fails the whole query, often with Message=null. Example: Item LIKE ‘ABC%’ or CustNum = ‘1001’
orderBy
string
No
—
SQL ORDER BY value. Example: ‘Item DESC’
recordCap
integer
No
—
Row cap. ALWAYS set a small value (e.g. 50-200) when exploring or building a report — the Mongoose default can return very large result sets and time out (HTTP 504). -1 = Mongoose default; 0 = unlimited.
distinct
boolean
No
—
Apply the SQL DISTINCT keyword
clm
string
No
—
Custom Load Method name
clmParam
string
No
—
Comma-separated Custom Load Method parameters
loadType
string
No
—
Load type for paged reads
bookmark
string
No
—
Pagination cursor (Bookmark) returned by a previous load; combine with loadType=NEXT
pqc
string
No
—
Post Query Command name
readOnly
boolean
No
—
If true, no ItemId is returned with the query
Show inputSchema
{ "type": "object", "properties": { "PCID": { "type": "string", "description": "Pink Connect ID for the authenticated connection" }, "ido": { "type": "string", "description": "IDO name (e.g. SLItems, SLCustomers, UserNames)" }, "properties": { "type": "string", "description": "Comma-delimited list of EXACT property names to return (from get_ido_info). A name that is not a queryable property fails the WHOLE query — usually Success=false with Message=null (no hint which name is wrong), so never guess; if it fails, re-test names one at a time. Derived/computed properties (names starting with Der) and some internal fields are not queryable here. Avoid '*' on large IDOs (hundreds of properties cause an HTTP 504 timeout); request only what you need. Example: 'Item,Description,UnitCost'" }, "filter": { "type": "string", "description": "SQL WHERE clause WITHOUT the WHERE keyword. Reference only real property names (from get_ido_info); single-quote string literals. An unknown field name fails the whole query, often with Message=null. Example: Item LIKE 'ABC%' or CustNum = '1001'" }, "orderBy": { "type": "string", "description": "SQL ORDER BY value. Example: 'Item DESC'" }, "recordCap": { "type": "integer", "description": "Row cap. ALWAYS set a small value (e.g. 50-200) when exploring or building a report — the Mongoose default can return very large result sets and time out (HTTP 504). -1 = Mongoose default; 0 = unlimited." }, "distinct": { "type": "boolean", "description": "Apply the SQL DISTINCT keyword" }, "clm": { "type": "string", "description": "Custom Load Method name" }, "clmParam": { "type": "string", "description": "Comma-separated Custom Load Method parameters" }, "loadType": { "type": "string", "description": "Load type for paged reads", "enum": [ "FIRST", "NEXT", "PREVIOUS", "LAST" ] }, "bookmark": { "type": "string", "description": "Pagination cursor (Bookmark) returned by a previous load; combine with loadType=NEXT" }, "pqc": { "type": "string", "description": "Post Query Command name" }, "readOnly": { "type": "boolean", "description": "If true, no ItemId is returned with the query" } }, "required": [ "PCID", "ido", "properties" ]}
Insert, update, or delete one or more records in an IDO collection in a single batch. Each change specifies an Action (1=insert, 2=update, 4=delete), the ItemId for update/delete (returned by load_collection), and the modified Properties. Call infor-syteline_get_ido_info(ido) first for the exact property names and Keys, and use property names VERBATIM — a Property whose Name is not a real property of the IDO fails the whole call. Requires Edit privileges on the IDO in the target configuration. HTTP status is 200 even for logical failures — always check Success.Parameters:
Parameter
Type
Required
Default
Description
ido
string
Yes
—
IDO name
refresh
boolean
No
—
Refresh after update flag — returns the saved records in RefreshItems
Changes
object[]
No
—
Record changes to apply
CustomDelete
string
No
—
Custom delete method name (optional)
CustomInsert
string
No
—
Custom insert method name (optional)
CustomUpdate
string
No
—
Custom update method name (optional)
IDOName
string
No
—
IDO name (same as the path parameter)
RefreshAfterSave
boolean
No
—
Return saved records after the update
Show inputSchema
{ "type": "object", "properties": { "PCID": { "type": "string", "description": "Pink Connect ID for the authenticated connection" }, "ido": { "type": "string", "description": "IDO name" }, "refresh": { "type": "boolean", "description": "Refresh after update flag — returns the saved records in RefreshItems" }, "Changes": { "type": "array", "items": { "type": "object", "properties": { "Action": { "type": "integer", "description": "1=insert, 2=update, 4=delete" }, "ItemId": { "type": "string", "description": "Record identity from a prior load (required for update/delete)" }, "ItemNo": { "type": "integer", "description": "Client-assigned sequence number for correlating results" }, "UpdateLocking": { "type": "integer", "description": "Optimistic-locking mode (0 = default)" }, "Properties": { "type": "array", "items": { "type": "object", "properties": { "Name": { "type": "string" }, "Value": { "type": "string" }, "OriginalValue": { "type": "string", "description": "Prior value, for concurrency checking on updates" }, "IsNull": { "type": "boolean" }, "Modified": { "type": "boolean" } } }, "description": "Property values to set" } } }, "description": "Record changes to apply" }, "CustomDelete": { "type": "string", "description": "Custom delete method name (optional)" }, "CustomInsert": { "type": "string", "description": "Custom insert method name (optional)" }, "CustomUpdate": { "type": "string", "description": "Custom update method name (optional)" }, "IDOName": { "type": "string", "description": "IDO name (same as the path parameter)" }, "RefreshAfterSave": { "type": "boolean", "description": "Return saved records after the update" } }, "required": [ "PCID", "ido" ]}
Update one record in an IDO collection (a simpler alternative to the bulk update tool for single-record edits). Requires the record’s ItemId (returned by load_collection) and the changed properties as Name/Value pairs with Modified set true, using exact property names from infor-syteline_get_ido_info — a Property whose Name is not a real property of the IDO fails the whole call. Requires Edit privileges on the IDO in the target configuration. HTTP status is 200 even for logical failures — check MessageCode/Message.Parameters: