SAP技术小知识
文章平均质量分 65
SAP开发中的各种知识点
DeveloperMrMeng
一枚SAP佛系开发者,不定期更新一些技术经验和技术总结
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
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 · 751 阅读 · 0 评论 -
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 · 634 阅读 · 0 评论 -
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 · 3424 阅读 · 3 评论 -
SAP ABAP ALV 如何让字符串类型按照自定义规则排序
这两天被问到一个需求,ALV上有一个字符串类型的状态值字段,假如值是A,B,C,D,E,按照标准排序逻辑,这个排序规则是没办法改变的,升序肯定就是ABCDE,倒叙肯定就是EDCBA,但是用户说我就想点排序后,给我按照BDCAE的顺序进行排序,有没有办法,有,通过转换例程实现。原创 2025-03-27 16:07:13 · 1248 阅读 · 1 评论 -
SAP 通过ABAP下载CDS源码代码片段
用于下载ABAP CDS源码。原创 2024-12-19 10:03:07 · 218 阅读 · 0 评论 -
ABAP Cloud Developer Trial 2022 SP01 Docker安装教程
介绍SAP S4HANA2022 SP01使用环境的Docker镜像安装过程;之前老早就看到有1909版本的试用环境可以下载,但之前的笔记本配置不够就一直没装,近期换了新电脑,也刚好需要一个HANA2022环境去做测试,就装了一下这个试用环境,借此机会记录下Windows环境下安装全过程,建议不要直接安装,先浏览完所有官方文档及评论区再开始安装。原创 2024-12-18 23:48:50 · 1693 阅读 · 0 评论 -
SAP ABAP任意表数据查询+快速下载工具
项目上业务顾问有时候需要下载标准表大量的数据到Excel进行一些比对,但是标准SE16N,SE16的下载电子表格功能在遇到大批量数据的时候会非常慢,于是抽空写了个通用的查询下载工具,可以快速的查询及下载数据。原创 2024-09-06 11:32:48 · 1821 阅读 · 0 评论 -
SAP ABAP自建表变更履历记录(动态更新)
平台开发时,需要记录对自建表某些字段的变更履历,即写入CDHDR/CDPOS,正常方式是SCDO创建变更对象,然后调用自动生成的类方法完成记录写入,只是每次都需要自己写逻辑去获取对应的X结构(最新数据)和Y结构(历史数据),不想每次都写这段代码,故封装了一个动态方法,每次直接调用即可。后续要记录其他自建表时,只需要将。更新传M,删除传D即可。替换为生成的类名即可,原创 2024-08-16 15:43:57 · 1808 阅读 · 1 评论 -
SAP ABAP批量翻译工具(手工翻译+自动翻译+请求传输)
在海外项目开发中,因为涉及多语言,翻译是很常见的一个需求,往往我们需要手工去翻译大量的自建表,数据元素,域,域值,结构,等等一系列开发对象,这个过程很无聊也很费时,SAP又没有提供批量翻译的入口,只能在各自的开发界面,或者SE63去针对单个对象挨个翻译,所以懒惰促使我不得不开发一个批量翻译的工具,可以在统一入口来批量维护。原创 2024-08-16 15:40:17 · 3256 阅读 · 17 评论 -
SAP ABAP自建表通用批导函数(动态下载模板,动态上传数据)
使用OLE基于输入表名动态下载模板,配合批导函数自动完成内外码转换,可以完成常见的任意自建表批导功能。原创 2024-08-09 11:41:50 · 1283 阅读 · 1 评论 -
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 · 1756 阅读 · 1 评论 -
SAP ABAP调用BAPI时COMMIT WORK AND WAIT未按照预期同步提交问题分析
在做ABAP开发时,经常会有连续调用BAPI的需求,比如先创建销售订单,再依据销售订单创建交货单,再对交货单进行过账等类似的一连串调用,这种类似的场景往往需要前一步操作的数据完全写入数据库才能进行一下个东西,但是数据写入底表是需要时间的,如果一些业务数据比较复杂,往往再调用下一个BAPI时会因为数据尚未写入底表而导致BAPI报出单据不存在等类似的错误消息,这时候不同经验水平的开发者会有不同的处理方式,比如WAIT UP TO XXX SECONDS之类的操作,但并不推荐这么去做,因为往往会浪费一些不必要的时原创 2024-07-12 17:30:19 · 4423 阅读 · 0 评论 -
SAP各代增强介绍与查找,这一篇就够了
之前培训时总结的内容,应该算是比较全面的了,本文章目的在于让ABAPer掌握如何靠自己查找SAP系统中的增强,不依靠一些第三方查找程序或者谷歌,毕竟掌握方法才是最重要的。原创 2024-07-12 11:56:30 · 7326 阅读 · 0 评论 -
SAP 报工BAPI中的 UPDATA TASK 和 BACKGROUND TASK
通过debug报工BAPI,了解 update task 和 background task 的执行原理和过程原创 2024-07-04 14:55:50 · 3054 阅读 · 1 评论 -
VL31N BAPI:GN_DELIVERY_CREATE创建内向交货单同时批次拆分
翻到之前写的测试代码,记录一下,用于创建DN的同时就进行批次拆分,不需要再调用变更的BAPI再去修改一次。原创 2024-07-01 18:01:43 · 1331 阅读 · 0 评论 -
ABAP隐藏选择屏幕F8执行按钮的两种方式
在选择屏幕上画PUSHBUTTON的时候,通常不需要左上角的执行按钮,所以需要隐藏掉,两种方式可以实现,都需要在INITIALZATION或者AT SELECTION-SCREEN OUTPUT事件中完成。原创 2024-06-27 09:52:37 · 894 阅读 · 0 评论 -
SAP CO11N BAPI_PRODORDCONF_CREATE_TT连续报工异步更新导致COGI解决方案
解决BAPI_PRODORDCONF_CREATE_TT异步提交导致COGI的问题(异步提交,账号锁定,COGI,自动收货)原创 2024-06-26 17:07:50 · 3284 阅读 · 0 评论 -
SAP MIGO 050 BADI:字段 GOITEM-XXXXX 未准备好输出
MIGO过账时候需要根据某些条件更改某些字段的值,当要改的字段在前台不显示时,通过MB_MIGO_BADI~LINE_MODIFY去更改时,则会出现以下报错:MIGO050原创 2024-06-19 18:20:20 · 1286 阅读 · 0 评论 -
ABAP调用JavaScript进行幂乘运算
ECC版本没有内置的ipow运算函数,所以需要进行幂乘运算的话,可以采用调用JavaScript的方式来实现,参考代码如下:原创 2024-06-12 16:51:38 · 578 阅读 · 0 评论 -
SAP 中的Incoterms国际贸易条款术语解释
国际贸易条款,之前写代码建交货单的时候总是会遇到这个字段,通常我们可能会填FOB或者CIF或者其他,但并不清楚这些都是什么意思,偶然间看到一篇帖子对此作了解释,也记录分享一下。原创 2024-06-12 15:55:12 · 4938 阅读 · 0 评论 -
SAP 使用BAPI更改会计凭证分配字段ZUONR不生效解决方案
使用BAPI变更财务凭证上的ZUONR分配字段,正常情况下使用BAPI:FI_DOCUMENT_CHANGE或者FI_ITEMS_MASS_CHANGE都是可以进行变更的,但是项目上要变更的科目类型是KZ,导致这两个BAPI都没办法进行更改,故对此BAPI进行增强处理。以上,即可按照正常方式调用FI_DOCUMENT_CHANGE进行字段变更。2.在DOCUMENT_CHANGE这个form中添加如下逻辑即可;原创 2024-06-12 15:18:26 · 1312 阅读 · 0 评论 -
SAP CO01创建BAPI增强 COXT_BAPI_ORDER_CREATE
生产订单BAPI:COXT_BAPI_ORDER_CREATE不包含EXTENSIONIN参数,考虑到事务提交一致性,故对此BAPI进行增强,使其支持增强字段的更新。1.对传入参数IS_HEADER进行扩张。原创 2024-06-12 14:53:04 · 886 阅读 · 0 评论 -
SAP ABAP进行生产订单取消TECO
但是这个方式会有一些问题,用这种方式取消后你会发现,虽然抬头上的状态已经取消TECO,但是工序上的TECO仍然还在,会导致无法对工序进行报工,同时组件上的删除标记也不会被取消,就意味着预留被删除,取消后,需求没有回来,没法参与MRP,也无法计划内投料,所以最好的方式还是进行录屏来实现该需求,虽然我个人很不喜欢录屏,但准确至上。至于判定是否已经TECO,项目上的PP顾问给了个简单的检查办法,就是读取AUFK-IDAT2字段,有值就代表已经TECO,就不用去JEST去取了。(客户电脑不能复制代码出来,我恨)原创 2024-06-12 14:33:01 · 1804 阅读 · 3 评论 -
SAP CS01/CS02/CS03 BOM创建维护删除BAPI使用及增强改造
BOM创建维护删除相关BAPI的使用代码参考示例,客户电脑只能远程桌面,代码没法复制粘贴出来,只能贴图。创建及修改BAPI: CSAP_MAT_BOM_MAINTAIN。:拷贝出来,改其中一个参数即可,否则删除重新创建时会报错。删除BAPI: CSAP_MAT_BOM_DELETE。原创 2024-06-12 14:06:23 · 2003 阅读 · 0 评论 -
生产订单工序新增BAPI:CO_SE_PRODORD_OPR_CREATE外协加工字段增强
创建生产订单工序时需要通过BAPI来维护外协加工页签上这圈起来的字段,但是BAPI不包含这些字段,所以对BAPI进行一些增强处理。1.拷贝标准BAPI:CO_SE_PRODORD_OPR_CREATE至ZCO_SE_PRODORD_OPR_CREATE(最好放在新的自定义函数组)。2.追加增强结构至工序创建结构(为避免以后函数支持这些字段,故此处以ZZ开头)。3.传入参数mapping到标准结构的处理在这个form中,所以创建自己的逻辑来检查mapping即可。以上,即可通过BAPI来写入自己想更新的字段。原创 2024-05-27 17:31:28 · 943 阅读 · 0 评论 -
ABAP小技巧汇总(不定时更新)
【代码】ABAP小技巧汇总(自用)原创 2024-05-10 09:54:24 · 591 阅读 · 0 评论 -
自用ALV报表模板
自用的ALV开发模板程序,Mark一下,方便自取。原创 2024-04-19 10:04:13 · 368 阅读 · 0 评论 -
SAP使用SM30标准Event事件实现自动更新变更履历
通过标准事件实现SM30自动记录变更信息履历。原创 2024-04-11 11:58:29 · 1662 阅读 · 0 评论 -
ABAP ADBC_QUERY 测试代码
ABAP ADBC_QUERY 测试代码。原创 2024-04-10 14:49:30 · 795 阅读 · 0 评论 -
ABAP添加VF02输出类型并重新触发IDOC出站
通过ABAP为单据添加输出类型,并重新触发流程,本例为VF02添加新的输出,并通过调用VF31重新触发IDOC送信。原创 2024-03-28 14:25:31 · 1340 阅读 · 0 评论 -
MASS/MM17批量复制物料描述
使用MM17批量将日文环境中的物料描述复制到英文环境。原创 2024-03-04 13:58:11 · 924 阅读 · 0 评论 -
SAP CDS+AMDP获取订单状态文本(替代函数STATUS_TEXT_EDIT)
通过CDS+AMDP实现替代函数STATUS_TEXT_EDIT,来实现可以批量查询所有订单状态的效果。原创 2024-01-24 16:18:17 · 2329 阅读 · 2 评论 -
SAP CDS VIEW实现行列转换
SAP CDS VIEW实现行列转换原创 2024-01-22 21:05:19 · 1262 阅读 · 0 评论 -
SAP ABAP ZPL打印
本文用于简单介绍在SAP中使用ZPL语言进行打印的开发步骤,由于对ZPL语言并不是很熟悉,所以ZPL相关的部分并不会很深入,主要介绍在SAP端如何动态填充ZPL内容及预览、打印。ZPL是斑马条码打印机工业型号用的编程语言。利用这些编程语言,编辑好一个打印的指令集,发送给条码打印机,条码打印机就会把ZPL所绘制的标签打印出来。原创 2024-01-03 16:36:42 · 2963 阅读 · 0 评论 -
SAP SE16H的使用方式介绍
本文用于介绍SE16H的使用方式,之前看到过SAP论坛上的一些帖子,写的内容根本就不对,所以自己测试了下SE16H的一些常用功能,整理一下,方便查阅使用。原创 2023-12-27 16:51:49 · 4326 阅读 · 0 评论 -
SAP通过不写代码的方式实现批量下载长文本
SAP的长文本是不能直接通过底表查询导出的,需要借助函数或者代码来进行转换,SAP也没有提供长文本相关的报表及程序(也可能我不知道),如果需要批量下载长文本,通常情况下是需要ABAPer协助来写代码实现的,这里介绍一种不需要写代码的方式。下图圈起来的四个参数也就是确定唯一长文本内容的key值,全部输入*则是查询所有长文本内容,这里下载所有PO抬头长文本,则只需要输入OBJECT为EKKO即可。原创 2023-12-27 12:14:58 · 1343 阅读 · 0 评论 -
SAP WS_DELIVERY_UPDATE2更细库存地点LGORT及过账
WS_DELIVERY_UPDATE2正常情况无法更改LGORT,但是有标准的BADI可以进行变更,这样DN变更和过账可以使用一个BAPI来完成。方法:IF_EX_LE_SHP_DELIVERY_UPDATE~UPDATE_ITEM。增强点:LE_SHP_DELIVERY_UPDATE。原创 2023-12-22 17:00:12 · 1867 阅读 · 0 评论 -
SAP CA01/CA02 创建及更新工艺路线BAPI
最常用的BAPI只支持创建,没有对应的CHANGE BAPI,或者有的不支持创建,只支持更改,刚好项目上的需求是既需要创建,也需要变更,所以简单测试了下CPCC_S_TASK_LIST_MAINTAIN该如何传参来支持创建及更新。原创 2023-12-06 18:32:08 · 6314 阅读 · 17 评论 -
SAP 使用STVARV维护选择条件
使用标准事务码来维护选择条件,避免频繁创建冗余的自建表,避免使用硬编码来编写代码中的选择条件。原创 2023-12-01 16:19:44 · 3469 阅读 · 0 评论 -
SAP SM30及ABAP维护ADRC中央地址主数据(BAS)
项目组员在创建SM30的时候,发现了下图的报错,原因是因为自建表中的地址编号ADRNR字段使用的标准的数据元素AD_ADDRNUM,当使用包含该数据元素的视图在SM30进行维护时,就会出现下面的报错。主要测试逻辑为:当地址号为空时,点击按钮会进行创建,创建完成后将地址号反写回屏幕,再次点击按钮时,如果地址号有值,则以显示模式或者更改模式呼出弹窗。点击这个按钮,即可进行地址主数据信息的维护,并将信息更新回ADRC表中,不过ADRNR字段是会被标准逻辑隐藏起来的。:传入地址编号,进行数据库提交保存。原创 2023-11-28 11:22:50 · 3097 阅读 · 0 评论
分享