内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

域名交易_贵港网站建设_免费1年

2021-07-23 01:54 出处:欧普曼云计算 人气: 评论(0

域名交易_贵港网站建设_免费1年

亲爱的社区,增强(SD用户出口、客户出口、业务外接程序、源代码增强等)是定制自己流程的好方法。

但是,如何实现增强很重要。你可以得到真正的过程优势,同时你可以得到设计(技术)问题,这将伴随你很长一段时间,也许永远。根据"一次编程,维护一千次"这句话,这样的事情会让生活变得困难…一千次。

不幸的是,我在实践中不时遇到一些增强实现的负面例子。我对他们中的一些人不是无辜的,所以我分享我的经验和想法,以便其他人能够在将来做更好的增强实现。

我也为这个异常长的博客道歉。阅读时请喝两杯咖啡或茶。

这里有一个非常经典的例子:增强"MM06E005"(采购文档中的客户字段)。可与交易单SMOD核对,360大数据,

可用于采购订单表头和物料级的增强(例如见交易单ME23N)。但不仅仅是采购订单。此外,还包括协议和报价要求。

这是一个很好的细节,但在增强的描述中使用了术语"采购文件"。这意味着三种不同的事情(业务对象类型):采购订单、协议和询价。开发人员实现了采购订单的增强(或者他们认为这样做了),但同时也影响了协议和报价请求

用于增强不同业务对象类型的屏幕是分开的(不同的dynpro)。应用程序逻辑不是这样的。例如,如果您在Include ZXM06TOP中定义了一个全局变量,那么它在所有三种业务对象类型的应用程序逻辑中都是可见的。如果您不小心,怎么做淘客推广,这将导致"污染"内存和误解。

请查看功能模块"EXIT_SAPMM06E_006"(将数据导出到采购文件标题(PBO)的客户子屏幕)。此功能模块有一个导入参数"I\u BSTYP"。它的存在是为了区分采购订单、协议和询价。您可以根据业务对象类型设计应用程序逻辑。正如我所说:"您可以"…

此外,您经常会在这些增强中发现许多应用程序逻辑。太多的应用程序逻辑导致无法再区分进程。全局变量和局部变量以及常量、导入、导出、更改和表格参数形成了一个丰富多彩的组合–任何人在这里更改某些内容都是非常有经验、勇敢、绝望或被迫的

如果两个增强提供相同或类似的选项,情况会变得更糟。例如,增强"MM06E005"和业务外接程序(BAdI)ME\u PROCESS\u PO\u CUST。然而,BAdI也可以用来增强事务逻辑(dialog)和业务应用程序编程接口(bapi,dialog/background)。

这里的可能性和草地上的花一样多。不幸的是,这种情况也带来了问题。

幸运的是,人们能够找到复杂问题的答案。以下是我的一些方法。有的已经试过了,有的还在考虑。很乐意评论和讨论。

在中国经典文本《道德经》中有一段话是这样写的:"整理尚未混乱的东西"(对不起,我的翻译不好)。我经常遇到没有充分考虑问题的情况。人们常说必须要有所发展。这个决定做出得出奇地快。

那是不对的。至少在我看来不是。编程不是万能的。有时有非常好的标准解决方案,或者需要对过程进行重组。当然,这是一场"严肃/激烈"的讨论,什么是大数据分析,也许是一场冲突。但必须解决。增强实现的后果可能比解决冲突和选择不同的非编程解决方案更昂贵。

我在openSAP课程"为ABAP编写可测试代码"中第一次听到这个术语。在我们被污染的海洋里,对不起,这些是小救生筏(小岛)。您可以通过调用类的方法将增强扩展扩展到自己的源代码中。不多了。这个类和其他类(组合)实现所需的应用程序逻辑。在增强中没有进一步的应用逻辑。

这有许多积极的方面。调用方法时的参数已经阐明了什么是重要的。类名和方法有助于对意义和目的作出结论。局部变量可以减少。可以保证可测试性(不要忘记编写接口)。调试更舒适。

增强实现的开/关开关可以挽救生命。例如,可能有一个中央框架来管理所有增强实现的开/关状态。或者您有单独的开关,因为它们依赖于某些组织数据,例如公司代码和采购组织。

在任何情况下,您都应该能够通过关闭来对不可预见的情况作出反应。顺便说一句,对我来说,"紧急关闭系统"并不是一个迹象,表明你还不了解问题的方方面面。它们更多的是对现实生活的尊重(见墨菲定律)!

在增强实现中,应将全局变量、类型和常量减少到最小值。否则,它们会污染内存。常量和类型可以外包给类或接口。一定要使用合适的名字。

增容在哪里真正有影响?你应该仔细检查和测试,以避免任何负面的惊喜。如上所述,当通过远程函数调用(RFC)调用bapi时,它们会受到影响。这可能会在SAP ERP系统以外的系统中引发问题(错误日志)。

有时不允许或不允许以特殊方式输出消息(消息语句)。有些增强功能不是为输出消息而设计的。另一些则具有导出参数或特殊机制,以将消息返回到标准应用程序逻辑。你应该仔细看看。

一些增强功能允许你向标准应用程序逻辑报告错误。你应该问问自己,用户是如何识别错误情况的,以及清除错误情况的选项(仍然存在)。

根据我的经验,一些增强功能提供了向标准更新过程的更新功能模块注册的机会。这是由标准应用程序逻辑触发的。由您自己的代码触发的隐式或显式提交不是一个好主意。

应该在正确的上下文中进行增强。这可以是客户范围的,也可以是特定于客户的,甚至取决于公司代码等组织元素。无论如何,它应该只适用于正确的流程,云购,不要打扰其他人。

如果一个增强实现非常复杂,以至于没有人能够维护它(即使是最勇敢和最有经验的人),那就有一个大问题。此时,您将失去安全地增强标准流程的能力。这限制了公司的发展。在我看来,每日返利,剩下的只是大量的重新分类。一步一步地。对我来说,几乎没有一个地方的注释掉的源代码比复杂的增强更令人不安。删除优于注释(信任版本控制)。这有助于在设计阶段保持跟踪。在运行时调试更容易,不像跳过大量的非活动语句。

在升级过程中,我不得不一次又一次地检查各种增强功能。我记得有一个案例,用于处理销售文档的用户出口突然变空(包括MV45A…)。不管什么原因。因此,每次升级(如安装增强包)后,我都会检查它们。对于测试人员来说,在测试过程中确定这些增强功能是否已经完成并不总是容易的

中国也有一句谚语:"如果你真的想知道什么,就去问一个有经验的人,而不是一个聪明的人"(再次为我糟糕的翻译道歉)。经验非常重要,尤其是在增强方面。因为它们是通过标准应用程序逻辑运行的。在这样一个地方,一个错误可能会产生难以置信的快速影响。

假设一家公司每天产生大约2000个采购订单。BAdI"ME\u PROCESS\u PO\u CUST"中的错误可能意味着2000个采购订单的交易数据不正确,或者根本没有2000个采购订单。向你的老板解释

请分享你的经验和知识!我们可能都会面临同样的混乱,或者我是唯一一个,必须独自经历。提前感谢

分享给小伙伴们:
本文标签: 域名交易贵港网站建设免费

相关文章

评论

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

签名: 验证码: 点击我更换图片

评论列表