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

  • Complete and Process load the selected order and can return Flowgear.IsSuccess as true without completing or posting it. Do not use that success flag as confirmation that the order was completed or processed.
  • ProcessAllOrNone is not applied. The Node processes documents one at a time; a later failure does not roll back earlier successful documents.

See also