SAP技术小知识
文章平均质量分 65
SAP开发中的各种知识点
DeveloperMrMeng
一条咸鱼
展开
-
ABAP小技巧汇总(不定时更新)
【代码】ABAP小技巧汇总(自用)原创 2024-05-10 09:54:24 · 121 阅读 · 0 评论 -
自用ALV报表模板
自用的ALV开发模板程序,Mark一下,方便自取。原创 2024-04-19 10:04:13 · 134 阅读 · 0 评论 -
SAP使用SM30标准Event事件实现自动更新变更履历
通过标准事件实现SM30自动记录变更信息履历。原创 2024-04-11 11:58:29 · 182 阅读 · 0 评论 -
ABAP ADBC_QUERY 测试代码
ABAP ADBC_QUERY 测试代码。原创 2024-04-10 14:49:30 · 398 阅读 · 0 评论 -
ABAP添加VF02输出类型并重新触发IDOC出站
通过ABAP为单据添加输出类型,并重新触发流程,本例为VF02添加新的输出,并通过调用VF31重新触发IDOC送信。原创 2024-03-28 14:25:31 · 299 阅读 · 0 评论 -
MASS/MM17批量复制物料描述
使用MM17批量将日文环境中的物料描述复制到英文环境。原创 2024-03-04 13:58:11 · 273 阅读 · 0 评论 -
SAP CDS+AMDP获取订单状态文本(替代函数STATUS_TEXT_EDIT)
通过CDS+AMDP实现替代函数STATUS_TEXT_EDIT,来实现可以批量查询所有订单状态的效果。原创 2024-01-24 16:18:17 · 1123 阅读 · 1 评论 -
SAP CDS VIEW实现行列转换
SAP CDS VIEW实现行列转换原创 2024-01-22 21:05:19 · 535 阅读 · 0 评论 -
SAP ABAP ZPL打印
本文用于简单介绍在SAP中使用ZPL语言进行打印的开发步骤,由于对ZPL语言并不是很熟悉,所以ZPL相关的部分并不会很深入,主要介绍在SAP端如何动态填充ZPL内容及预览、打印。ZPL是斑马条码打印机工业型号用的编程语言。利用这些编程语言,编辑好一个打印的指令集,发送给条码打印机,条码打印机就会把ZPL所绘制的标签打印出来。原创 2024-01-03 16:36:42 · 1182 阅读 · 0 评论 -
SAP SE16H的使用方式介绍
本文用于介绍SE16H的使用方式,之前看到过SAP论坛上的一些帖子,写的内容根本就不对,所以自己测试了下SE16H的一些常用功能,整理一下,方便查阅使用。原创 2023-12-27 16:51:49 · 1657 阅读 · 0 评论 -
SAP通过不写代码的方式实现批量下载长文本
SAP的长文本是不能直接通过底表查询导出的,需要借助函数或者代码来进行转换,SAP也没有提供长文本相关的报表及程序(也可能我不知道),如果需要批量下载长文本,通常情况下是需要ABAPer协助来写代码实现的,这里介绍一种不需要写代码的方式。下图圈起来的四个参数也就是确定唯一长文本内容的key值,全部输入*则是查询所有长文本内容,这里下载所有PO抬头长文本,则只需要输入OBJECT为EKKO即可。原创 2023-12-27 12:14:58 · 551 阅读 · 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 · 689 阅读 · 0 评论 -
SAP CA01/CA02 创建及更新工艺路线BAPI
最常用的BAPI只支持创建,没有对应的CHANGE BAPI,或者有的不支持创建,只支持更改,刚好项目上的需求是既需要创建,也需要变更,所以简单测试了下CPCC_S_TASK_LIST_MAINTAIN该如何传参来支持创建及更新。原创 2023-12-06 18:32:08 · 1782 阅读 · 11 评论 -
SAP 使用STVARV维护选择条件
使用标准事务码来维护选择条件,避免频繁创建冗余的自建表,避免使用硬编码来编写代码中的选择条件。原创 2023-12-01 16:19:44 · 832 阅读 · 0 评论 -
SAP SM30及ABAP维护ADRC中央地址主数据(BAS)
项目组员在创建SM30的时候,发现了下图的报错,原因是因为自建表中的地址编号ADRNR字段使用的标准的数据元素AD_ADDRNUM,当使用包含该数据元素的视图在SM30进行维护时,就会出现下面的报错。主要测试逻辑为:当地址号为空时,点击按钮会进行创建,创建完成后将地址号反写回屏幕,再次点击按钮时,如果地址号有值,则以显示模式或者更改模式呼出弹窗。点击这个按钮,即可进行地址主数据信息的维护,并将信息更新回ADRC表中,不过ADRNR字段是会被标准逻辑隐藏起来的。:传入地址编号,进行数据库提交保存。原创 2023-11-28 11:22:50 · 1572 阅读 · 0 评论 -
SAP 快速Debug财务替代GGB1
如果快速debug财务替代GGB1原创 2023-11-21 14:48:42 · 404 阅读 · 0 评论 -
SAP KO22内部订单预算BAPI与BDC
解决KO22订单预算导入的两种方式,BAPI和BDC,及使用过程中碰到的问题点。原创 2023-11-16 17:42:42 · 445 阅读 · 6 评论 -
SAP ABAP端实现解析具有深层结构的文件内容(类似SAP PO中的FCC功能)
解析在SAP PI/PO中无法解析深层结构文件的问题,使用ABAP实现可配置的动态解析类,可按照规则解析任何字符串原创 2023-09-26 18:41:59 · 270 阅读 · 0 评论 -
ME41询价单创建BAPI
ME41询价单创建BAPI原创 2023-08-08 17:38:10 · 337 阅读 · 0 评论 -
SAP ABAP 基于 CL_BCS 发送邮件
通过ABAP代码实现发送各种类型的邮件内容,包括txt,csv,xls,pdf,image等,包括smartforms转PDF,ALV转PDF。原创 2023-07-20 15:16:25 · 4275 阅读 · 13 评论 -
ABAP CDS VIEW实现获取PO/PR审批节点信息
借助CDS VIEW获取采购申请/采购订单当前节点审批信息及下层节点审批信息,以进行效率优化。原创 2023-07-13 18:58:22 · 335 阅读 · 0 评论 -
ABAP动态生成选择屏幕字段(动态生成代码)
根据某些条件动态生成选择屏幕字段。READ reportDELETE reportINSERT reportGENERATE reportSUBMIT原创 2023-07-11 16:07:37 · 596 阅读 · 0 评论 -
ABAP解析JSON中动态字段名的内容
使用ABAP解析JSON字符串中动态字段名的内容原创 2023-06-29 10:13:31 · 450 阅读 · 0 评论 -
SAP BP主数据公司代码视图(LFB1)屏幕增强
SAP BP主数据屏幕增强-供应商公司代码视图增强原创 2023-06-19 17:07:05 · 1435 阅读 · 5 评论 -
CO11N报工使用BAPI_PRODORDCONF_CREATE_TT时无法返回配置错误消息CK466
CO11N前台报工时,会触发一个配置E类型的消息CK466,但是在调用BAPI_PRODORDCONF_CREATE_TT时,该消息并不会返回,而是返回S类型消息。原创 2023-06-12 19:34:09 · 880 阅读 · 0 评论 -
通过ABAP代码实现批导创建SAP表/结构/数据元素/域(SE11/BAPI)
通过ABAP代码实现批导创建SAP表/结构/数据元素/域(SE11/BAPI)原创 2022-12-13 13:24:31 · 1927 阅读 · 13 评论 -
ABAP Deep Structure纵深结构内表ALV展示
SAP中关于ALV展示的函数都不支持深层内表的展示,之前在做接口日志的时候,由于很多接口需要将字段设计成深层结构,看到过一些公司前辈编写的日志框架,关于接口参数的展示,或使用ALV TREE,或使用ALV,但都有一个问题,不支持深层结构字段的显示,但往往接口参数中,经常会有参数类型是深层结构的,所以一直想解决这个问题,我们国内做项目绝大部分关于报表展示都用的是REUSE_ALV_GRID_DISPLAY_LVC,所以我改造了一个基于该函数为展示前提的DEEP ALV框架...原创 2022-12-02 13:56:41 · 1171 阅读 · 8 评论 -
SAP CDS如何重命名sqlViewName
当已经创建激活好自定义CDS之后,想变更sqlViewName时会有如下的报错,当第一次激活CDS视图时,SAP会在版本数据库中生成一个活动版本,CDS实体已经和SQL视图绑定,此时更改SQL视图时,SAP是不允许的。在不想变更数据源名称,仅要变更sqlViewName的场合下,可以通过以下操作来避免这个报错。4.再次重新创建CDS即可,此时可以变更为新的sqlViewName,并且可以成功激活。2.删除掉改CDS定义(删除之后,VRSD表中才会记录该视图的版本);1.将CDS代码复制备份一下;原创 2022-10-24 11:35:23 · 441 阅读 · 0 评论 -
SAP ABAP实现类似于ME23N/MIGO的折叠屏幕开发
本文用于说明折叠屏幕的开发实现方式,类似于标准前台ME23N或者MIGO类似的效果。原创 2022-10-12 11:04:13 · 1649 阅读 · 3 评论 -
VA05批量更新BAPI:SD_BULK_CHANGE
碰到一个需求,需要实现VA05批量更新定价的功能,前台VA05可以对销售订单进行批量更新工厂,物料,定价,货币,DEBUG了一下发现底层调用的函数为SD_BULK_CHANGE。VA05前台使用的则是SD_BULK_CHANGE去更新定价,该函数对应前台下拉菜单的四个批量更新功能,我这里只针对批量更新定价写了测试代码,其他的后面用到再测吧。批量更新物料、工厂等操作,DEBUG看下系统标准逻辑是怎么传值的应该就可以。原创 2022-09-26 16:04:00 · 633 阅读 · 0 评论 -
SAP SMARTFORMS标题换页打印自动判断
最近项目需要做一些单据打印,又遇到了那个熟悉的需求,明细标题行要在换页的时候也进行打印,记得之前都是先打印出来,或者根据行高去计算,看到第几行需要换页,然后写代码计算行数,MOD求余,使用换页命令进行换页等等一些操作,碰到有多个不同明细清单,高度又不一样的时候,算起来还是挺麻烦的,于是扒了一下标准代码,看看系统是怎么判断换页的,于是抽离出来了一小部分逻辑封装了一个通用函数,后面判断换页只需要调用一下就好了,无需一堆逻辑去手动计算,再通过命令调用换页之类的操作了。............原创 2022-06-02 16:53:16 · 2347 阅读 · 0 评论 -
MD61计划独立需求导入BAPI【按日维度/动态模板/动态字段】
实现按照选择屏幕输入区间下载动态模板,根据上传模板中实际日期列名,创建对应日期的计划独立需求。下载效果:上传效果:完整代码如下,稍加修改可直接复用:*&---------------------------------------------------------------------**& Report ZPPR005*&-------------------------------------------------------------.原创 2022-05-28 22:39:52 · 1230 阅读 · 4 评论 -
ABAP CDS实现多行字段内容拼接
需求如下,当同一个供应商维护了多个电话时,将其内容使用/进行拼接实现效果如下:实现步骤:1.创建TABLE FUNCTION类型的CDS2.在eclipse或者HANA studio中创建对应的类和方法,并实现接口IF_AMDP_MARKER_HDB,将ABAP类转化为AMDP类,并为上面步骤创建的TABLE FUNCTION创建实现方法3.实现方法,使用string_agg方法进行内容拼接,不要忘记在最后一个SQL之前添加return参数BY DATABASE原创 2022-05-28 22:22:22 · 1229 阅读 · 0 评论 -
SAP SMARTFORMS文本内容手动换行输出
实现效果如下,批次和片号信息换行输出(非自动换行)实现方式如下:1.使用CL_ABAP_CHAR_UTILITIES=>CR_LF拼接换行符2.smartforms定义全局变量3.添加代码行DATA: LT_STRAM_LINES TYPE STANDARD TABLE OF STRING, LS_STRING TYPE STRING, LT_TEXT TYPE TLINE_T.CLEAR GT_CHARGPID.L..原创 2022-05-28 21:56:19 · 1764 阅读 · 0 评论 -
ME11/ME12采购信息记录及条件记录创建及更新BAPI:ME_INFORECORD_MAINTAIN_MULTI
使用ME_INFORECORD_MAINTAIN_MULTI函数进行采购信息记录及条件记录的创建以及更新,单独进行条件价格信息的创建及变更可以参照下面另一个帖子MEK1/VK11创建条件记录BAPIhttps://blog.csdn.net/DeveloperMrMeng/article/details/118896458?spm=1001.2014.3001.5501*****************************************************************原创 2022-05-28 21:39:59 · 6279 阅读 · 10 评论 -
FB02编辑Coding Block字段
默认情况下FB02是不允许更改coding block的增强字段的需要实现可编辑需要进行两个步骤:1.实施note:30671432.SM30在视图TCOBX中对增强字段添加以下配置前台效果:原创 2022-05-28 21:28:31 · 1511 阅读 · 0 评论 -
ABAP SQL Path Expression 路径表达式
如果我们要在ABAP SQL中访问CDS视图中的association(关联),那么就需要使用到Path Expression,即路径表达式,SAP希望我们使用关联而不是连接,因为关联是按需加入,只有使用路径表达式访问关联目标中的字段时,才会创建实际的join连接,下面通过几个简单的例子来说明路径表达式的使用方法。① 在路径表达式中指定基数当CDS view的关联指定基数[min..max]中的max为 * 时,在通过ABAP路径表达式访问时,需要指定基数,否则会有语法警告。ABAP中的原创 2022-03-23 16:35:09 · 255 阅读 · 0 评论 -
通过BAPI_PO_CREATE1创建明细上带有删除标记的PO
项目上碰到一个通过BAPI创建PO的需求,因为有增强会将不带删除标记的数据同步至其他系统,要等后续业务更新,将删除标记去掉之后,这张PO才能发送出去,所以需要创建出来的PO明细上打上删除标记,而标准BAPI中有标准逻辑做了限制:后续也有很多关于删除标记的逻辑,所以标准BAPI是不能实现这个功能的,需要先创建,再去更改,连续调用BAPI时可能会有数据库提交不及时的问题,接口调用会影响效率,所以将标准BAPI复制一份出来,添加自定义逻辑,来实现这一需求,具体实现如下:1.复制标准BAPI:创原创 2021-07-22 17:05:35 · 660 阅读 · 0 评论 -
MEK1/VK11创建条件记录BAPI
本例使用定价类型Z001,定价表为A991,定价key如下:该BAPI通过TABLE_NO参数确定价格信息写入哪张表,通过VARKEY参数将KEY值写入对应字段,以A991为例,根据标准程序对应的传值逻辑可以看到程序是如何将VARKEY赋值给各个定价表的key值字段的(以RV13+表名去查找对应的标准程序,BAPI中会根据表名调用对应程序的DB_UPDATE子例程)。*&-------------------------------------------------------.原创 2021-07-19 15:18:13 · 5978 阅读 · 0 评论 -
不使用DEBUG实现对SAP底表的编辑更改
我们再开发测试中经常会遇到一个场景,为了便于测试,可能会经常手动更改数据库表里的数据,我们常见的方式有哪些呢?1,SE11维护表的维护类型为可编辑2.为表维护表格维护生成器,也就是SM303.使用函数SE16N_INTERFACE4.使用DEBUG方式编辑,当我们没有维护表为可编辑状态,也没有维护SM30时,就需要用这种方式来使表格可以进行编辑,需要更改GD-EDIT,以及GD-SAPEDIT参数值为X即可,但是每次都需要如此操作,所以在这里我介绍一种船新版本,不使用DE原创 2021-07-07 10:14:13 · 1024 阅读 · 0 评论