通过 Web 服务或 API 在 Microsoft Dynamics NAV 中创建订单

发布于 2024-09-27 16:00:20 字数 180 浏览 6 评论 0原文

我的任务是创建一个 API,使第 3 方客户能够将订单发送到我们的 Microsoft Dynamics NAV 5.0 SP1。

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

感谢任何帮助引导我走向正确的方向。

I am tasked with creating an API that would allow 3rd party customers the ability to send orders into our Microsoft Dynamics NAV 5.0 SP1.

I want to be able to create a SalesOrder in Dynamics NAV not with the client but via an API so i can allow a seperate process to enter in orders automatically.

Any help is appreciated in leading me in the right direction.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

稀香 2024-10-04 16:00:20

嗯,这取决于你想把它弄得有多复杂。您是否需要“实时”确认销售订单创建?如果是这样,您将需要使用 Web 服务并确保从客户创建订单的位置(公共互联网、外联网)到您的 NAV Web 服务存在网络路径 - 可能使用 VPN 隧道等。
埃斯
或者,如果您可以接受批处理类型的流程,那么您可以让您的客户通过基于 Web 的表单等创建 SO,然后使用数据端口或 XMLPort 定期将这些订单导入到 NAV 中。

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

据推测,您还需要一种方法将项目数据库公开给订购接口,以便客户可以选择要订购的项目(并因此创建 SalesLine)。

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

Well, it depends on how complicated you want to make it. Do you need confirmation of the Sales Order creation in "real time"? If so, you'll need to use a Web Service and ensure that there is a network path from wherever customers will create orders (public internet, extranet) to your NAV Web Service - likely using a VPN tunnel, etc.
es th
Alternatively, if you can live with a batch type process then you can have your customers create SOs via a web-based form, etc. and then import these orders into NAV on a regular basis using Dataports or XMLPorts.

For example, you may have a form online that your customer can create an Order on that places the Order in a staging table in SQL or even an XML or CSV file. Then you can run a process on a regular basis that imports these Orders into NAV and creates the appropriate SalesOrders.

Presumably, you also need a way to expose your Item database to the Ordering interface so customers can select which Items to order (and therefore create SalesLines from).

Which type of scenario are you interested in?

瑾夏年华 2024-10-04 16:00:20

Web 服务是必经之路;我们有几个具有类似要求的应用程序。我建议构建一个接口(ASP,以利用 NAV 的 Web 服务)并让它以这种方式与 NAV 对话。

不建议直接编辑数据库,因为这会导致锁定,如果不小心,可能会导致死锁。另外,当涉及到数据库时,NAV 可能非常敏感,因此如果可能的话最好不要直接写入它:)

我建议创建一个处理销售订单的代码单元,您可以在其中创建函数“CreateOrder”,然后通过 Web 服务公开它。即使您不打算使用基于 Web 的界面,NAV 也会使用 SOAP 协议 —— 许多库都可以让您从其他语言(例如 Java.=)连接 Web 服务并与之交互。

Web Services is the way to go; we have several applications that have a similar requirement. I'd recommend building an interface (ASP, to utilise the web service from NAV) and have it talk to NAV that way.

Editing the database directly is not recommended as it will cause locking and may result in deadlocks if not careful. Also NAV can be quite sensitive when it comes to the database, so best not write to it directly if possible :)

I'd recommend creating a codeunit that handles the sales order, in which you can create your functions, 'CreateOrder' and then expose that via Web Services. Even if you're not planning to use a web-based interface, NAV uses the SOAP protocol -- many libraries exist to enable you to connect and interface to Web Services from other languages, like Java.= for instance.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文