Microsoft Dynamics Finance

Provides integration with Microsoft Dynamics Finance and Operations through the OData REST API.

Revision History

0.0.0.8 - Initial release.
0.1.0.4 - Added metadata-driven templates, company-aware operations, paging, and standardized mutation responses.

Connection

Use the Connection to configure the Dynamics Finance endpoint and OAuth authorization.

Property Type Description
Tenant ID String The Microsoft Entra tenant ID used to issue OAuth tokens.
Client ID String The client ID from the Microsoft Entra app registration.
Client Secret Masked The client secret from the Microsoft Entra app registration.
Access Token Masked The OAuth access token returned after delegated authorization.
Refresh Token Masked The OAuth refresh token used to renew access.
Scopes String The OAuth scopes requested during authorization. This defaults to offline_access. The Node also requests the default scope for the configured Resource URL.
Resource URL String The HTTPS URL of the Dynamics Finance environment, e.g. https://contoso.operations.dynamics.com.
Metadata String The hidden OData metadata cache used to populate detailed templates. Flowgear manages this Property when you acquire metadata.

Setup Notes

Use this Node on a Flowgear Cloud Cluster. It is not available on Run Anywhere Clusters.

  1. Register an application in Microsoft Entra ID.
  2. Open API permissions, click Add a permission, select Microsoft APIs, and choose Dynamics ERP.
  3. Add these delegated permissions:
    • Access Dynamics AX Custom Service
    • Access Dynamics AX data
    • Access Dynamics AX online as organization users
  4. Grant admin consent for the permissions, or ensure the signed-in user can provide consent.
  5. In Dynamics Finance and Operations, open System administrationSetupMicrosoft Entra applications.
  6. Register the same Client ID and assign it to a user with the required Finance and Operations security roles.
  7. Configure the Flowgear Connection with Tenant ID, Client ID, Client Secret, and Resource URL. Set Scopes only when you require additional scopes.
  8. Complete the OAuth authorization and test the Connection.
  9. Click Acquire Metadata in the Connection settings and allow the action to finish. The metadata can be large and is required for detailed entity and key-field templates. If a template is incomplete, acquire the metadata again.

Methods

Use the Node templates to select an OData entity set and populate its request and response schema.

Query

Queries a Dynamics Finance OData entity set. The Node retrieves the first page before returning and follows continuation links as the response is consumed.

Parameter Type Description
Connection Connection The Dynamics Finance Connection profile.
EntitySet String The OData entity set to query, e.g. CustomersV3.
Options Object Optional company and OData query settings.

The Options object supports these Properties:

Property Type Description
Company String Optional legal entity filter, e.g. USMF. A value automatically enables cross-company access and adds a dataAreaId filter for that company.
Select String A comma-separated list of fields to return.
Filter String An OData filter expression. The Node combines this with the Company filter when both are supplied.
OrderBy String An OData order-by expression, e.g. AccountNum asc.
cross-company Boolean Set to true to return results across legal entities. Leave this as false for current-company queries.
Return Type Description
Response Array The matching Finance business rows.

Create

Creates rows in a Dynamics Finance OData entity set.

Parameter Type Description
Connection Connection The Dynamics Finance Connection profile.
EntitySet String The OData entity set in which to create rows, e.g. CustomersV3.
Company String Optional. The legal entity to add as dataAreaId when an item does not already contain one. An item's existing dataAreaId takes precedence.
Items Array The payload objects to create.
Return Type Description
Response Array One result row for each supplied item.

Update

Updates rows in a Dynamics Finance OData entity set. Detailed templates populate the metadata-defined key fields required to build the update URL.

Parameter Type Description
Connection Connection The Dynamics Finance Connection profile.
EntitySet String The OData entity set in which to update rows, e.g. CustomersV3.
Company String Optional. The legal entity to add as dataAreaId when an item does not already contain one. An item's existing dataAreaId takes precedence.
KeyFields String A comma-separated list of the key field names used to identify each row, e.g. dataAreaId,CustomerAccount. Do not add spaces after commas.
Items Array The payload objects to update. Each item must contain every field named in KeyFields and must provide dataAreaId directly or through Company.
Return Type Description
Response Array One result row for each supplied item.

Delete

Deletes one row from a Dynamics Finance OData entity set. The Node checks that the row exists before sending the delete request.

Parameter Type Description
Connection Connection The Dynamics Finance Connection profile.
EntitySet String The OData entity set from which to delete the row, e.g. CustomersV3.
KeyFields Object The metadata-defined key field names and scalar values that identify the row.
Return Type Description
Response Array A single result row indicating whether the delete succeeded.

Usage Notes

  • Select the first Query template, Get Logged In Session Info, to retrieve the authenticated session context and active company.
  • Leave both Company blank and cross-company set to false to query the current company. Set cross-company to true with a blank Company to query all accessible companies. Set Company to query only that legal entity.
  • Keep cross-company queries narrow by using Company, Filter, and Select where possible. Cross-company queries can take significantly longer.
  • Query responses contain the Finance business rows without mutation metadata. Empty queries return no rows.
  • Create, Update, and Delete preserve provider fields at the response root and add Flowgear.IsSuccess, Flowgear.Message, and Flowgear.Request. Flowgear.Request contains the original Items row for Create and Update, or the supplied KeyFields for Delete.
  • Create and Update return a failure row for an individual item without stopping later items from being processed. Delete returns a failure row when no record matches the supplied KeyFields.