2010-10-13 84 views
1

我的任务是创建一个API,使第三方客户能够将订单发送到我们的Microsoft Dynamics NAV 5.0 SP1。通过Web服务或API在Microsoft Dynamics NAV中创建订单

我希望能够在Dynamics NAV中创建SalesOrder,而不是通过客户端,但通过API创建,这样我就可以允许单独的流程自动输入订单。

任何帮助在领导我朝正确的方向赞赏。

回答

1

嗯,这取决于你想要做多复杂。您是否需要“实时”确认销售订单创建?如果是这样,您需要使用Web服务,并确保从客户将创建订单(公共互联网,Extranet)到您的NAV Web服务的任何地方的网络路径 - 可能使用VPN隧道等。 es th 或者,如果您可以使用批量类型流程,那么您可以让您的客户通过基于Web的表单等创建SO,然后使用Dataport或XMLPorts定期将这些订单导入NAV。

例如,您可能有一个联机表单,您的客户可以创建一个订单,将订单放置在SQL的临时表中,甚至是XML或CSV文件中。然后,您可以定期运行一个流程,将这些订单导入NAV并创建适当的SalesOrders。

假设您还需要一种方法将商品数据库展示给订购界面,以便客户可以选择要订购的商品(从而创建销售线)。

您对哪种类型的场景感兴趣?

+0

感谢您回答Rob,我只对Real Time订单感兴趣。确认将是Navision的实际SalesOrderNumber。因此基于批处理的处理将不符合要求。我希望有一个内置的Navision API,我可以调用像CreateOrder这样的方法,它会触发Navision中的代码,就像我使用客户端时一样。注意:Item数据库已经通过我们的SQL数据库公开。 – 2010-10-13 23:52:48

0

Web服务是要走的路;我们有几个具有类似要求的应用程序。我建议构建一个接口(ASP,利用来自NAV的Web服务)并让它以NAV的方式与NAV交谈。

不建议直接编辑数据库,因为它会导致锁定,如果不小心可能会导致死锁。当涉及到数据库时,NAV可能相当敏感,所以最好不要直接写入它:)

我建议创建一个处理销售订单的代码单元,您可以在其中创建函数, CreateOrder'然后通过Web服务公开。即使您不打算使用基于Web的界面,NAV也使用SOAP协议 - 存在许多库以使您能够从其他语言(例如Java)连接和连接到Web服务。