我的任务是创建一个API,允许第三方客户将订单发送到我们的Microsoft Dynamics NAV 5.0 SP1。
我希望能够在Dynamics NAV中创建SalesOrder,而不是通过客户端,而是通过API,这样我就可以允许单独的流程自动输入订单。
在引导我朝着正确的方向前,任何帮助都是值得赞赏的。
答案 0 :(得分:1)
嗯,这取决于你想要的复杂程度。您是否需要“实时”确认销售订单的创建?如果是这样,您将需要使用Web服务并确保存在从客户创建订单(公共互联网,外联网)到您的NAV Web服务的任何地方的网络路径 - 可能使用VPN隧道等。 es 或者,如果您可以使用批处理类型流程,那么您可以让客户通过基于Web的表单等创建SO,然后使用Dataports或XMLPorts定期将这些订单导入NAV。
例如,您可能有一个在线表单,您的客户可以创建一个订单,将订单放在SQL的临时表中,甚至是XML或CSV文件。然后,您可以定期运行一个流程,将这些订单导入NAV并创建相应的SalesOrders。
据推测,您还需要一种方法将Item数据库公开给Ordering接口,以便客户可以选择要订购的项目(从而创建SalesLines)。
您对哪种情况感兴趣?
答案 1 :(得分:0)
Web服务是最佳选择;我们有几个具有类似要求的应用程序。我建议建立一个界面(ASP,利用NAV的网络服务)并让它与NAV交谈。
不建议直接编辑数据库,因为它会导致锁定,如果不小心可能会导致死锁。此外,对于数据库,NAV可能非常敏感,因此如果可能,最好不要直接写入:)
我建议创建一个处理销售订单的代码单元,您可以在其中创建您的功能,'CreateOrder',然后通过Web服务公开它。即使您不打算使用基于Web的界面,NAV也使用SOAP协议 - 存在许多库,使您能够从其他语言(例如Java。)中连接和连接Web服务。