Sage 200 Evolution v2
Provides integration with Sage 200 Evolution through the Evolution SDK and its SQL-backed company databases to create and update supported Sage documents, inventory items, customer accounts, and supplier accounts.
Revision History
0.0.0.1 - Initial release.
0.0.0.17 - Fixed template returns and Runtime error handling.
0.0.0.20 - Split invoke methods.
0.1.0.0 - Completed the Runtime overhaul with eager first-document startup and lazy input continuation.
0.1.0.25 - Added Run Anywhere Cluster support.
0.1.0.31 - Added multi-version Sage Evolution SDK support.
0.1.1.1 - Published the current Runtime overhaul release.
0.1.1.5 - Added version-matched SDK support through Sage Evolution 12 and standardized mutation responses.
0.1.1.6 - Fixed Sage DLLs.
0.1.1.9 - Improved request parsing, SDK type matching, error handling, and response messages.
0.1.1.11 - Added ArCustomer and ApSupplier account support to Create and Update.
Connection
Use the Connection to configure the Sage company and common SQL Server databases.
| Property | Type | Description |
|---|---|---|
Server |
String | The SQL Server instance that hosts the Evolution company database. |
Database |
String | The Evolution company database name. |
Username |
String | The SQL username for the company database when UseWinAuth is false. |
Password |
Masked | The SQL password for Username. |
UseWinAuth |
Boolean | Set to true to use Windows authentication for the company database. |
CommonDbServer |
String | The SQL Server instance that hosts the common database. This is typically the same server as the company database. |
CommonDbDatabase |
String | The Evolution common database name. This is typically EvolutionCommon. |
CommonDbUsername |
String | The SQL username for the common database when CommonDbUseWinAuth is false. |
CommonDbPassword |
Masked | The SQL password for CommonDbUsername. |
CommonDbUseWinAuth |
Boolean | Set to true to use Windows authentication for the common database. |
Branch Id |
Integer | Optional. Set a non-negative branch ID to target a specific Sage branch. The default, -1, leaves the branch context unset. |
Setup Notes
- Ensure the selected Flowgear Cluster can reach the Sage 200 Evolution SQL Server.
- If the SQL Server is behind a firewall, allow the Flowgear tenant or selected Cluster IP address.
- Configure both the company database and common database settings. When Windows authentication is disabled, the matching username and password Properties are required.
- The Node reads the Sage application version from the company database and selects the matching embedded SDK. Sage Evolution 7, 8, and 9 use the 9.20 SDK; version 10 uses the 10.1 SDK; version 11 uses the 11 SDK; and version 12 uses the 12 SDK.
Methods
Use Create and Update to save supported Sage records. Complete and Process have the limitations described below. Use the Node templates to populate DocumentType and the Request schema for the selected Sage document type.
Create
Creates a Sage document. This Method supports InventoryItem, ApPurchaseOrders, ArSalesOrders, ApReturns, ArCreditNotes, ArCustomer, and ApSupplier.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | The Sage 200 Evolution Connection profile. |
DocumentType |
Dropdown | The type of document to create. Select a document type supported by this Method. |
Request |
Array | The document payload. Select a template to populate the schema. |
| Return | Type | Description |
|---|---|---|
Response |
Array | The processed document rows returned by the Sage SDK. Each row includes Flowgear.IsSuccess, Flowgear.Message, and a copy of the input under Flowgear.Request, excluding nested Content fields. |
Update
Updates a Sage document. This Method supports InventoryItem, ApPurchaseOrders, ArSalesOrders, ApReturns, ArCreditNotes, ArCustomer, and ApSupplier.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | The Sage 200 Evolution Connection profile. |
DocumentType |
Dropdown | The type of document to update. Select a document type supported by this Method. |
Request |
Array | The document payload. Select a template to populate the schema. |
| Return | Type | Description |
|---|---|---|
Response |
Array | The processed document rows returned by the Sage SDK. Each row includes Flowgear.IsSuccess, Flowgear.Message, and a copy of the input under Flowgear.Request, excluding nested Content fields. |
Complete
Accepts an existing purchase order identified by OrderNo or DocumentID. This Method supports ApPurchaseOrders, but currently does not complete or post the order. See Known Issues.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | The Sage 200 Evolution Connection profile. |
DocumentType |
Dropdown | The document type to complete. Use ApPurchaseOrders. |
Request |
Array | The purchase order payload. Include DocumentID or OrderNo to identify the existing purchase order. |
| Return | Type | Description |
|---|---|---|
Response |
Array | One metadata row per accepted order request; no Sage document fields are returned. Each row includes Flowgear.IsSuccess, Flowgear.Message, and a copy of the input under Flowgear.Request, excluding nested Content fields. |
Process
Accepts an existing sales order identified by OrderNo or DocumentID. This Method supports ArSalesOrders, but currently does not process or post the order. See Known Issues.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | The Sage 200 Evolution Connection profile. |
DocumentType |
Dropdown | The document type to process. Use ArSalesOrders. |
Request |
Array | The sales order payload. Include DocumentID or OrderNo to identify the existing sales order. |
| Return | Type | Description |
|---|---|---|
Response |
Array | One metadata row per accepted order request; no Sage document fields are returned. Each row includes Flowgear.IsSuccess, Flowgear.Message, and a copy of the input under Flowgear.Request, excluding nested Content fields. |
Usage Notes
Each Request item must contain one Sage document. The Node returns one response row per request item and includes Flowgear success or failure metadata for downstream processing.
The first Sage document is processed while the Node invoke is awaited. Later documents are consumed as the Workflow reads the response stream. An empty input returns no rows, but the Node still validates and opens the Connection before checking the input.
| DocumentType | Sage document | Supported methods |
|---|---|---|
InventoryItem |
Inventory item | Create, Update |
ApPurchaseOrders |
Purchase order | Create, Update, Complete |
ArSalesOrders |
Sales order | Create, Update, Process |
ApReturns |
Supplier return | Create, Update |
ArCreditNotes |
Credit note | Create, Update |
ArCustomer |
Customer account | Create, Update |
ApSupplier |
Supplier account | Create, Update |
Record identifiers
For ArCustomer and ApSupplier, Update requires ID or Code. Both Create and Update use ID first when you supply both fields. With only Code, the Node looks up the account and creates a new account if that code does not exist. Consequently, Create can change an existing account and Update can create one.
For InventoryItem, supply InventoryCode or InventoryID. The Node uses InventoryCode first and creates an item if the code does not exist. Both Methods use this same lookup behavior. Each entry in SellingPrices requires PriceListName or PriceListID.
For purchase orders, sales orders, and supplier returns, Update requires OrderNo or DocumentID; OrderNo takes precedence. Credit note updates require DocumentID. When creating or updating these documents, supply Account with an existing customer code for sales orders and credit notes, or an existing supplier code for purchase orders and supplier returns.
Request shapes
Document detail lines accept either a direct DetailLines array or an object containing a DetailLines.DetailLine array. A detail line can specify StockItem or GL, but cannot specify both. Use the selected template for the remaining fields.
Customer and supplier accounts accept user-defined fields as a direct UserDefinedFields array or as a UserDefinedFields.UserDefinedField array. Each entry requires a Field name and accepts a string Value.
Response handling
Check Flowgear.IsSuccess on each returned row. Flowgear.Message contains the result message or error details. A document-level failure can return a failed row while processing continues for later items; Connection validation and connection failures can instead fail the invocation or response stream.
The response root contains Sage SDK output and Flowgear metadata. Input-only fields are available under Flowgear.Request, with fields named Content removed recursively. SDK enum values are returned by name.
Known Issues
CompleteandProcessload the selected order and can returnFlowgear.IsSuccessastruewithout completing or posting it. Do not use that success flag as confirmation that the order was completed or processed.ProcessAllOrNoneis not applied. The Node processes documents one at a time; a later failure does not roll back earlier successful documents.