web服务上的Navision / Microsoft动态版本5 ...要不?(Webservice

2019-10-18 10:44发布

去赏金!

这个问题已经为我赢得了一个滚草徽章(7次7天!),这是莫名其妙的是Navision公司有一个非常有限的市场份额,其强大的确认-我猜想-应该是一个确认的Navision既不是所有伟大的软件...

但是,嘿......这就是我们得到的后端,所以我准备这个战斗。 :-O

如果有一些大胆的Navision开发谁能够阐明到这个......赏金是有你! :)


原贴

我最近实施了基于Navision的5迄今为止的两个数据平台之间的交流已经通过XML文件发生的遗留后端交互相当复杂的电子商务系统,但这种方法很笨拙,很容易到事故。

我们的需求是:

  1. 暴露给另一每个平台的业务逻辑的某些元素 (例如:“什么是有史以来该顾客购买的总金额”,“哪些产品目前的报价?”,“有多少新客户注册在网站上?”,等等)。
  2. 有反馈/验证的各种交易( 例如机制 :“这里是从顾客X新秩序” ......“好,我知道,订单会从现在就开始进行处理” ......“好,复制,再见!“)。
  3. 如果可能, 避免玩弄的文件 ,但保留所有这种情况发生的在呼叫/端口/服务上...

我能想到的最自然的方式是通过web服务集成两个系统,但Navision的5本身并不支持这一点。 所以,我做我的“尽职调查”,发现在MSDN上的几件事情,包括这篇文章和该另一个 。

根据这些条款不应该是很难的Navision公司5创建一个Web服务 ,但是当我提出这个解决方案团队负责遗留系统的,他们告诉我们,这是“纯理论”,他们不知道的谁曾经实现了它任何人。

我没有理由怀疑他们的话,但里程可以改变 ......我认为,也许在SO社区有来自究竟是谁实施了类似的东西,都可以分享他们的经验,其他国家的专业人员。

所以,我的问题是两折:

  1. 有没有谁一直在家里尝试这样做 ,将可分享什么一直是最大的困难一点任何人,如果最终的结果是可靠的,如果他们认为结果是值得的,等等?
  2. 有没有谁遇到过类似的问题,但用不同的方法来解决它,这将可提出自己的解决方案(任何人:“我从来没有它自己,但如果我不得不这样做我会做这样的......”型答案也欢迎)?

预先感谢您的时间! :)

Answer 1:

我也要附和关于导航6不太有用的答案:)

我刚刚完成了使用导航6.项目令人惊奇的是,web服务是非常容易暴露和消费。 这真是一件小事去发现在Web服务界面中的对象,并勾选一个框,告诉它暴露自己。

Unsuprisingly,web服务不工作如你所期望,你必须经常使用的一些尝试和错误来获得对象和属性坚持,因为它是作为事件的使用,以保存和对象序列确实棘手。 每个对象似乎略有不同的工作。 例如:要创建一个客户,我终于找到了,你必须创建和保存一个空白的客户,按摩这个新的记录与codeunit,然后取记录,然后再写客户的属性和保存。 我预计只需要创建一个新的客户(),设置属性,并保存在一个快速俯冲。

我想你是不是升级到Nav6过于激烈,但把我的头顶部,这里是你如何可以模拟Web服务:

已经的Sharepoint能消耗和暴露web服务,所以该层是没有问题的。 导航系统5没有他们“自然”,但你可以编造自己的程序充当Web服务“经纪人” - 你已经得到的信息流入和流出导航的,大多是通过XML。 你可以建立这个经纪人把输入的XML文件,并加以按摩的Web服务调用使用。 你甚至可以放弃XML和写入,并直接从数据库中读取的,因为所有的导航信息是无论如何存储在那里。 因此,这里是我在想什么:

NAV < - > SQL SERVER < - >新的 '经纪人' web服务< - >的Sharepoint

或者,如果你已经有了NAV API拍下来,并希望resuse您的XML:

NAV < - > XML文件< - >新的 '经纪人' web服务< - >的Sharepoint

如果你正在使用XML和使用filewatchers,等待时间应该不会太差,一般filewatchers拿起毫秒的下降或变化。

嗯,但我想你可能应该使用BizTalk为这样的东西:NAV < - >的BizTalk < - >的Sharepoint

但我不知道这将是多么容易建立的BizTalk与导航通信。 我敢打赌,这是非常简单明了让通讯科工作,但是这是炒作。

在任何情况下,我不知道这个帖子是如何帮助别人是,但也许它给你一些想法,一起去。

干杯,兰斯



Answer 2:

我在哪里工作,我们能够使用从NAV 6 Web服务与SharePoint集成一个,这样你就可以查找客户或记录,并显示在SharePoint中的Web部件。 我知道你的问题是在讲究资产净值5,但我只看到NAV 6.这个工作,我并没有谁对这个工作的开发人员,所以我没有任何更多的细节我害怕。

你有没有试着问上mibuso.com? 他们更Navision的聚焦。



Answer 3:

当你说暴露的商业逻辑,这是否包括执行AL代码(如CodeUnit)? 如果你只需要对数据库进行查询,你可以使用NODBC&System.Data.Odbc或CFRONT .NET API。 无论这些可以很容易地使用.NET Web服务被包裹,并且都支持本地NAV数据库。 要通过邮件备份你仍然需要使用COM,你提到的第一篇文章中介绍。

以上任何一项都是完全有可能的,并且依赖于.NET,COM和NAV的熟练程度相对比较容易。

您所连结的第二篇文章,以介绍如何使用NAS。 我没有这方面的专家,但我认为这可能需要一个特殊的许可证颗粒。 之前花时间来实现它的东西值得检查您的许可证是否包括NAS,CFRONT或NODBC。



Answer 4:

实际上,你可以做导航系统5的“技术升级”到2009年NAV,然后使用本地Web服务。 这意味着更换的EXE文件和整个应用程序(而不是对象,这将仍然是第5版),以及其他几个花样。 但它的工作原理,这样的话你有你的资产净值5 :-) 2009年Web服务的功能



Answer 5:

对于任何的谷歌搜索这一点,如果你还在上Navision的6本地数据库的好处,连接的一个好方法是通过Windows消息队列。

您可以编写把XML请求到队列自己的Web服务,然后等待回复弹出。 在Navision的一面,你有拉队列,并把答案放进响应队列中的一个客户。 有一个称为NAS应该是一个特殊的非GUI客户端。

我一直在使用这种方法了15年来预订引擎连接到了Navision的后端。 它的工作原理非常好,具有的优点是你可以在请求他们到达之前的Navision偷看,这样可以保护您的后端从过多的或错误的请求。

这种方法唯一的问题是,内Navision的COMMIT命令是超贵。 这是很难满足要求的高容量。 一旦后端需要提交,你是下降到只有每秒几个请求。 这可能是罚款低量。

对于高容量,你需要实现缓存或得到一些业务逻辑出来。 对我来说,这是越来越受价格比较网站打,所以这里的解决方案是服务于那些用Python编写的Web服务,并只对请求传递,如果有人买东西...



文章来源: Webservice on Navision / Microsoft Dynamics version 5… or else?