Hi,
what is the preferred way to extract data from Business Central? We need to pull out data daily for a Data Warehouse use case.
With on premises edition I understand that we could access the database directly or use a web API.
Is access to the database a documented and recommended way to access the system?
Tables are the same. Just remember that if you have tableextension objects (customizations created with AL language) that adds custom fields to standard tables, these newly added fields are on a new table called like the original table + $extensionID (so you need a join).
Thanks, then it makes sense to go the MSSQL route. Can you also tell if the tables are documented somewhere and if the tables differ from the NAV system?
On-premise is a totally different thing. You can still access SQL Server and for complex ETL scenarios (big amount of data, performances etc) creating a data import in a data warehouse via SQL is the best way again. OData has some limits on the possibility of queries that you can apply.
Thansk for your anwser.
The BC we need to extract data from is on premises.
So even if BC is hosted on premises, it is not recommended to extract data from the underlying MSSQL database directly? If we would go MSSQL way, is it officially supported/documented by Microsoft? (or only SOAP/Rest APIs)
If you’re talking about SaaS enviroment, recommended way is using APIs or OData endpoint.
Hello Christopher,
I would encourage you to use the ways BC provides in order to get the information. You can use SOAP/OData webservices depending on your needs, and recently also REST APIs.
Webservices: docs.microsoft.com/.../web-services
REST API: docs.microsoft.com/.../