I have developed an application that combines a tiny subset of navision data (contacts, customers, products, prices, stock, discounts) with external data from various sources (photos, technical data from my customrers vendors, …).
The main task of this application is reporting and creation of offline catalogs (either printed or desktop applications).
The application is served by a Sql Express that holds its own copy of the above data, and is synchronized via data ports that must be executed manually by an administrator of my application.
I would like to automate synchronization by accessing navision database server (sql server 2000) as a linked server under a limited readonly account.
Does anyone know if this approach is legal?
I mean, does microsoft explicitly issue a prohibition against third party software accessing navision database?
As far as i know, there is nothing illegal about the solution you want to build.
However whether there is an issue about the NAV-license i don’t know.
As i understand your request, all you want to do is to read from the NAV-database, so i see no problem in transfering the data at the sqlserver-level, instead of relying on some user interaction for it to run.
If you want to enter data into the NAV-database, then it’s another story.
In my oppinion that should always be done by writing in some “inbox”-tables, that hold no business-logic at all, and then have an Application Server handle the further processing from inside NAV. But you can propably find like a million threads on this issue in here.
Welcome to the community. (i saw your thread in the introductions-forum)
Thank you for your reply (and the welcome!)
As you mentioned, I only need to reed data from Navision. Data that should be sent back to Navision, will be hosted in my database and exposed as web service, so my customer will be able to export them as text and import them through dataports, or, event better, his Navision partener could directly consume the web service (at least until I am competent and certified to do it myself!).
This is actually a very pertinant question right now. With the new role tailored client, there are now a multitude of ways to access the data in Navision, and the quesion will arise a lot more now, as to exactly which license you need to access what data and how.
As to your question about NAV 4.00; Technically to access Data in Navision you need to have a valid user license. Lets take the current case where you export data using a dataport or an XML port, then the client that launces the task is logged into Navision using a valid concurrent user license, so that is ligitimate. But if you access the data directly then you are not “using up” a license, and thus you (well your customer actually) are/is breaking the license agreement.
So lets say you have 25 user licenses, and all 25 users are logged in, then if you ran this extract outside of NAV, you would actually have 25+1=26 users connected to the database, which is a breach of contract. On the other hand if you run this when only 24 users are logged in, then you would have 24+1 = 25 users logged in and this would be legitimate.
its important that when you think of Navision licensing, that you are responsible to manage how many users are connected to the system. I think its great that you are asking this quesiton, since it shows that you understnad the implications of what you are doing.
have the customer speak to their MBS partner, and get a clarification from Microsoft, but my read on this is that you would need to make sure that you did not exceed the number of users that you are licensed for.
Thank you David
I will have a look at my customers contracts, and I will advice him to buy the necessary licenses for NAV 4 and Sql Server.
Has microsoft published a white paper than clarifies these things? A google search did not bring something. Such a document would be a useful addition to the download section.
Thank you all.
Only legal issue is if you have legal rights to that database, which in any case is not Microsoft. You need a C/Front or C/ODBC licence.
Further a license for whatever other tool you use. And if you develop something else then C/Front or C/ODBC well then you are good.
It is a good idea to not write to a database other then migration. It will always result in relation errors of some kind.