2010-10-13 93 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服務。