在外部子例程调用中拦截错误消息

2020-08-30 02:26发布

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

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


嗨,

正在创建一个包装外部子例程调用的"外观"功能模块,然后使用EXCEPTIONS error_message = xx 添加目前仍然是"拦截"由外部调用的子例程发出的错误消息的唯一且唯一的方法吗? 还是有另一种方法(可以说是一种技巧)不需要创建功能模块?

上下文是:试图几乎无一例外地但有能力地勤奋地包装有价值的" SAP逻辑"(合理的代码模块化程度;最小化全局状态的直接使用;在PBO/PAI模块中直接使用的代码很少,在 子例程具有广泛的子例程,甚至到处都启用了对话框抑制功能)都与DYNPRO绑定在一起,因此假定"外部功能"无法重构或复制(就维护而言,这可能会打开更大的蠕虫病毒罐)。

谢谢,
Janis

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

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


嗨,

正在创建一个包装外部子例程调用的"外观"功能模块,然后使用EXCEPTIONS error_message = xx 添加目前仍然是"拦截"由外部调用的子例程发出的错误消息的唯一且唯一的方法吗? 还是有另一种方法(可以说是一种技巧)不需要创建功能模块?

上下文是:试图几乎无一例外地但有能力地勤奋地包装有价值的" SAP逻辑"(合理的代码模块化程度;最小化全局状态的直接使用;在PBO/PAI模块中直接使用的代码很少,在 子例程具有广泛的子例程,甚至到处都启用了对话框抑制功能)都与DYNPRO绑定在一起,因此假定"外部功能"无法重构或复制(就维护而言,这可能会打开更大的蠕虫病毒罐)。

谢谢,
Janis

付费偷看设置
发送
4条回答
当学会了学习
1楼-- · 2020-08-30 02:59

我们决定不尝试"尝试冒险",而只包装SAP为其至少制造了一个功能模块的功能:)

nice_wp
2楼-- · 2020-08-30 03:03

我正在看……大约18 FM,仅用于包装包含用于"主屏幕"表控件的输入验证的逻辑:)

和另一个 input-validation- &-state-modification 子例程提出了特殊的挑战,因为出于某种奇怪的原因(到目前为止,这对我来说还不为人所知),该子例程直接从全局功能组状态TC声明中获取当前表控制行,而不是使用 像大多数需要当前TC行的其他INPUT子例程一样,从PAI模块传递下来的...但是我有一种奥秘的方法,可以通过执行滚动逻辑来"控制"全局TC当前行,[我想说的是:]

< 据我从系统中所看到的推测,当SAP员工自己开始实施要求时,将预算帐单计划编辑功能的一部分向外界公开(最初是另一个"表达变更"交易,然后是CRM系统)。 ..),他们都看了看,然后...

  1. 缩小了绝对需要公开的最小功能,
  2. 围绕" Yuge,复杂类型"编程了另一个功能组,该功能组表示已处理的"对象"的其他状态,并通过外部重用 执行哪些验证/状态修改被认为可直接重用,并且...
  3. 复制了需要调整的位...

从来没有,现在我怀疑会永远 成为一个BAPI或与此类似的东西...现在甚至还有一个SAP多渠道公用事业和公共部门基金会,同样,它具有ODATA Entity BudgetBillingPlan,但是,可惜-仍然没有POST(创建),DELETE和 仅限 S/4HANA 1909 的非常有限的PUT(更改) Yevgen Trukhin :)-我怀疑,至少在大约15年或以上的时间里,我忠实地反映了技术决策 前。

我正在计划一个任务,以使世界和我们的衰老系统变得更美好! :)并希望我知道编写EA61EX FG的人们知道或怀疑的事情...

compass1988
3楼-- · 2020-08-30 03:11

Ups,只是注意到了更多但并非完全无法克服的挑战...:)

樱桃小丸子0093
4楼-- · 2020-08-30 03:04

我想我必须 支持有关没有什么类似于BAPI的评论,并且与ABAP问题无关,但是此IMO很好地展示了无法/舒适/允许/插入另一个原因-重构"原始代码"的陷阱 "。 现在,围绕"巨大的复杂类型"编写了至少3个功能组,这些功能组代表正在处理的"对象"。 原始代码中的"业务逻辑"条幅已进行了最小程度的复制,而不是提取以进行重用或"就地"调整:

仍然没有可以轻易暴露的"通用",可重用的API,以及在需要时解决的问题,或者 到了一天,在更改同一"业务对象"的所有"应用"之间的功能和功能方面都达到了均等,IMO变得更加复杂...:(

一周热门 更多>