I need to exchage certain data between Dynamics NAV and an extrenal system. At present my idea is to run NAV on a SQL database and have the external application directly modify certain tables in the NAV database so that the data exchange between the systems will be kind of online. I would like to know if this is possible? Is it recomended? and are there any drawbacks? would appreciate a response on this from u guys ASAP…Thanx[:D]
When you directly insert in a table using SQL, Navision business logic present in field triggers don’t run. So it can lead to an incorrect data. You must use NAV, dataports or similar to insert into Navision tables. One workaround is to insert data in a work table then Navision will read data from that table.
Hey Nuno,
What i’m planning to do is use a newly created separate table for this data tranfer operation, not one thats defined within the program. Well what i’m planning to do is,
1.Create a completely new table in NAV
2.Directly insert data of the extrenal system to this new table using SQL
3.Then after a certain validation process post the entries in the newly created table to the relavant tables in NAV.
So this new table won’t have any business logic nor will it be used by any user for other than posting the imported entries.
Please let me know whether this procedure will be ok or will it cause issues for the NAV application.
Thanks a lot appreciate your help.
Hi!
Basically this procedure is quite OK! You only have to regard some “rules” or NAV requirements when inserting the data:
-
No lowercase or special characters in CODE fields
-
No NULL values
-
No dates below 01.01.1753
-
Date-Field: 18.01.2008 00:00:00
-
Time-Field: 01.01.1753 11:37:00
-
etc.
And of course you have to assure that all datatypes are NAV compatible! So, keep it simple to avoid trouble …
I don’t see any problem with this solution
One way to make sure data types are compatible is to create the table in NAV. That way it will even be part of NAV object extracts, backups, and it is much easier to manage the database.
Should be no problem with this method.