我的任务是创建一个 API,使第 3 方客户能够将订单发送到我们的 Microsoft Dynamics NAV 5.0 SP1。
我希望能够不使用客户端而是通过 API 在 Dynamics NAV 中创建 SalesOrder,这样我就可以允许单独的流程自动输入订单。
任何帮助都可以引导我朝着正确的方向前进。
我的任务是创建一个 API,使第 3 方客户能够将订单发送到我们的 Microsoft Dynamics NAV 5.0 SP1。
我希望能够不使用客户端而是通过 API 在 Dynamics NAV 中创建 SalesOrder,这样我就可以允许单独的流程自动输入订单。
任何帮助都可以引导我朝着正确的方向前进。
好吧,这取决于您想要使它变得多复杂。您是否需要“实时”确认销售订单的创建?如果是这样,您将需要使用 Web 服务并确保存在从客户创建订单的任何位置(公共互联网、外联网)到您的 NAV Web 服务的网络路径 - 可能使用 VPN 隧道等。如果您可以使用批处理类型的流程,那么您可以让您的客户通过基于 Web 的表单等创建 SO,然后使用 Dataports 或 XMLPorts 定期将这些订单导入 NAV。
例如,您可能有一个在线表单,您的客户可以在该表单上创建订单,将订单放置在 SQL 中的临时表中,甚至是 XML 或 CSV 文件中。然后,您可以定期运行一个流程,将这些订单导入 NAV 并创建适当的 SalesOrders。
大概,您还需要一种方法将您的 Item 数据库公开给 Ordering 接口,以便客户可以选择要订购的 Items(并因此创建 SalesLines)。
您对哪种类型的场景感兴趣?
Web 服务是要走的路;我们有几个具有类似要求的应用程序。我建议构建一个界面(ASP,以利用 NAV 的 Web 服务)并让它以这种方式与 NAV 对话。
不建议直接编辑数据库,因为它会导致锁定,如果不小心可能会导致死锁。当涉及到数据库时,NAV 也可能非常敏感,所以如果可能的话最好不要直接写入它:)
我建议创建一个处理销售订单的代码单元,您可以在其中创建函数“CreateOrder”,然后通过 Web 服务公开它。即使您不打算使用基于 Web 的界面,NAV 也使用 SOAP 协议——存在许多库以使您能够从其他语言(例如 Java.=)连接和连接 Web 服务。