
SAP开发技术实战
文章平均质量分 80
以企业真实业务实战为基础,讲清楚各种SAP开发小技巧和业务功能,学会就是赚到
SAP学习成长之路
华为云技术专家,四年SAP开发经验,有着丰富的ABAP开发领域知识,熟悉SD/MM/FICO/HR等模块的开发,擅长探索新技术和新知识。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
开发方法论:如何寻找 SAP 的 BADI
在 SAP 中,BADI(Business Add-In)是一种增强技术,允许你在不修改标准代码的情况下扩展 SAP 的功能。SE18在“BADI定义”字段中输入已知的 BADI 名称,或使用通配符进行模糊搜索。点击“执行”查看 BADI 列表。SE24SE24输入类名,点击“显示”。在方法中设置断点,运行相关事务代码。当程序执行到断点时,查看调试器中的变量exit_name,它通常包含正在调用的 BADI 名称。ST05ST05执行你想要增强的事务代码。停止跟踪并分析结果,查找与表。原创 2025-02-04 18:21:24 · 1168 阅读 · 0 评论 -
使用 ABAP 进行应用程序日志记录
注:这里我使用的是标准报文类 BPFS(报文编号:006),如果系统中没有该类报文,则使用事务代码 SE91 创建一个新的报文,或重复使用任何现有报文。因此,现在当客户提出 Ticket 时,您可以做的第一步就是:检查生产中的应用程序日志。在国家内部,只要应用程序与特定的状态相关,我就会根据状态创建子对象。您可以将下面的代码写入增强程序/用户退出程序/报告程序(任何自定义代码),以便在执行时生成日志。完成对象和子对象的创建后,就该编写实际创建应用程序日志的代码了。来监控基于对象的应用程序日志。原创 2024-12-27 23:46:27 · 809 阅读 · 0 评论 -
10 本你应该阅读的 ABAP 书
此外,这本书将是一本物有所值的书,因为你将把它作为快速参考指南一直使用到将来。所有程序员都需要参加培训课程或阅读此类书籍,以了解 ABAP 的最新功能和技术。新的功能特性可以提高您的编程技巧,使您的程序更加现代化。原创 2024-12-10 21:39:05 · 1702 阅读 · 0 评论 -
SD顾问不得不知道的 10 个 ABAP 技巧
我当时的假设是错误的,要想在 SAP 领域生存并取得优异成绩,你应该只掌握 SAP SD,而不需要了解 SAP 的编程语言(即 ABAP)。通过了解这一主题的实用性,我决定就此撰写一篇博客,并发布在 SCN 的职业版块上,以便所有入门级和中级 SAP 专业人士都能提高自己的 SAP ABAP 技能,为自己的 SAP 职业生涯增添动力。如果你知道这个工具,无需 ABAP 顾问的帮助,你就可以创建一个小报告并满足客户的要求。随着时间的推移,我意识到,要成为一名完美的 SAP 功能顾问,ABAP 是必备的要素。原创 2024-12-03 21:02:49 · 802 阅读 · 0 评论 -
SAP HANA 上进行 ABAP 开发:简介
SAP ABAP 多年来一直在快速发展。随着 S/4HANA 的推出,ABAP 逐渐成为一门更令人印象深刻、更富有成效的语言。如果你问我 ABAP 是如何改进的,答案就是 “代码到数据 ”范式。传统的方法包括将数据从数据库引入到我们的演示服务器,进行数据密集型计算和过滤,然后将过滤后的数据呈现给用户。新的 HANA 方法是将我们的代码推送到所有数据所在的数据库层,在数据库层进行计算,然后只将相关记录带到演示服务器。原创 2024-12-02 09:46:36 · 1810 阅读 · 0 评论 -
SAP HANA 中重处理或者删除 IDOC
不同的信息类型(如交货确认或采购订单)通常代表不同的特定格式,即 IDoc 类型。但是,具有相关内容的多个报文类型可以分配给一个 IDoc 类型: 例如,IDoc 类型 ORDERS01 传递 “逻辑 ”报文类型 ORDERS(采购订单)和 ORDRSP(订单确认)。业务数据在 IDoc 接口中以 IDoc 格式保存,并作为 IDoc 转发。由于该事务可以重新处理任何 IDoc,因此对于传统的 SAP 业务用户来说,该事务毫无用处。最重要的功能和视图,并说明哪些有用的功能可用于 IDoc 处理。原创 2024-11-30 11:05:00 · 944 阅读 · 0 评论 -
如何定义字段符号和将数据对象分配给字段符号
字段符号使用语句声明。字段符号的名称应括在带角括号(和)中。您可以使用TYPE引用或LIKE引用定义字段符号,就像定义其他数据对象一样。你也可以通过TYPE ANY来定义通用字段符号。在定义通用.类型的字段符号时,只能将相同类型的数据对象分配给字段符号。如果您计划静态访问结构的组件,这将非常有用。例如,如果要处理物料主数据MARA结构体的各个组件,那么就应该完全定义字段符号。如果打算使用字段符号动态指向任何字段或结构,可以使用TYPE ANY附加语句将字段符号定义为通用类型,如下所示。原创 2024-11-29 14:39:34 · 1096 阅读 · 0 评论 -
深入理解 SAP ABAP 动态编程:通过动态获取表内容弹出详情ALV
文章深入探讨了 SAP ABAP 中的动态编程,先介绍静态编程在某些情况的局限性,引出动态编程概念,包括多种处理方式及相关概念,如字段符号、数据引用、RTTS 等。以通过 ALV 显示物料信息为例,阐述字段符号能使程序动态化,解决静态编程处理大量字段时的繁琐和硬编码问题。原创 2024-11-28 18:06:08 · 1357 阅读 · 0 评论 -
如何优雅的使用 SAP 日志功能:应用程序日志
本文主要介绍如何优雅使用 SAP 日志功能中的应用程序日志,包括其类型、常见的业务应用程序日志、显示方式、数据保存与删除、回调功能、自定义日志对象等,并通过示例程序加以说明,强调合理运用可提升开发效率。原创 2024-11-27 16:44:27 · 2053 阅读 · 0 评论 -
如何在 Eclipse 中调试ABAP程序
ADT 中的调试器是一个重要的诊断工具,可用于分析 ABAP 应用程序。使用调试器,您可以通过在运行时 Debug 单步执行(F5)程序来确定程序无法正常工作的原因。这使您可以看到正在执行的语句以及随着程序的进行而变量值的变化。要使用调试器,您首先决定从哪里开始调试过程。一种方法是在,运行程序并在设置的断点处停止。原创 2024-11-25 18:10:06 · 2691 阅读 · 0 评论 -
ABAP 快速入门之 Hello World 和 ALV 列表
ABAP 是 SAP 开发的一种编程语言,用于在 SAP 环境中对业务应用程序进行编程。得益于 ABAP 对象增强功能,ABAP 以前只是过程性语言,现在也是一种面向对象语言。原创 2024-11-25 18:09:01 · 1267 阅读 · 0 评论 -
SAP 零售方案 CAR 系统的介绍与研究
当今时代,零售业务是充满活力和活力的业务领域之一。每天,由于销售运营和客户行为,它都会生成大量数据。因此,公司迫切需要管理数据并从中检索见解。它将帮助公司朝着正确的方向发展他们的业务。这就是为什么公司用来处理零售业务数据的工具应该是敏捷和强大的。它必须对实时客户和销售数据具有高度反应性,并对其进行分析以检索有价值的见解。它是为零售商提供可靠的业务解决方案的关键 SAP 产品之一。它收集销售点 (POS)、客户和销售数据,并将它们存储在数据存储库中。原创 2024-11-22 17:12:20 · 1881 阅读 · 0 评论 -
交货单BADI检查增强: LE_SHP_DELIVERY_PROC 方法 DELIVERY_FINAL_CHECK
中,我正在编写最终的交货单验证。我的交货单可能无法通过多次验证,必须在交货单日志中逐渐累积显示错误消息。在这种 BADI 方法中,如果我填充,这些方法,系统出现报错后,前台所有输入框全部灰掉,无法再次输入,需要点击返回直接退出事务码,因此这些增强位置并不合适。中创建交货单之前,需要给系统做一些验证。方法中实施 BADI,这里面的检查不适合通过。做 BADI 增强,在系统中建立一个实施对象。类型的错误消息,则不会成功保交货单。,只有最后一条消息出现在屏幕底部。报错来显示,可以在表。原创 2024-11-21 12:11:25 · 958 阅读 · 0 评论 -
BUS-Screen 框架 - 消息处理
为了演示如何使用 BUS-Screen Framework 处理消息,我们将在之前定义的主屏幕 (2000) 中创建一个虚拟输入字段。注意:除了控件声明(在 OO 上下文中不受支持)之外,所有字段绑定都可以而且应该在其相应的包装类中定义为公共静态属性。为了检查属性值并抛出消息,我们将在之前定义的 HANDLE_PAI 方法中添加一个额外的 WHEN 部分。对于实际的消息显示,我们将在本地演示类的 public 部分中重新定义方法 PAI_END。基类中提供了与消息相关的函数,但消息的实际显示只应在当前。原创 2024-11-20 17:55:30 · 423 阅读 · 0 评论 -
BUS-Screen 框架 - 简介
注意:尽管类 CL_BUS_ABSTRACT_SCREEN 是基础,但实现正确的继承很重要。在这种情况下,必须使用 CL_BUS_ABSTRACT_MAIN_SCREEN,因为 2000 是普通屏幕。(对于子屏幕,应使用相应的CL_BUS_ABSTRACT_SUB_SCREEN)在 Web Dynpro 和酷炫的 UI5 库的世界里,我仍然发现自己在使用 ABAP Reports 和经典的 Dynpros。然而,我希望通过探索现代(和更好)的方法来改善开发,让它变得有趣。这几乎总结了基本功能。原创 2024-11-20 17:40:33 · 1132 阅读 · 0 评论 -
可编辑的 SALV 模型(克服 SALV 模型的限制)
我们都知道 ABAP Object 比传统的 ABAP 非常强大。在这里,我想分享我使用 ABAP 对象克服 SALV mdoel 限制的最佳实验之一。原创 2024-11-19 17:56:17 · 1160 阅读 · 0 评论 -
如何在 ABAP 中找到用户出口增强
我们将通过标准 SAP 的例子来检查各种方法来寻找用户出口。首先让我们了解一下关于用户出口的基本情况。最后,我们将检查VA02交易中的一个用户出口的例子。什么事用户出口:这是一种增强功能,使我们能够增强程序、屏幕和菜单的功能。用户出口是具有命名约定的功能模块,如,例如 SD 模块中销售订单中的客户出口使用以下语句。原创 2024-11-18 10:27:53 · 996 阅读 · 0 评论 -
SAP 如何操作撤消已释放的传输请求
在某些情况下,您想要更改已发布的传输。您忘记包含某些内容、想要更改描述或者想要将运输分成应单独运输的部分。中释放了任务和传输时,就无法将其退回。”,您将需要双击传输并转到属性选项卡。在这里,您选择带有“如果您需要解锁传输中一些已收集和锁定的对象,您可以在事务码。中选择“请求/任务中解锁对象”选项来完成此操作。可能在修改传输后,您需要再次释放它。如果您得到错误请求 “您还可以从旧传输中删除任务并收集新传输。等待所有的改动完成后,我们可以再次释放。最后,将这个系统传输到其他系统!原创 2024-11-18 10:24:11 · 1294 阅读 · 0 评论 -
如何在SM30生成的维护表中增加选择框 CheckBox
先删除原来通过系统默认生成的文本字段,然后选中 Checkbox,拉到表中,名称和表中字段名一样。很简单,先通过 SE11 定义一个 CHAR1 类型的字段名,然后通过使用程序转到。自此,这个字段也关联上了表中的字段,标题也显示了正确的名字。原创 2024-11-15 17:38:09 · 522 阅读 · 1 评论 -
如何向函数模块 FM 中传递 Range 参数
如上图,这里有很常用的 Range 结构,如订单号、发票号、公司代码等等。有时候需要在选择屏幕之后调用一个函数模块,那么如果利用。在函数模块定义 Range 参数呢。解决方法很简单,系统有很多预定义的。那么,我们就可以在函数模块的。原创 2024-11-15 11:44:55 · 452 阅读 · 0 评论 -
756 版后可编辑的 CL_SALV_TABLE
自从类发布以来,一个问题一直存在 - 如何使其可编辑?我就是使用这种方法的人之一。但随后 756 版来了。突然间,所有使用它的 ALV 突然开始报告一个又一个错误。我深入研究并调查了这个问题。令我惊讶的是,我发现这个 “edit-hack” 的基础已经不见了。类不再位于继承树中,这使它能够工作!因此,接下来梳理提供的接口,以寻找一种新的方法。瞧!我确实找到了一条路。在这篇文章中,我将与您分享我是如何在发布后的 756 环境中实现按钮可编辑、完成 F4 引用和保存功能。原创 2024-11-12 15:52:54 · 1762 阅读 · 0 评论 -
在 ALV 报表中使用 CL_SALV 类时,如何处理多行?
需要选择几行,在这种情况下,已经选择了 2 行,并使用这 2 行执行了一个调用事务。但还有其他事情要做,因为 ALV 报告中的所有行都执行了调用事务。举个例子: 我设置了显示 “全选按钮”。原创 2024-11-12 14:27:06 · 585 阅读 · 0 评论 -
ABAP RAP 实用指南: 简介
ABAP RAP(Restful Application programming)描述了一种架构,用于以高效的方式在云端和内部构建端到端的企业就绪、内在丰富的 SAP HANA 优化、基于 OData 的 Fiori UI 服务和 Web API。作为 SAP Fiori 的 ABAP 编程模型的继承者,RAP 填补了这一模型的空白,并继承了这一模型的精华。eclipse 中的ABAP开发工具、ABAP 和 CDS 等语言的使用以及强大的框架都使 RAP 为未来做好了准备。为即将到来的系列博客做好准备。原创 2024-11-08 15:43:56 · 1780 阅读 · 0 评论 -
【翻译】伯明翰市议会因 Oracle 系统崩溃而面临 £216.5M 的损失
一份又一份的报告显示,由于上届保守党政府 14 年来的忽视,再加上需求的大幅增长和成本导致的压力,地方政府出现了一场全国性的危机。报告指出:“甲骨文信息技术系统的大面积故障以及高达数亿英镑的相关成本,在 2022 年 4 月至 2023 年 5 月的大约 13 个月时间里,并未向安理会的跨党派民主结构充分披露”。这是不妥协和管理不善的结果,还是故意推卸责任的策略的一部分,还是其他原因。,一直持续到 2026 年 4 月,因为议会的支出计划依赖于 ERP 系统的预期成本节约,但后来取消了这一计划。原创 2024-11-08 10:36:24 · 526 阅读 · 0 评论 -
APACK 简介--ABAP 的软件包和依赖关系管理器
一如既往的免责声明:不对未来的发展做出任何承诺,但例如,该框架可以很容易地扩展以支持除 Git 之外的中央和本地(公司特定的)存储库 - 类似于 Maven。到目前为止,依赖项与版本无关。然而,尽管白名单及其支持的对象的情况从一个版本到另一个版本都有所改善,但它可能仍然缺乏现代开发环境中迫切需要的关键组件。你现在可能会说:亲爱的 SAP,所有的理论都是灰度的,但它到底是如何运作的呢?为了说明 APACK 的功能,我们准备了两个示例项目,它们已经在使用新的基础设施,可以立即在云中的 ABAP 实例中使用。原创 2024-11-07 15:52:23 · 1250 阅读 · 0 评论 -
ABAP 添加/删除前导零的相关方法
在最近的 ABAP 版本中,对字符串处理的重大改进使得零处理代码不再那么冗长。例如,自从 ABAP 7.4 中的字符串模板和 ABAP 7.2 中的嵌入式 ALPHA 表达式出现后,就可以在单行中实现 ALPHA 转换的结果。语句可用于填充字符串尾部的零。原创 2024-11-06 15:46:10 · 690 阅读 · 0 评论 -
FOR ALL ENTRIES 的使用为什么需要包括主键
当你使用FOR ALL ENTRIES 时,连同其他事情,你肯定想确保你在内部表中有所有的关键字段,你也在选择它们,以避免数据不一致。原创 2024-11-06 15:44:17 · 407 阅读 · 0 评论 -
ABAP 开发的那些小技巧
实际开发过程中的小技巧原创 2024-11-06 15:42:52 · 475 阅读 · 0 评论 -
通过 BADI 实现 SAP 交货单 VL01/02/03N 增强
对于消息或用户对话框的输出,您必须确保此退出可以在对话框和后台运行。特别是,在货物发布发布期间,决不能输出消息或用户对话框,因为这可能导致不正确的材料文档。如果您在此方法中发出错误消息,则它不仅回滚对交货文档的更新,而且回滚物料文档的过帐。),在输入屏幕上增加一些限制。一开始直观想到系统的包含文件,类似销售订单一样,因此找到了。BADI 是用户应用其他异常(如用户扩展)的功能。,在保存前实现检查,这样才不会触发错误后直接退出。中的用户出口对应的所有方法。,当然,你也可以自行起名。原创 2024-11-04 16:23:35 · 828 阅读 · 0 评论 -
5 个内表 GROUP BY 的使用案例
ABAP 中的原生优先队列7.40 已经不再是最前沿的技术了,与从过程到对象的难题相比,GROUP BY 是一个低垂的果实,它的文档令人印象深刻。我用一个词来概括它的威力:分组。分组是数据处理中经常出现的问题。它应用广泛,是一种模式。原创 2024-11-01 17:44:33 · 1705 阅读 · 0 评论 -
【BAPI 错误修复记录】消息号 VP 250 职员主文件记录 00090178 不存在
order_partners 这个表格当中,因此合理判断,新增的业务员也是需要传入这个 table 的结构的。英文报错:Personnel master record 00090178 does not exist Message no. VP250。,销售雇员是通过 BP 客户主数据维护好的话,可以不在 BAPI 中传入该合作伙伴功能和编号。然后去 BP 是搜不到这个职员的,维护好这个职员信息,BAPI 通过。前两周接到一个任务,需要在 SO 的抬头的伙伴中新增维护。但是业务员是需要外部传值的。原创 2024-10-31 18:07:56 · 314 阅读 · 0 评论 -
如何在 SAP 中直接运行原生 SQL 语句
作为 ABAP 开发应该知道,SAP 支持在程序中运行 ABAP SQL,但是如果想要运行原生 SQL,就要借助 SQL 编辑器了。SQL 编辑器允许您直接执行 SQL 语句。原创 2024-10-31 11:45:20 · 2168 阅读 · 0 评论 -
ABAP 740 新语法整洁之道:Cheat Sheet Modern ABAP
自 NetWeaver ABAP 7.40 以来,ABAP 语言发生了巨大的变化。增加了许多新的语言结构。当然,尤其是许多新的表达式。有了它们,您就可以编写简洁的代码,并节省许多辅助变量和声明。使用新的语言元素可以使代码更健壮、更易读。不过,我们并不期望执行速度更快。本文制作了一份表格,展示了最重要、最有用的新功能。省略了新的 ABAP SQL 语法和 ABAP 内置函数。原创 2024-10-31 11:11:21 · 2597 阅读 · 0 评论 -
从剪贴板获取数据的方法以及如何通过复制 ABAP 代码进行格式化
当您在任何数据块上使用复制或 Ctrl+C 时,数据会添加到剪贴板。这是 ABAP 剪贴板导入的代码片段,用于从剪贴板获取数据并将其映射到相应的内部表。为了使用此应用程序,只需将所需的代码复制到剪贴板(应该在语法检查中幸存下来)并执行此程序。然后将在剪贴板中创建漂亮的代码版本,准备粘贴回来。一个很大的优势是,您可以只发送部分代码进行美化,这些代码在维护其他人编写/格式化不佳的代码时至关重要。说到读取剪贴板,分享一段有意思的代码,利用上面的逻辑将 ABAP 源代码进行部分注释的格式化。原创 2024-10-30 11:36:23 · 519 阅读 · 0 评论 -
在 ABAP 中编写更好代码的通用规则:SoC原则、局部变量、如何写注释、能自我解释型代码
这就是我有时所说的’关注点的分离’,即使并非完全可行,但据我所知,这也是有效整理思维的唯一可用技巧。下面源代码中的小 Report 程序就是一个典型的例子,说明在一个程序单元中,不同的关注点是如何混合在一起的。实际上,封装并不是在一个程序中进行的,而是在全局类中进行的,这些全局类根据层的不同被分配到不同的包中。应用程序(换句话说,模块池中的对话程序或可执行程序中的报表)通常以单块形式显示,系统同时对表现层的用户操作做出反应,完成应用逻辑,并执行对持久层数据的访问。相反,将它们移至有意义的变量或常量中。原创 2024-10-30 11:29:54 · 1082 阅读 · 0 评论 -
ABAP 最佳实践:风格和指南
本文介绍了编写整洁、令人阅读愉快的代码的基本方法。原创 2024-10-30 11:26:43 · 1036 阅读 · 0 评论 -
编写优雅、信息丰富、现代化和高质量 ABAP 代码的十个实践
正如我在开头提到的,每一次演变都会催生新的实践。因此,ABAP 编程也不例外,在 ECC 向 S/4 HANA 迁移的过程中,是时候采用新的实践来开发高质量、稳健的软件了。SDN 中有几篇文章和博客详细介绍了我在上面解释过的几个主题。因此,值得投入一些时间来深入了解每个主题。良好的实践会让事情变得简单并带来质量,ABAP 开发也是如此。如果这对你有用,请告诉我。原创 2024-10-24 17:20:52 · 640 阅读 · 0 评论 -
ABAP 的 “小技巧 ”和 “陷阱 ”以及新语法
在自我成长的不断推动下,我开始尝试使用 ABAP 中的新编程语法。一路上,我学到了一些技巧和窍门,也发现了一些不足之处。 通过这篇文章,我想以我的实验为基础,介绍一下这段旅程的要点。原创 2024-10-24 17:07:42 · 880 阅读 · 0 评论 -
标准类 CL_GUI_FRONTEND_SERVICES 导入 EXCEL 到系统文件时,长度不够数据被分成多行的问题解决
这三个也非常好理解,分别对应 Excel 的行、列和单元格的值。自此,就找到原因被分成两行的原因:SAP 将 Excel 中所有的单元格读到一个内表的一行中,这些数据用。,意味着如果单元格的字符数超过 50 个字符的话,就会数据丢失,导致上传数据信息不全。逐步研究之后,说明 SAP 会先将数据读取到一个地方,然后再按照。变量,自然而然会想,是不是这个变量装不下 Excel 的值呢?因此,我们会将自定一个结构,然后将这个类型扩大,比如定义一个。变量变成了 2,即第二行,找到问题了,但是该如何解决呢。原创 2024-10-24 09:48:04 · 880 阅读 · 0 评论 -
物料主数据创建/修改报错:不能更改估价分类
物料主数据更新时出现如下错误:不能更改估价分类,选择“显示错误”通过搜索相关的问题,能够更改评估分类的几个条件:1. 该物料本期和上期都是零库存。物料有库存,不能变更评估分类和计划价格2. 采购有未清订单(相关采购订单都已打上删除标记)3. 相关生产订单已关闭原创 2024-10-23 11:20:28 · 1927 阅读 · 0 评论