How to Set Up an ION Workflow Approval for SyteLine Purchase Orders
how to set up ION workflow approval for SyteLine purchase orders
Also searched as
- SyteLine purchase order approval workflow ION
- CloudSuite Industrial approval workflow Infor OS
- ION workflow SyteLine BOD trigger approval
- SyteLine customer order credit approval workflow
Short answer
An approval workflow for a SyteLine purchase order is typically built in ION: a document flow carries the order as a BOD from CloudSuite Industrial into ION, a workflow routes it to approvers by amount or commodity, and the decision is written back through an ION or IDO call that updates the PO status. Design for a single source of truth, idempotent write-back, and a timeout path so orders never wait indefinitely.
Applies to: Infor CloudSuite Industrial (SyteLine) 9.x/10.x and cloud editions connected to Infor OS ION; details of designer and BOD names vary by release
How to build the approval flow
- 1Define the policy first: thresholds by amount, who approves each band, delegation rules, and what happens on rejection or timeout.
- 2Confirm the SyteLine connection point in ION Desk (Connection Points) is active and publishes the purchase order BOD you need, such as a Process or Sync PurchaseOrder, per your release.
- 3Create a document flow in ION Desk that routes the PurchaseOrder BOD from the SyteLine connection point to the workflow engine, filtering on status such as pending approval.
- 4Build the workflow: a start on the BOD, a decision on total amount, human tasks for each approver band, and an end state for approved, rejected and timed out.
- 5Map approver identities from Infor OS users to the SyteLine users or roles that own authority limits, and test delegation.
- 6Write the decision back to SyteLine through the supported path: an ION API call to the IDO REST service or a response BOD, updating the PO status with the approver recorded.
- 7Test with edge cases: change after submission, split lines, currency, and a rejected then revised order.
Where SyteLine's own approval ends and ION begins
SyteLine has built-in controls for some documents, such as authority limits and approval-related status values, and the Event System can run actions when a record changes. For simple one-level approvals, those may be enough and are easier to support. ION workflow earns its place when you need multi-step routing, parallel approvals, cross-system context such as budget in another system, or approvals through Infor OS and mobile channels.
Choose deliberately. Every integration hop adds failure modes, so if a single approver by amount covers the need, prefer the in-ERP route. Use ION when the process genuinely spans systems or needs a richer task experience for approvers.
Trigger, route, decide, write back
The mechanics are four stages. A trigger: SyteLine publishes a BOD when the PO reaches the approval state. A route: an ION document flow delivers it to the workflow. A decision: approvers act on tasks. A write-back: the result updates SyteLine. Each stage can fail independently, so log the BOD identifier through the whole path.
For write-back, prefer the same business logic path as the UI. Calling the IDO REST service through the ION API gateway runs validation and events, while direct database updates would bypass them and are generally unavailable in multi-tenant anyway. Make the call idempotent: if the same decision is sent twice, the second should do nothing.
# Write-back shape (IDO REST update through the ION API gateway; exact property names depend on your PO IDO)
POST https://<ion-api-host>/<TENANT>/CSI/IDORequestService/ido/update/SLPos?refresh=true
Body: { "Items": [ { "Action": 2, "ItemId": "<RowPointer>", "Properties": [ { "Name": "Stat", "Value": "O" } ] } ] }Handling change, timeout and failure
Orders change while waiting. If a buyer edits the PO after submission, decide whether to cancel the running workflow and restart or to compare the version approved with the current one. A common safe rule is that any change to amount, supplier or quantity invalidates the approval.
Add a timeout path: after a set period escalate to a delegate and notify the buyer. Also monitor failed BODs in ION Desk, because a stuck document flow looks to the buyer like an approver who never responds. Alert on tasks older than your policy limit.
Testing before go-live
Test with real roles in a non-production tenant. Cover approve, reject, revise and resubmit, amount just under and over a threshold, a foreign currency order and an approver who is out of office. Check the audit trail: who approved, when, and which version of the order.
Finally run a failure test. Stop the write-back endpoint, approve a task, and verify the system retries or surfaces an error rather than leaving the PO in limbo. A workflow that works only on the happy path will fail in production on its first network blip.
Common pitfalls
- !Building an ION workflow for a single-level approval that SyteLine authority limits or events could handle more simply.
- !Writing the decision back non-idempotently so a retry approves twice or errors.
- !Not invalidating approval when the PO amount or supplier changes after submission.
- !Mapping approvers by display name instead of a stable user identifier.
- !No timeout or escalation path, leaving orders waiting indefinitely.
How an ERP-grounded AI assistant handles this
An AI assistant grounded in SyteLine and ION can answer operational questions such as which purchase orders are waiting on approval and for how long, summarize the context an approver needs, and draft the policy table from your historical approvals. ERPray stays read-only by default and shows the query it ran. Approval decisions and write-back remain human actions inside the workflow.
Frequently asked questions
Do I need ION for purchase order approval in SyteLine?
Not always. For one approver per amount band, SyteLine authority limits and the event system may be simpler to maintain. ION workflow is worth it for multi-step, cross-system or mobile approval requirements.
How does the decision get back into SyteLine?
Through a supported path such as an ION API call to the IDO REST service or a response BOD, so SyteLine business rules and events still run. Avoid direct database updates, and make the call idempotent.
What if the PO changes after it was submitted?
Define a rule. The common safe choice is that a change to amount, supplier or quantity cancels the running workflow and restarts approval. Otherwise store which version was approved and compare at release.
How do I find stuck approvals?
Monitor failed or pending documents in ION Desk and report on PO status in SyteLine. Alert on tasks older than your policy limit so a broken document flow is caught before buyers complain.
Related
Diagnose and fix a failed BOD document flow in ION Desk
A Document Flow showing Failed in ION Desk means a BOD (Business Object Document) stopped either at schema validation, at the mapping step, or at the target application. Open the failed instance's detail to see the exact failing element, fix the source data or mapping, then use Resubmit rather than re-triggering the original transaction to avoid duplicates.
Error fixFix a 401 Unauthorized error from Infor ION API
A 401 from ION API almost always means the credentials in the .ionapi file no longer match what ION API Gateway expects - not that the password is simply wrong. Check whether the Authorized App or service account behind the file was revoked, regenerated, expired, or issued for a different tenant, then re-test with a direct OAuth2 client_credentials call before touching any calling code.
AdvancedHow the SyteLine Event System Works for Workflow Notifications
SyteLine's Event Manager lets administrators subscribe to IDO-level events, such as a purchase order being released or a customer credit hold being set, and fire an email, a Mongoose script, or a workflow action without writing an IDO extension. Cloud tenants can extend the same triggers into ION Workflow for multi-step, cross-application approval processes.
How-toHow to Receive a Purchase Order and Return Goods to a Vendor in SyteLine
Receiving happens in PO Receipts against open PO lines, updating on-hand quantity and open PO balance. Returning goods is a separate return-to-vendor transaction that reverses the receipt, references the original PO and receipt, and should tie to an AP debit memo so the vendor invoice and payment reflect the returned quantity.
Error fixFixing SyteLine's 'Object reference not set to an instance of an object' error
This is a generic .NET NullReferenceException surfacing through the SyteLine IDO Runtime, not a SyteLine-specific error code. It almost always means a form, script or IDO method referenced a field, row or object that came back null, usually after a customization, a missing related record, or a view/IDO method call before the form finished loading. Turn on detailed client logging and check the most recent customization or form event first.
Error fixDiagnosing and fixing SyteLine session timeout errors
SyteLine session timeouts come from one of three independent layers: the IDO Data Service session timeout on the app server, the IIS/application pool idle timeout for the web (Mongoose Web) client, or a load balancer/proxy idle timeout in front of a CloudSuite hosted environment. Fixing the wrong layer is the most common mistake - you need to identify which layer is actually expiring the session before changing anything.
AI for ERPAI Agents Over Infor ION API, BODs, and the Infor Data Lake
Build AI agents on Infor ION API Gateway, BODs, and Data Lake, alongside or instead of Infor's own GenAI features, with your choice of model and hosting.
AI for ERPAI for Infor SyteLine and CloudSuite Industrial
Add grounded AI to Infor SyteLine or CloudSuite Industrial: natural-language answers, agents over IDOs and ION, on-prem or CloudSuite deployment.
Stuck on Infor CloudSuite Industrial (SyteLine) with Infor OS ION?
Talk to engineers who work inside Infor CloudSuite Industrial (SyteLine) with Infor OS ION every week, and who build private AI that answers these questions from your own ERP data.