-2

我们有一个自制的销售工具,它是为通过 DI 服务器使用 SAP Business One 系统而开发的。我们有大约 40 名员工,他们通过远程桌面以自己的用户登录到同一台机器。所有用户都有我们销售工具的桌面快捷方式。现在我们不能使用 DIAPI,因为 SAP 是按 CPU 许可的。因此,如果所有员工(销售人员)都通过远程桌面登录到同一台机器上,就会出现许可证问题。

老实说,我们的解决方案相当肮脏。我们开发了一个在我们家的服务器上运行的 cmd 工具。此 cmd 工具正在侦听客户端并从客户端接收 XML。在它收到一些 xml 后,它将 XML 发送到 DI 服务器并等待响应并将结果发送回客户端。我们的架构存在巨大的性能问题,就像我之前所说的,这是一个非常肮脏的解决方案。

现在我要为客户端和 SAP B1 之间的通信寻找另一种解决方案。我正在考虑使用 WCF 或 WebAPI(也许有什么建议我可以决定哪一个更适合我?)

因此,当我决定构建 WCF 或 WebAPI 解决方案时,如何使用干净的架构解决许可问题?我的意思是我们的所有员工(用户)都拥有 SAP B1 许可证。每个用户的用户名和密码都保存在 LDAP 中。所以我可以从 LDAP 中读取用户和密码,并使用正确的许可证将它们记录到 SAP 中。

我想在 WCF/WebAPI 中拥有我所有的业务逻辑。现在完整的业务逻辑在销售工具中。

所以我的想法是这样的: 我有我的 WCF/WebAPI 服务,其中包含业务逻辑。用户启动该工具(通过远程桌面登录)。LDAP 获取用户 SAP 用户名和密码,并通过服务登录 SAP。用户登录后可以使用该工具,同时多个用户可以并行工作。我认为多个用户的事务逻辑是由 DIServer/DIAPI 给出的,我什至不知道我必须使用哪个。我希望有人能告诉我我的解决方案需要哪些

因此,如果有人对一个好的架构/我的问题的一个好的解决方案有任何建议,那就太好了。

非常感谢

4

2 回答 2

1

有没有办法可以使用每用户许可?我从来没有真正看到过每个 CPU 许可证。每个用户都更好,因为每个专业用户都会自动附加一个插件(DIAPI)许可证......也许实际上可以与您的合作伙伴核实,因为我很确定DIAPI许可证应该已经给你了 -从未见过客户必须为 DIAPI 付费的情况。

  • 话虽如此,我已经离开 SBO 游戏几个月了,他们可能已经改变了他们的许可系统,所以也许我弄错了,即使你确实获得了 DIAPI 许可证,它对于基于 WAN 的解决方案来说也很糟糕,因为它很慢(您可以委托给使用连接池的服务并预先建立多个 DIAPI 连接,以循环方式将它们分发给客户端,但它会像筛子一样泄漏内存,所以不要去那里!)

  • 至于架构 - 我过去曾亲自编写过一个 Web 服务(asmx,老派!),它使用 DI 服务器仅使用一个许可证进行导入;一旦您完成了对 DI 服务器的初始登录(如果它与 DB 服务器在同一台服务器上运行,则只需几秒钟),随后的访问将非常快;使用这个系统,我们在 3 天内导入了 1000 万个 Item Master 插页,这对于 SBO 来说非常快。

  • 唯一的缺点是您无法通过使用 SAP 查看历史记录屏幕确切地看到是哪个用户进行了交易,但老实说,您可以将自己的交易记录到您自己的表中并使用例如 UDF 来记录用户名最后修改了数据。无论如何,SAP 更改日志有点垃圾,如果编写自己的服务,您可以完全控制记录的内容和不记录的内容。

  • 因此,如果您使用例如 WebAPI 服务(我建议通过 WCF,它更易于设置,甚至可以在 IIS 之外托管),您可以将请求转换为 DI 服务器格式的 XML,然后使用向 DIS 发送登录消息您为此设置的单个特殊用途用户,执行事务,然后发送注销,以便下一个请求具有许可证。

  • 或许可以考虑多购买几个 DIS 许可证,它们不是很贵,这样您也可以在服务上进行一些共享;因为即使导入 100 个文档也只需要几秒钟,如果您当前没有使用许可证,您可以让客户“暂停”。

希望有帮助...

于 2013-09-30T23:01:35.560 回答
1

WebAPI 服务可以,但您必须创建整个应用程序。

我的一位顾问以前这样做过,所以许可证只是为了访问数据库。

这是可能的,但非常耗时,因为您必须在基于 Web 的界面上构建整个应用程序。不确定这是否是一个可行的解决方案。

Byrne 先生是对的,您应该咨询您所在国家/地区的 SAP 合作伙伴。

希望这有帮助。

于 2013-10-02T09:42:22.620 回答