自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 收藏
  • 关注

原创 【学习系列】SAP RAP 21:创建基于Fiori的表格维护应用 (SM30)

本文介绍了在ABAP Cloud环境下使用RAP框架创建业务配置维护对象的最佳实践。重点阐述了如何通过ADT向导快速创建Business Configuration Maintenance Object,包括自定义表和文本表的规范定义、IAM应用授权配置、Business Catalog创建及角色分配等完整流程。该方法可实现配置数据的统一管理、多语言支持以及文档集成,相比传统SM30/SM54维护方式更具优势。文章还展示了最终在Custom Business Configurations应用中实现数据维护的

2025-11-18 23:17:51 77

原创 【学习系列】SAP RAP 20:Unmanaged场景开发示例-调用BAPI、BAPI包装类、BO接口创建标准采购订单

本文介绍了在SAP RAP(Restful ABAP Programming)框架下,通过三种方式实现采购订单创建的方案。首先分析了RAP框架对传统BAPI调用的限制,特别是禁止显式COMMIT语句的要求。随后详细阐述了三种实现方式:1)直接调用传统BAPI(仅支持OP环境);2)使用BAPI包装类(仅支持OP环境);3)调用标准业务对象接口(支持所有环境)。 文章重点说明了在unmanaged场景下的技术实现细节,包括字段控制、缓冲区管理、测试运行与实际调用的分离处理等。针对每种方式都提供了完整的实施步骤

2025-11-14 11:05:18 67

原创 【学习系列】SAP RAP 19:Unmanaged场景开发示例-Rba/Cba/Lock/Check实现

摘要:本文详细介绍了在SAP ABAP中实现unmanaged场景下采购订单抬头和明细行数据的增删改查功能。内容包括:1.实现抬头层级的创建(cba_item)、更新(update_head)和删除(delete_head)方法;2.实现明细层级的更新(update_item)和删除(delete_item)方法;3.完善save方法支持明细数据持久化;4.实现关联读取(rba_item)和基本读取(read_item)方法;5.添加编辑锁(lock)功能;6.创建消息包装类统一处理异常;7.在check_

2025-11-07 00:26:24 53

原创 【学习系列】SAP RAP 18:Unmanaged场景开发示例-基本数据更新

本文介绍了在SAP RAP中unmanaged模式下从0到1的开发步骤。unmanaged模式下需要自行实现数据更新、权限检查等逻辑,适用于操作现有数据库表或复杂业务场景。文章以两层的采购订单对象为例,详细说明了创建技术对象(表、视图、行为定义等)的过程,并重点阐述了如何实现CRUD相关方法的核心逻辑。通过创建缓冲类来处理交互阶段和保存阶段的数据操作,确保事务一致性。完整代码展示了抬头层级的增删改查功能实现,为后续明细层级的开发奠定了基础。

2025-11-06 00:23:42 150

原创 SAP使用abapGit在云环境中迁移开发包

摘要:本文介绍了使用abapGit工具在SAP OP环境和Cloud环境间传输开发包的详细步骤。主要包括:1)前期准备,包括安装abapGit程序和GitHub组件;2)OP到Cloud环境的迁移,涉及GitHub项目创建、开发包上传及在Cloud环境导入;3)Cloud到OP环境的反向传输,通过abapGit程序拉取GitHub项目。两种场景均需生成GitHub访问token,并可能需要对不兼容对象进行手动调整。

2025-10-31 23:33:12 713

原创 【学习系列】SAP RAP 17:RAP应用部署集成至Fiori Launchpad 【S4HC Public Edition】

本文详细介绍了在SAP S/4HANA Cloud环境中部署RAP应用集成到Fiori Launchpad的两种方法:使用BAS(SAP Business Application Studio)和VSCode。主要步骤包括:1)在BTP中配置Destination连接ES环境;2)设置信任关系;3)创建BAS开发空间;4)通过Fiori应用生成器部署RAP应用;5)创建IAM App、Business Catalog和Business Role;6)配置Launchpad Space和Pages。文章还提供

2025-10-22 22:55:14 464 1

原创 【学习系列】SAP RAP 16:RAP应用部署集成至Fiori Launchpad 【On-Premise】

本文详细介绍了如何将开发完成的RAP应用部署到S4HANA 2023 On-Premise环境并集成到Fiori Launchpad的完整流程。主要内容包括:1)通过ADT工具创建Fiori项目并配置外部IDE(VSCode);2)使用npm命令部署应用到系统;3)通过事务代码创建语义对象、磁贴目录和目标映射;4)配置PFCG角色分配;5)补充了部署失败解决方案、翻译问题处理、自定义主题设置以及登录页面LOGO修改等内容。文章提供了step-by-step的操作指南,帮助开发者将预览模式的应用正式部署到生产

2025-10-22 22:54:53 204

原创 【学习系列】SAP RAP 15:如何使用Messages

本文介绍了RAP框架中消息机制的核心概念与应用。消息分为TransitionMessages(过渡消息)和StateMessages(状态消息)两类:过渡消息与单次请求相关,如操作成功提示,请求结束后消失;状态消息则持久绑定业务对象实例,反映实例状态问题直至修复。文章详细说明了两种消息的实现方式,包括关键参数(%tky、%msg、%state_area等)的配置要点,并通过具体代码示例演示了在Action中实现过渡消息和在Validation中实现状态消息的方法。最后对比了new_message_with_

2025-10-21 22:47:22 231

原创 【学习系列】SAP RAP 14:行为定义-Save Options

本文介绍了ABAP行为定义中的保存选项SaveOptions,主要分为托管(Managed)和非托管(Unmanaged)两种场景。托管场景下包含三种模式:默认的ManagedSave完全由框架处理;AdditionalSave可在事务提交前添加额外操作(如记录日志);UnmanagedSave可自定义保存逻辑但保留框架的缓存管理。非托管场景则需完全自行处理数据持久化。文章详细演示了如何在托管场景中实现AdditionalSave(通过记录字段变更日志)和UnmanagedSave(使用新语法处理明细数据的

2025-10-21 22:47:01 88

原创 【学习系列】SAP RAP 13:行为定义-Business Event

本文介绍了ABAP行为定义中BusinessEvent(业务事件)的概念和用法,重点演示了两种基本用途:本地事件消费和事件触发SideEffects。文章首先说明了业务事件作为异步执行机制的用途,然后详细展示了如何在云环境中创建开发对象、定义事件、触发事件以及实现本地事件消费。接着介绍了如何通过业务事件触发SideEffects实现异步界面更新功能,包括后台处理框架的应用和测试效果展示。文中还指出某些功能在不同版本中的限制,并提供了相关参考链接。作者表示后续将继续介绍行为定义中的其他概念。

2025-10-20 23:31:23 436

原创 【学习系列】SAP RAP 12:行为定义-Side Effects

本文介绍了行为定义中的SideEffects(附加作用)概念及其应用场景。SideEffects用于在草稿模式下自动触发数据刷新,解决因UI不主动请求更新导致的数据不一致问题。文章详细说明了五种触发类型(字段变更、操作执行、数据源变更、实体修改、事件触发)和四种可刷新目标(字段、权限、实体、消息)。通过实际案例展示了如何通过SideEffects实现自动加载更新数据,并强调需在行为定义投影中启用该功能。这种机制提高了数据同步效率,确保界面显示与后台数据的一致性。

2025-10-20 23:31:07 84

原创 【学习系列】SAP RAP 11:行为定义-Feature Control

本文介绍了SAP行为定义中的FeatureControl(特征控制)概念,分为实例特征控制和全局特征控制两种类型。实例控制包含静态(如固定字段只读)和动态控制(如根据订单数量限制按钮可用性);全局控制则与实例数据无关,可基于用户权限等因素控制操作可用性。文章通过代码示例演示了如何实现字段级和操作级的动态控制,并对比了特征控制与授权控制的区别(前端限制vs后端权限)。特征控制为业务场景提供了灵活的前端交互控制能力。

2025-10-20 23:30:48 78

原创 【学习系列】SAP RAP 10:行为定义-Determinations和Validations

本文介绍了ABAP RAP框架中Determinations(确定)和Validations(验证)的概念与应用。Determinations用于条件触发时自动更新字段,需注意幂等性、执行顺序不确定等问题,并通过示例演示了供应商字段更新时自动关联公司代码的实现。Validations则用于数据有效性检查,示例展示了币种验证逻辑,强调managed场景中应分配给PREPARE以保证错误消息持久化。两种机制在unmanaged场景下仅支持草稿实例,且都具有不确定的执行顺序特性。文章还提供了官方文档参考链接。

2025-10-19 21:18:13 70

原创 【学习系列】SAP RAP 9:行为定义-Operations

本文介绍了RAP业务对象中操作(Operations)的概念,分为标准操作和非标准操作两大类。标准操作包括CRUD等基础功能,在托管场景下由框架自动处理。非标准操作分为Actions和Functions:Actions是修改类操作,包含实例操作、静态操作、可重复操作、工厂操作和保存操作五种类型,每种类型通过代码示例演示了具体实现;Functions是只读类操作,包括内部函数、静态函数和可重复函数。文章重点讲解了各类操作的定义方法、实现逻辑和前端集成要点,并分析了使用标准操作框架在错误处理、权限控制、代码复用

2025-10-19 21:17:47 93

原创 【学习系列】SAP RAP 8:行为定义-Authorization Control

本文介绍了SAP RAP中的授权控制实现方法,主要分为读取操作和修改操作两种场景。读取操作通过ABAP CDS的数据控制语言(DCL)实现,使用访问控制对象限制数据可见范围;修改操作则通过行为定义中的权限检查,包括全局授权、实例授权和预检查三种方式。文章详细说明了如何使用DCL创建访问控制规则,并通过实例演示了全局授权和实例授权的代码实现方法,以及预检查功能在数据更新前的权限验证。这些授权控制机制共同确保用户只能访问和操作其权限范围内的数据,有效保障系统安全性。

2025-10-18 16:40:20 96

原创 【学习系列】SAP RAP 7:行为定义-Draft

本文介绍了RAP框架中的草稿表(Draft)功能及其应用。草稿表允许用户临时保存数据,在激活前不影响业务逻辑,支持保存继续、暂存和设备切换功能。草稿分为独占草稿(仅限同一用户编辑)和协作草稿(允许多用户协同编辑)。启用草稿需在行为定义和投影中包含标准action,并创建包含TotalETag等管理字段的草稿表。TotalETag确保草稿转换时活动数据未被修改,而ETagmaster则防止并发修改。文章通过OData调用示例详细说明了ETag验证过程,强调草稿功能由RAP框架自动处理,开发者只需关注定义和配置

2025-10-18 16:39:45 85

原创 【学习系列】SAP RAP 6:行为定义-Concurrency Control

本文介绍了RAP行为定义中的并发控制机制,包括乐观并发控制和悲观并发控制两种方式。乐观控制通过ETag字段实现,在数据更新时检查ETag值是否匹配,防止覆盖修改;悲观控制则采用独占锁机制,锁定期间其他用户无法编辑。文章详细说明了两种控制的实现原理、使用场景(managed/unmanaged)及混合控制模式,即在编辑时使用悲观锁,保存时通过ETag进行乐观控制。同时指出根节点必须作为lockmaster,并强调了不同场景下的实现差异。

2025-10-17 11:22:41 66

原创 【学习系列】SAP RAP 5:行为定义-Numbering

本文介绍了RAP框架中编号赋值的两种方式:EarlyNumbering和LateNumbering。EarlyNumbering在创建前确定主键编号,分为框架托管的managed和自定义的unmanaged实现。LateNumbering在数据持久化前生成编号,适用于无间隔编号需求,通常用于子节点层级。文章通过订单号和计划行编号的实例,详细说明了两种方式的实现步骤和注意事项,包括代码示例和运行效果演示。最后指出下一篇文章将介绍行为定义中的锁概念。

2025-10-17 11:22:16 88

原创 【学习系列】SAP RAP 4:通过注解来完成一些常规需求

本文介绍了RAP应用中常用注解的实现方式,包括搜索帮助、文本描述绑定、联动搜索、字段控制等功能。通过@Consumption、@UI等注解可以实现搜索帮助定义、多字段联动、必输校验、默认排序和默认值设置。管理字段可通过@Semantics注解自动记录创建/修改信息,长文本使用@UI.multiLineText实现多行显示。这些注解可优化界面交互和数据管理,为后续行为定义功能开发奠定基础。文章结构清晰,针对不同需求提供了具体的实现方案和代码示例。

2025-10-17 11:21:43 188

原创 【学习系列】SAP RAP 3:添加多层级的子节点

本文详细介绍了在SAP ABAP RAP开发中如何创建多层级业务对象。主要内容包括:1)创建明细和计划行层级的数据库表及CDS视图;2)使用association和composition关键字建立父子关联关系;3)创建各层级的投影视图并设置层级关系;4)更新行为定义,添加关联、操作权限等控制;5)更新服务定义公开新增视图;6)创建元数据扩展优化UI展示。通过这一系列步骤,实现了从抬头到明细再到计划行的完整业务对象层级结构,为后续UI功能扩展奠定了基础。

2025-10-17 11:21:30 70

原创 【学习系列】SAP RAP 2:创建第一个RAP应用

本文介绍了从零开始创建基于SAP RAP(ABAP RESTful Application Programming Model)的Fiori应用的完整流程。首先说明了学习RAP需要结合官方文档和教程,并提供了相关资源链接。文章详细讲解了开发环境的准备要求,包括系统版本、开发工具和基本知识。重点演示了如何通过8个步骤创建支持CRUD操作和草稿功能的RAP应用:1)创建数据库表;2)定义CDS视图实体;3)创建投影视图;4)定义行为;5)创建行为投影;6)定义服务;7)绑定服务;8)添加UI注解。

2025-10-17 11:21:05 363

原创 【学习系列】SAP RAP 1:关于RAP的一些基本介绍

摘要:SAP RAP和CAP是两种不同的开发模型。RAP(RESTful ABAP)用于在S/4HANA等ABAP平台上构建现代业务应用,基于CDS+OData,适合ABAP开发者扩展核心业务。CAP(云应用编程模型)是BTP上的云原生框架,支持Node.js/Java,适合构建跨系统集成应用。RAP优势在于与S/4HANA深度集成,CAP则更灵活,支持多云环境。选择依据主要取决于开发平台(S/4HANA或BTP)、技术栈(ABAP或Node.js/Java)及应用场景(核心扩展或云原生开发)。

2025-10-17 11:20:39 111

原创 SAP RAP学习系列合集介绍

《SAP RAP学习系列合集:从入门到部署的完整指南》摘要: 本文介绍了作者创建的SAP RAP学习系列合集,涵盖RAP开发从基础概念到实战部署的全流程。系列目前包含17篇文章,系统讲解了RAP核心开发技术:从数据建模、UI构建到行为定义(包括并发控制、草稿功能、授权验证等),最后详细演示了应用部署到Fiori Launchpad的两种方案(OP版和ES版)。

2025-10-17 11:18:28 513

原创 使用扣子Coze迁移优快云文章至微信

本文介绍了一个将优快云博客内容迁移至微信公众号的自动化解决方案。作者发现直接复制优快云内容到公众号会出现格式混乱问题,通过调研找到了使用"read:"阅读模式+Markdown转换的高效方法。为简化流程,作者开发了"优快云2WeChat"扣子应用,包含三个核心功能:1)将优快云链接转换为Markdown格式;2)记录用户偏好的转换网站;3)自动复制内容并跳转至转换页面。该方案通过工作流和数据库实现自动化处理,相比人工操作和API方法更高效稳定,显著提升了内容迁移效率。

2025-08-19 21:06:44 1003

原创 ABAP SQL更新DB小技巧 WITH INDICATORS

ABAP SQL在758版本后支持类似HTTP PATCH的部分字段更新功能,通过WITH INDICATORS关键字定义控制结构。该结构包含与原字段同名的X类型字段,当设置为'01'时才会更新对应字段。示例演示了先插入完整数据,再仅更新特定字段(field1)而保留其他字段不变的操作。相比传统MODIFY的全量覆盖更新,这种方式更灵活高效,类似于RAP开发中的%control结构。控制字段类型默认为X,也可自定义为布尔类型,但建议保持默认以便RAP动态处理时的快速映射。

2025-08-03 22:18:42 609

原创 SAP使用XCO框架创建RAP所有对象

通过XCO框架自动生成SAP ABAP开发对象。

2025-07-01 18:47:42 281

原创 SAP ABAP 多线程处理/并行处理的四种方式

在 SAP ABAP 中,实现多线程的方式有多种,每种方式的工作原理、适用场景和复杂度各不相同,以下是几种常见的多线程实现方式,理论上BACKGROUND TASK或者后台JOB也算是实现多线程的一种方式,这里只总结一下几种常见的且效率提升比较大的方式。基于CALL FUNCTION STARTING NEW TASK基于SPTA框架基于CL_ABAP_PARALLEL基于IF_ABAP_PARALLER接口。

2025-04-09 19:06:55 3039 4

原创 SAP ABAP ALV 如何让字符串类型按照自定义规则排序

这两天被问到一个需求,ALV上有一个字符串类型的状态值字段,假如值是A,B,C,D,E,按照标准排序逻辑,这个排序规则是没办法改变的,升序肯定就是ABCDE,倒叙肯定就是EDCBA,但是用户说我就想点排序后,给我按照BDCAE的顺序进行排序,有没有办法,有,通过转换例程实现。

2025-03-27 16:07:13 1204 2

原创 SAP 通过ABAP下载CDS源码代码片段

用于下载ABAP CDS源码。

2024-12-19 10:03:07 203

原创 ABAP Cloud Developer Trial 2022 SP01 Docker安装教程

介绍SAP S4HANA2022 SP01使用环境的Docker镜像安装过程;之前老早就看到有1909版本的试用环境可以下载,但之前的笔记本配置不够就一直没装,近期换了新电脑,也刚好需要一个HANA2022环境去做测试,就装了一下这个试用环境,借此机会记录下Windows环境下安装全过程,建议不要直接安装,先浏览完所有官方文档及评论区再开始安装。

2024-12-18 23:48:50 1624

原创 SAP PI/PO Proxy2JDBC SQL_QUERY动态接口示例

PROXY2JDBC的动态接口实现方式、SQL_QUERY使用示例

2024-11-18 20:20:08 1115 10

原创 SAP ABAP任意表数据查询+快速下载工具

项目上业务顾问有时候需要下载标准表大量的数据到Excel进行一些比对,但是标准SE16N,SE16的下载电子表格功能在遇到大批量数据的时候会非常慢,于是抽空写了个通用的查询下载工具,可以快速的查询及下载数据。

2024-09-06 11:32:48 1742 1

原创 SAP ABAP自建表变更履历记录(动态更新)

平台开发时,需要记录对自建表某些字段的变更履历,即写入CDHDR/CDPOS,正常方式是SCDO创建变更对象,然后调用自动生成的类方法完成记录写入,只是每次都需要自己写逻辑去获取对应的X结构(最新数据)和Y结构(历史数据),不想每次都写这段代码,故封装了一个动态方法,每次直接调用即可。后续要记录其他自建表时,只需要将。更新传M,删除传D即可。替换为生成的类名即可,

2024-08-16 15:43:57 1695 2

原创 SAP ABAP批量翻译工具(手工翻译+自动翻译+请求传输)

在海外项目开发中,因为涉及多语言,翻译是很常见的一个需求,往往我们需要手工去翻译大量的自建表,数据元素,域,域值,结构,等等一系列开发对象,这个过程很无聊也很费时,SAP又没有提供批量翻译的入口,只能在各自的开发界面,或者SE63去针对单个对象挨个翻译,所以懒惰促使我不得不开发一个批量翻译的工具,可以在统一入口来批量维护。

2024-08-16 15:40:17 3030 18

原创 SAP ABAP自建表通用批导函数(动态下载模板,动态上传数据)

使用OLE基于输入表名动态下载模板,配合批导函数自动完成内外码转换,可以完成常见的任意自建表批导功能。

2024-08-09 11:41:50 1239 2

原创 SAP ABAP上传XLSX至任意内表(非标准函数)

在做自建表批量导入工具时做的一个函数,没有使用常见的TEXT_CONVERT_XLS_TO_SAP和ALSM_EXCEL_TO_INTERNAL_TABLE,当然以上两个函数都可以满足需求,但都有一些小问题。其实上面大部分的问题都是可以copy出来修修改改解决掉的,只是看需要投入多少而已,前两年调查一个问题的时候发现了一个工具类也可以处理EXCEL导入,并且可以规避掉上面绝大部分问题,目前看来唯一的缺点就是效率跟TEXT_CONVERT_XLS_TO_SAP差不多,有点慢,就当是记录一种不同的解决方式吧。

2024-08-09 11:27:03 1646 2

原创 SAP ABAP调用BAPI时COMMIT WORK AND WAIT未按照预期同步提交问题分析

在做ABAP开发时,经常会有连续调用BAPI的需求,比如先创建销售订单,再依据销售订单创建交货单,再对交货单进行过账等类似的一连串调用,这种类似的场景往往需要前一步操作的数据完全写入数据库才能进行一下个东西,但是数据写入底表是需要时间的,如果一些业务数据比较复杂,往往再调用下一个BAPI时会因为数据尚未写入底表而导致BAPI报出单据不存在等类似的错误消息,这时候不同经验水平的开发者会有不同的处理方式,比如WAIT UP TO XXX SECONDS之类的操作,但并不推荐这么去做,因为往往会浪费一些不必要的时

2024-07-12 17:30:19 4264

原创 SAP各代增强介绍与查找,这一篇就够了

之前培训时总结的内容,应该算是比较全面的了,本文章目的在于让ABAPer掌握如何靠自己查找SAP系统中的增强,不依靠一些第三方查找程序或者谷歌,毕竟掌握方法才是最重要的。

2024-07-12 11:56:30 6825

原创 SAP 报工BAPI中的 UPDATA TASK 和 BACKGROUND TASK

通过debug报工BAPI,了解 update task 和 background task 的执行原理和过程

2024-07-04 14:55:50 2929 2

原创 VL31N BAPI:GN_DELIVERY_CREATE创建内向交货单同时批次拆分

翻到之前写的测试代码,记录一下,用于创建DN的同时就进行批次拆分,不需要再调用变更的BAPI再去修改一次。

2024-07-01 18:01:43 1260

SAP各代增强介绍与查找

网上关于SAP各代增强的文档比较分散,总结了一份比较全面的文档,介绍了SAP四代增强的查找方式,方便大家网上查不到相关增强点时,自己可以快速的查找到各代增强点。

2023-03-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除