Microsoft Dynamics 365 Business Central
This plugin is currently in private preview and distributed directly to your Snowflake account instead of via Marketplace listing. Please get in touch to request access.
Prerequisites
You will need to use Business Central to create a Connect app. This allows point-to-point connection between Dynamics 365 Business Central and Omnata Sync for Snowflake via a REST API to interchange data. Learn more at Microsoft Docs for Business Central API (v2.0)
Authentication
OAuth (Microsoft Entra ID)
Visit the Microsoft Docs for Setting up Microsoft Entra ID based authentication for Business Central.
Setting up a new connection
When setting up a new connection you have 2 options for authentication:
OAuth (Microsoft Entra)
OAuth (Plugin managed tokens)
Tokens need to be refreshed every 60 minutes. If your sync is going to take longer than 60 minutes, you will need to use the Plugin managed tokens option.
Items you will need to setup a connection:
Client ID
Client Secret
Tenant ID
Environment (eg
Production
)
Inbound Syncs
We support the following endpoints for Business Central:
api/v2.0
OData
Custom API's
Optimizing performance
Due to the size of initial syncs, its recommended that you split your inbound syncs into multiple streams. The following are the recommended streams to use for Business Central:
General
Accounts
Customers
Sales
Purchases
General Ledger
Fixed Assets
Unsupported Endpoints
The following endpoints are currently not supported
timeRegistrationEntries
subscriptions
picture
documentAttachment
pdfDocument
Using a Custom Storage Locations
It is recommended that you use customise the Omnata Sync Storage Location so your projects can easily access the data as necessary. The following are the recommended properties to use for the storage location:
Database Name
SOURCE_DATA_LOAD
SOURCE_DATA_LOAD
Schema Name
BUSINESS_CENTRAL_RAW
BUSINESS_CENTRAL
Table Name
{{stream_name}}
{{stream_name}}
It is important that the Omnata Sync Engine native application has the correct permissions to create tables in the database(s) and schema(s) you specify. The following is an example of the permissions required for the above storage location:
Outbound Syncs
Outbound syncs are not supported for Business Central.
Webhooks
Webhooks is the way to get notified if an entity changes in Business Central and is the only way to get notified about deletes. Unfortunately, Snowflake doesn't currently provide the ability to use webhooks, therefore alternative strategies are required.
We recommend you use the Inbound Sync Strategy "Full Refresh" for the following entities instead:
accounts
companies
company_information
countries_regions
currencies
employees
payment_methods
payment_terms
tax_areas
tax_groups
units_of_measure
vendors
Secondary full-refresh schedule
An alternative method to capture deletes.
If you wish use the "Incremental Refresh" strategy, you can set an additional schedule when you would like a full refresh to occur by running the following stored procedure in Snowflake. This will enable eventual consistency of the reference data.
Functions
There are two direct query options available for Business Central which allows you to query the data directly in Snowflake worksheets and notebooks.
api/v2.0
This is the recommended direct query type for Business Central. It allows you to query the Business Central API directly.
connection_slug
The connection slug you have setup for Business Central
company_id
The company id you wish to query
entity_name
The name of the entity you wish to query
fields
List of fields names to return
filter
List of filter expressions to apply
expansions
List of child entities to return with the results
Example Usage
Custom Endpoints
If you need to query a custom endpoint, you can use the following stored procedure to do so:
connection_slug
The connection slug you have setup for Business Central
company_id
The company id you wish to query
entity_name
The name of the entity you wish to query
fields
List of fields names to return
filter
List of filter expressions to apply
expansions
List of child entities to return with the results
Companies
To get a list of companies you can query, you can use the following stored procedure:
connection_slug
The connection slug you have setup for Business Central
Last updated