Dynamics Nav 2013 Web应用程序

时间:2014-06-05 08:13:53

标签: asp.net-mvc integration navision dynamics-nav dynamics-nav-2013

我想创建将与nav 2013集成的Web应用程序(如仪表板)。(从Nav中获取数据,将其显示给客户,还可以更新或插入数据)。

在Nav中,我已经完成了所有表格和页面,这些表格和页面都在字段上具有所有条件和功能。

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

当您在页面上工作时,Navision中的一切工作正常,但在我使用webservices与NAV通信的应用程序中,我遇到了很多问题,这些问题都是在表格中指定的。

我的问题是,最好准备"空白" nav中的表格并在我的Web应用程序(asp.net)中创建完整的逻辑或操作Nav中指定的逻辑?

在我看来:

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

1 个答案:

答案 0 :(得分:1)

根据评论我会说最简单的解决方案:

  • 创建一组表(让我们称之为集成表),这些表上没有逻辑,也不会与Nav实体相关(如任务或项目或基础中的任何表)。这将是仅用于通信的表格。
  • 创建调度程序代码单元,它将承载大部分通信和数据转换逻辑。
  • 根据集成表发布调度程序代码和页面。
  • 使用已发布的页面将消息推送到Nav并从Nav中读取数据。
  • 每次推送消息后调用窗帘调度程序方法来执行所需的所有操作(例如插入和更新记录到导航)
  • 使用OData,Pages或codeunit函数返回XML,以读取您需要在Web表单上显示的所有数据。我的建议是不要直接(通过页面)更新/插入Nav本机表,只能通过集成表和调度程序。在这种情况下管理错误会更容易。
  • 定期从集成表中删除旧记录或已处理记录。

这将允许您将大部分业务逻辑保留在Web应用程序端,但也保留了将一些通用逻辑(例如限制等)放入Nav(通过调度程序和表触发器)的能力,因为调度程序将始终返回给您从Web应用程序发送的操作结果天气消息已成功处理。

请注意,可能存在陷阱。