RFC一次使用部分冗余编码还是几次没有冗余?

2020-09-21 10:47发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


伙计们,

背景

我目前正在通过oData通过任务网关为Fiori My Inbox 2.0设计自定义任务提供程序。 到目前为止,我已经总结了数据检索所需的业务逻辑,这必须通过RFC完成,因为数据位于另一个系统上,即我正在将Facade-Class作为网关上的数据提供程序实现,但是 应该管理的数据驻留在我们的ERP系统中。

幸运的是,到目前为止,我对初始数据检索所需的所有逻辑都是由ERP系统上的4个标准功能模块提供的。

问题/讨论

目前,我正在尝试找出什么是"最佳"方法,或者是什么是方法的最佳折衷方案。 到目前为止,我有两个想法,想提出来进行讨论:

A)我将4个远程功能模块合并到我的Facade类的各个方法中,这意味着它们将在嵌套调用堆栈中单独调用。 在Facade类内部或在两个SAP系统(网关和ERP)之间,都不会有编码冗余,但是会有4到X个(假设X =在最坏的情况下最多为数百个)单个RFC。

B)我在ERP系统内构建了一个包装器类,在本地进行所有数据检索,理论上可以将检索到的数据减少为网关上所需的实际零件 并且从网关到ERP系统之间仅建立一个RFC,从技术上"逻辑"地检索全部信息一次,但是,它可能在Task Gateway框架/模型中发生多次,即,可能会 信息不会被调用一次,而是几次,这在功能上是毫无意义的,但是框架可能会多次调用某些方法,因此我可能无法始终如一地保存所有信息(我现在还不知道;可能是 实际上只有一个RFC,仅此而已)。 这意味着我将在网关和ERP系统上同时拥有部分冗余的业务逻辑,并可能通过RFC整体带来更大的数据负载(至少在内容方面)。

目前,我为哪种方式感到困扰。 我个人不赞成使用方法B)进行编码冗余,但是这样做并不坏,以至于使事情变得混乱或难以维护。 这更多是一个原则问题。 另一方面,方法A)的性能可能会降低一点,但很可能不会引起人的注意,假设最终用户会不时清理其工作空间,他们很可能不会

我也愿意采用完全不同的方法,前提是经过数小时的调试和/或例行盲目检查,我已经麻木了。

欢呼,卢卡斯

(11.0 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


伙计们,

背景

我目前正在通过oData通过任务网关为Fiori My Inbox 2.0设计自定义任务提供程序。 到目前为止,我已经总结了数据检索所需的业务逻辑,这必须通过RFC完成,因为数据位于另一个系统上,即我正在将Facade-Class作为网关上的数据提供程序实现,但是 应该管理的数据驻留在我们的ERP系统中。

幸运的是,到目前为止,我对初始数据检索所需的所有逻辑都是由ERP系统上的4个标准功能模块提供的。

问题/讨论

目前,我正在尝试找出什么是"最佳"方法,或者是什么是方法的最佳折衷方案。 到目前为止,我有两个想法,想提出来进行讨论:

A)我将4个远程功能模块合并到我的Facade类的各个方法中,这意味着它们将在嵌套调用堆栈中单独调用。 在Facade类内部或在两个SAP系统(网关和ERP)之间,都不会有编码冗余,但是会有4到X个(假设X =在最坏的情况下最多为数百个)单个RFC。

B)我在ERP系统内构建了一个包装器类,在本地进行所有数据检索,理论上可以将检索到的数据减少为网关上所需的实际零件 并且从网关到ERP系统之间仅建立一个RFC,从技术上"逻辑"地检索全部信息一次,但是,它可能在Task Gateway框架/模型中发生多次,即,可能会 信息不会被调用一次,而是几次,这在功能上是毫无意义的,但是框架可能会多次调用某些方法,因此我可能无法始终如一地保存所有信息(我现在还不知道;可能是 实际上只有一个RFC,仅此而已)。 这意味着我将在网关和ERP系统上同时拥有部分冗余的业务逻辑,并可能通过RFC整体带来更大的数据负载(至少在内容方面)。

目前,我为哪种方式感到困扰。 我个人不赞成使用方法B)进行编码冗余,但是这样做并不坏,以至于使事情变得混乱或难以维护。 这更多是一个原则问题。 另一方面,方法A)的性能可能会降低一点,但很可能不会引起人的注意,假设最终用户会不时清理其工作空间,他们很可能不会

我也愿意采用完全不同的方法,前提是经过数小时的调试和/或例行盲目检查,我已经麻木了。

欢呼,卢卡斯

(11.0 kB)
付费偷看设置
发送
12条回答
一只江湖小虾
1楼 · 2020-09-21 11:38.采纳回答

清理旧线程。/closed

CJones
2楼-- · 2020-09-21 11:30

我会选择选项A。

短版是透明的。 无论何时您想限制一个或多个选项,无论您将来希望在这里拥有什么。 正如您已经提到的,我认为最后进行4个或更多rfc调用不会有很大的延迟。 因此,考虑到我不必重复很多编码,这会使这种方法很难看,而我喜欢方法A。

B并不是我的荣幸,因为2个系统上的冗余代码。 我从自己的经验中知道,总有一天会出现问题,需要花费时间找出要使用的系统:-)

〜弗洛里安

您知道,一切都恢复了一天……昨天我在屏幕上看到了我的第一个功能模块,以检查HANA的准备情况……从没想到

3楼-- · 2020-09-21 11:29

嗨西蒙妮,

感谢您的答复! 相反,我根本不介意! :-)

在此之前:我忘了澄清自己的辛苦技巧:我或多或少地在玩耍,试图通过定制和唯一的ABAP编程来达到要求。 我没有关于使用oData和UI5进行开发的经验,这意味着我可能会因为缺乏远见而忽略某些方法。 根据我目前的知识,我认为(很可能是错误的)我必须直接进行某种RFC调用,或者使用后端操作代理(请参阅其他线程-> https://answers.sap.com/questions/278942/index.html

4个FM是必需的,或者必须依次调用(它们相互补充)以检索全部信息。 我会尝试详细说明:

如果仅通过oData某种方式可以做到这一点,我就会不禁(即使我最初可能不太了解它,也必须进行一些研究)。

欢呼,卢卡斯

歪着头看世界
4楼-- · 2020-09-21 11:29

我将您的评论转换为答案。 所以我以后可以"接受"(出于论坛整洁的目的,因为它值得>。<),希望您不要介意。

更像是相反。 UI(Fiori App)和任务网关服务都在网关系统(FES/中央集线器)上,并且网关上的Facade类充当任务网关和后端数据(在我的情况下是ERP)之间的代理。 但是,最初的"问题"仍然是相同的,即您的论点是将系统之间的乒乓球保持在最低水平是合法的。

我认为这里不存在"对与错",非常感谢您对此事的看法! :-)

对此事有更多意见(醒来,马特!)!

CPLASF-自律
5楼-- · 2020-09-21 11:18

感谢@Richard和Patrick的投入,看来选项B即将赢得 种族。

梦想连接
6楼-- · 2020-09-21 11:24

@Florian,很久没有"看到" ;-),谢谢您的意见。 但是,有了我现在所有的输入,我倾向于在ERP系统上构建一个包装器,然后调用该包装器,希望TGW框架对我来说很好,也许我可以以一致的方式"缓存"数据。 这样一来,我将既受益于这两种方法,也受益于这两种方法。

不过,请不要误会我的意思,我确切地知道您的意思。 从我现在不知道自己在做什么的那一刻起,我仍在维护我的第一个"更大"的实现-_-

一周热门 更多>