Navision/Microsoft Dynamics版本5上的Web服务...还是其他? [英] Webservice on Navision / Microsoft Dynamics version 5... or else?

查看:156
本文介绍了Navision/Microsoft Dynamics版本5上的Web服务...还是其他?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个问题为我赢得了风滚草徽章(7天有7次观看!),这在某种程度上有力地证明了 Navision 的市场份额非常有限,我怀疑这应该是一个确认Navision并不是很好的软件...

This question has earned me a tumbleweed badge (7 views in 7 days!), which is somehow a strong confirmation that Navision has a very limited market share, which - I suspect - should be a confirmation Navision is neither all that great piece of software...

但是,嘿...这就是我们作为后端所获得的,所以我准备与此作斗争. :-O

But hey... that's what we got as a back-end, so I am ready to fight with this. :-O

如果有一些大胆的navision开发人员能够阐明这一点……赏金就在这里! :)

If there is some daring navision developer who is able to shed light onto this... the bounty is there for you! :)

我最近实现了一个相当复杂的电子商务系统,该系统与基于Navision 5的旧版后端进行交互.到目前为止,两个平台之间的数据交换是通过XML文件进行的,但是这种方法非常笨拙,而且非常容易发生不幸.

I have recently implemented a rather complex e-commerce system that interacts with a legacy back-end based on Navision 5. So far the exchange of data between the two platform has happened via XML files, but this method is quite clumsy and very much prone to mishaps.

我们的需求是:

  1. 将每个平台的业务逻辑的某些要素公开给另一个平台(例如:该客户曾经购买的总金额是多少?",目前提供的产品是什么? ?,网站上有多少新客户注册?"等).
  2. 具有针对各种交易的反馈/验证机制(例如:这是来自客户X的新订单" ...好,知道了,现在该订单将开始处理" ...好,复制,再见!".
  3. 如果可能的话,避免播放文件,但要在呼叫/端口/服务方面保持所有这些状态...
  1. To expose certain elements of the business logic of each platform to the other one (for example: "what's the total amount ever purchased by this customer?", "what are the products currently on offer?", "how many new customers have registered on the website?", etc...).
  2. To have mechanisms of feed-back / validation for the various transactions (for example: "Here's the a new order from customer X" ... "Ok, got it, the order will now start to be processed" ... "Ok, copy that, bye!").
  3. If possible, avoid playing around with files, but keeping all of this happening in terms of calls/ports/services...

我能想到的最自然的方法是通过webservice集成两个系统,但是Navision 5本身不支持此功能.因此,我做了尽职调查",并在MSDN上找到了一些内容,包括

The most natural way I could think of would be to integrate the two systems via webservice, but Navision 5 does not support this natively. So I did my "due diligence" and found a few things on MSDN including this article and this other one.

根据这些文章,在Navision 5上创建Web服务应该不那么困难,但是当我向负责遗留系统的团队建议此解决方案时,他们告诉我们纯理论",他们不知道有人曾经实施过.

According to these articles it should not be that difficult to create a webservice on Navision 5, but when I suggested this solution to the team in charge of the legacy system, they told us that it is "pure theory" and they do not know of anybody who ever implemented it.

我没有理由怀疑他们的话,但是里程会有所不同 ...,我认为也许在SO社区中,有来自其他国家/地区的专业人员实际上实施了类似的操作并且可以分享他们的经验.

I have no reason to doubt their word, but mileage can vary... and I thought that maybe in the SO community there are professionals from other countries who actually implemented something similar and are available to share their experience.

所以,我的问题有两个方面:

So, my question is two-folded:

  1. 有没有人在家中尝试过这个,如果最终结果是可靠的,如果他们认为结果值得努力等等...?
  2. 是否有人遇到过类似的问题,但是用不同的方法解决了这个问题,并且可以提出自己的解决方案(我从来没有自己做过,但是如果必须这样做,我会这样做. ."也欢迎回答类型)?
  1. Is there anybody who has tried this at home and would be available to share a bit on what have been the greatest difficulties, if the final result is reliable, if they think the outcome is worth the effort, etc... ?
  2. Is there anybody who faced a similar problem but solved it with a different approach and that would be available to present their solution ("I never did it myself, but if I had to do it I would do it like this..." type of answers are also welcome)?

提前感谢您的宝贵时间! :)

Thank you in advance for your time! :)

推荐答案

我也会对Nav 6提出一个不太有用的答案:)

I too will chime in with a not-too helpful answer about Nav 6 :)

我刚刚使用Nav 6完成了一个项目.令人惊讶的是,Web服务非常易于公开和使用.在webservices界面中找到一个对象并勾选一个框来告诉它自己暴露自己,这确实是一件简单的事情.

I've just completed a project using Nav 6. Suprisingly, the webservices are VERY easy to expose and consume. It's really a trivial matter to go find a object in the webservices interface and tick a box to tell it to expose itself.

毫无疑问,Web服务无法按预期工作,您必须经常使用一些反复试验才能使对象和属性持久化,因为这对于您用于保存和保存事件的顺序确实很棘手.目的.每个对象的工作方式似乎略有不同.例如:为了创建一个客户,我最终发现您必须创建并保存一个空白客户,使用代码单元对这个新记录进行处理,然后获取记录,然后写入客户的属性并再次保存.我期望只是创建一个新的customer(),设置属性并快速保存.

Unsuprisingly, the webservices don't work as you'd expect, you have to often use some trial-and error to get objects and properties to persist, as it's really touchy as to the sequence of events you use to save and object. And each object seems to work slightly differently. eg: To create a customer, I eventually found out that you have to create and save a blank customer, massage this new record with a codeunit, then fetch the record and then write the customer's attributes and save again. I expected to just create a new customer(), set the attributes and save in one quick swoop.

我想您不太想升级到Nav6,但是让我无所适从,这是模拟网络服务的方法:

I guess you're not too keen on upgrading to Nav6, but off the top of my head, Here is how you could simulate web services:

Sharepoint已经可以使用和公开Web服务,因此层级不是问题. Nav 5没有自然地"拥有它们,但是您可以编写自己的程序来充当网络服务经纪人"-您已经可以通过XML来获取和提取信息.您可以构建此代理以将输入作为xml文件并处理它们以在Webservice调用中使用.您甚至可以放弃XML并直接从Db进行读写,因为无论如何所有Nav信息都存储在其中.所以这就是我的想法:

Sharepoint can already consume and expose webservices, so that tier isn't a problem. Nav 5 doesn't have them 'naturally', but you could cook up your own program that acts as a webservice 'broker' - you're already getting info into and out of nav, via mostly XML. You could build this broker to take input as the xml files and massage them to use in a webservice call. You could even forgo the XML and write and read directly from the Db, as all the Nav info is stored there anyway. So here's what I'm thinking:

NAV<-> SQL SERVER<->新的代理"网络服务<-> Sharepoint

NAV <-> SQL SERVER <-> New 'broker' webservice <-> Sharepoint

或者如果您已经不熟悉NAV API,并且想重新使用XML:

Or if you already have the NAV API down pat and want to resuse your XML:

NAV<-> XML文件<->新的经纪人"网络服务<-> Sharepoint

NAV <-> XML files <-> New 'broker' webservice <-> Sharepoint

如果您使用XML并使用文件监视程序,则延迟应该不会太糟糕,通常文件监视程序会下降或以毫秒为单位变化.

If you are using XML and use filewatchers, the latency shouldn't be too bad, usually filewatchers pick up on a drop or change in milliseconds.

嗯,但我认为您可能应该使用BizTalk来进行以下操作: 导航<-> BizTalk<->共享点

Hmm, but I'm thinking you are probably supposed to use BizTalk for stuff like this: NAV <-> BizTalk <-> Sharepoint

但是我不知道设置BizTalk与Nav通信会有多么容易.我敢打赌,让通讯正常工作很简单,但这是猜测.

But I don't know how easy it would be to set up BizTalk to communicate with Nav. I'll bet that it's pretty straighforward to get comms working, but this is speculation.

无论如何,我不知道这篇文章有多有用,但是也许它可以给你一些想法.

In any case, I don't know how helpful this post is, but maybe it gives you a few ideas to go with.

干杯, 兰斯

这篇关于Navision/Microsoft Dynamics版本5上的Web服务...还是其他?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆