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.
- Register an application in Microsoft Entra ID.
- Open
API permissions, clickAdd a permission, selectMicrosoft APIs, and chooseDynamics ERP. - Add these delegated permissions:
Access Dynamics AX Custom ServiceAccess Dynamics AX dataAccess Dynamics AX online as organization users
- Grant admin consent for the permissions, or ensure the signed-in user can provide consent.
- In Dynamics Finance and Operations, open
System administration→Setup→Microsoft Entra applications. - Register the same
Client IDand assign it to a user with the required Finance and Operations security roles. - Configure the Flowgear
ConnectionwithTenant ID,Client ID,Client Secret, andResource URL. SetScopesonly when you require additional scopes. - Complete the OAuth authorization and test the
Connection. - Click
Acquire Metadatain 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
Companyblank andcross-companyset tofalseto query the current company. Setcross-companytotruewith a blankCompanyto query all accessible companies. SetCompanyto query only that legal entity. - Keep cross-company queries narrow by using
Company,Filter, andSelectwhere 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, andFlowgear.Request.Flowgear.Requestcontains the originalItemsrow for Create and Update, or the suppliedKeyFieldsfor 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.