1

I want to create web application (sth like dashboard) which will be integrated with nav 2013. (Take data form Nav, display it to customers and also can update or insert data).

In Nav I have done all tables and pages which have specificed all conditions and functions on fields.

Those conditions are very usefull when you want to insert some data from page in Nav (for example: after filling customer number, page automatically show projects for this customer - what is very helpfull)

Everything is working fine in Navision when you working on pages, but in my application where I use webservices to communicate with NAV I have a lots of problems which those conditions which are specified on tables.

My question is, it is better to prepare "blank" tables in nav and make full logic in my web application(asp.net) or operate on logic which is specified in Nav?

In my opinion:

  • tables should not have any logic except some basic logic about keys numbering
  • all conditions that are designed to help user fill data should be done separately (separate logic in web app and separate logic in pages in Nav)
John Slegers
  • 45,213
  • 22
  • 199
  • 169
Adrian Bystrek
  • 528
  • 2
  • 6
  • 19
  • This depends. Who will support your solution, .net programmer or navision programmer? How complex is your solution? – Mak Sim Jun 05 '14 at 17:42
  • .net programmer will be supporting solution. In first step application will be simple (display data) but in future they want to develop this app and add options to add, edit, delete data also deploy roles like admin, client, consultant etc. So generally this application in future can be complex. – Adrian Bystrek Jun 05 '14 at 19:38
  • And what is the goal of this solution if one can do all those things in Nav trough RTC or web client? – Mak Sim Jun 05 '14 at 19:41
  • boss of company want to be able to do all those things through RTC and web client but clients and consultants will be able to use only web client. – Adrian Bystrek Jun 05 '14 at 20:50
  • 1
    The question was why don't you just use Nav? What will your solution do what Nav can't? Nav2013 have both RTC and web client. Pages created for RTC are automatically converted to web pages of web client. You can make it available through WAN and access it from anywhere.Your solution sounds just like another web client. So why do you need it? What will be the difference? – Mak Sim Jun 06 '14 at 04:24
  • Have you considered creating dashboard plugin for Nav? You can make it universal and use in both RTC and web clients. – Mak Sim Jun 06 '14 at 04:26
  • The difference will be that my web app dashboard should be more simple that Nav web client and also more user-friendly. My boss don't want to allow everyone to Nav, clients should operate only on my app. – Adrian Bystrek Jun 06 '14 at 15:27

1 Answers1

1

Based on comments I'd say go for the simpliest solution:

  • Create a set of tables (lets call them integration tables) which will have no logic on them and will not be related to the Nav entities (like Tasks or Projects or whatever tables you have in your base). This will be tables for communication only.
  • Create dispatcher codeunit which will carry most of communication and data transformation logic.
  • Publish dispatcher codeunit and pages based on integration tables.
  • Use published pages to push messages to Nav and read data from Nav.
  • After every pushed message call curtain dispatcher method to do all the things you want (like insert and update records to Nav)
  • Use OData, Pages or codeunit functions returning XML to read all the data you need to display on web forms. My advice is do not update/insert Nav native tables directly (via pages), only through integration tables and dispatcher. It will be easier to manage errors in this case.
  • Delete old or processed records from integration tables periodically.

This will allow you to keep most of business logic on web app side but also preserv the ability to put some general logic (such as restrictions and etc) to Nav (via dispatcher and table triggers), as dispatcher will always return you an operation result weather message sent from web application was processed successfully or not.

Be aware, there may be pitfalls.

Mak Sim
  • 2,148
  • 19
  • 30