Asp.net mvc Dynamics Nav 2013 web应用程序

Asp.net mvc Dynamics Nav 2013 web应用程序,asp.net-mvc,integration,navision,dynamics-nav,dynamics-nav-2013,Asp.net Mvc,Integration,Navision,Dynamics Nav,Dynamics Nav 2013,我想创建web应用程序(类似于仪表板),它将与nav 2013集成。(从Nav获取数据,向客户显示,还可以更新或插入数据) 在Nav中,我已经完成了所有表格和页面,其中详细说明了字段上的所有条件和功能 当您希望在Nav中插入页面中的某些数据时,这些条件非常有用(例如:填写客户编号后,页面自动显示此客户的项目-非常有用) 当您在页面上工作时,Navision中的一切都很好,但是在我的应用程序中,我使用webservices与NAV进行通信,我遇到了很多问题,这些问题与表中指定的条件有关 我的问题是

我想创建web应用程序(类似于仪表板),它将与nav 2013集成。(从Nav获取数据,向客户显示,还可以更新或插入数据)

在Nav中,我已经完成了所有表格和页面,其中详细说明了字段上的所有条件和功能

当您希望在Nav中插入页面中的某些数据时,这些条件非常有用(例如:填写客户编号后,页面自动显示此客户的项目-非常有用)

当您在页面上工作时,Navision中的一切都很好,但是在我的应用程序中,我使用webservices与NAV进行通信,我遇到了很多问题,这些问题与表中指定的条件有关

我的问题是,最好在nav中准备“空白”表,并在我的web应用程序(asp.net)中创建完整的逻辑,还是在nav中指定的逻辑上操作

我认为:

  • 表不应该有任何逻辑,除了一些关于键编号的基本逻辑
  • 所有旨在帮助用户填写数据的条件都应单独完成 (web应用程序中的独立逻辑和Nav页面中的独立逻辑)

根据我的评论,我想选择最简单的解决方案:

  • 创建一组表(让我们称之为集成表),这些表上没有逻辑,并且与Nav实体(如任务或项目或基础中的任何表)不相关。这将是仅用于通信的表格
  • 创建dispatcher codeunit,它将承载大部分通信和数据转换逻辑
  • 基于集成表发布dispatcher codeunit和页面
  • 使用已发布的页面将消息推送到Nav并从Nav读取数据
  • 每次推送消息后,调用窗帘调度程序方法来执行所有您想要的操作(如向Nav插入和更新记录)
  • 使用返回XML的OData、Pages或codeunit函数读取需要在web表单上显示的所有数据。我的建议是不要直接(通过页面)更新/插入Nav本机表,只能通过集成表和dispatcher更新/插入。在这种情况下,将更容易管理错误
  • 定期从集成表中删除旧的或已处理的记录
这将允许您将大部分业务逻辑保留在web应用程序端,但也可以将一些常规逻辑(如限制等)放入Nav(通过dispatcher和表触发器),因为dispatcher将始终向您返回操作结果—无论是否成功处理了从web应用程序发送的消息


请注意,可能存在陷阱。

这取决于具体情况。谁将支持您的解决方案,.net程序员还是navision程序员?您的解决方案有多复杂?.net程序员将支持此解决方案。在第一步中,应用程序将很简单(显示数据),但在未来,他们希望开发此应用程序,并添加添加添加、编辑和删除数据的选项,同时部署管理员、客户端、,顾问等。因此,一般来说,未来的应用程序可能会很复杂。如果可以通过RTC或web客户端在Nav中完成所有这些事情,那么此解决方案的目标是什么?公司的老板希望能够通过RTC和web客户端完成所有这些事情,但客户和顾问将只能使用web客户端。问题是,您为什么不这样做只用导航?您的解决方案将做什么Nav做不到的事情?Nav2013具有RTC和web客户端。为RTC创建的页面将自动转换为web客户端的网页。您可以通过WAN使其可用,并从任何地方访问它。您的解决方案听起来就像另一个web客户端。那你为什么需要它呢?会有什么不同?好的,这就是我要找的。谢谢。@Lazys如果这回答了你的问题,你应该接受这个答案。