自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(109)
  • 资源 (8)
  • 收藏
  • 关注

原创 ABAP 快捷键取消注释被占用问题

如果快捷键被占用了,打开SE38编辑器,找到红框中注释和取消注释两个快捷键,在新快捷方式中,把自己需要的快捷键组合按一下,然后保存就行了。

2023-02-09 23:44:57 683 1

原创 ABAP 动态调用程序实例

【代码】ABAP 动态调用程序实例。

2022-11-22 17:21:35 973

原创 ABAP 处理动态内表中指定的数据

用指针把动态结构中的字段指向定义好的ANY DATA元素,就没有语法错误了。不过这个方法局限性在于,指针如果为空就红色警告了 (结构中的元素如果没了就DUMP了)。

2022-11-13 23:40:06 560

原创 ABAP ALV报表动态抬头

在LAYOUT 中设置的抬头是在状态栏的下面,不是在上面,上面有个黑点(黑点是整个程序的属性抬头),为了偷懒我就把熟悉的抬头输了个黑点(- -)然后设置ALV抬头,这样就能区分开了不同报表在同一个程序的抬头。这个紧接上篇选择屏幕动态抬头,那ALV界面进去的界面是根据属性来显示的,那同一个程序,如果只想在代码里把ALV报表的抬头进行更改也很简单,在LAYOUT 结构中有个抬头的参数,进行事务码的区分就可以了。

2022-11-12 21:43:04 1198

原创 ABAP 动态报表选择屏幕抬头

写了一个平台的程序,然后有几个通用的业务逻辑,就写在了一个程序里面,但是通过事务码进去发现抬头都是一样的,需要做出区别。然后在初始化事件中进行不同事务码的区分,就能实现这个效果。先创建一个GUI抬头。

2022-11-12 21:37:33 447

原创 ABAP PO JSON格式统一成数组

在配置PO过程中,如果配置了数据格式(表),不做特定的处理PO中会自动转换,单挑数据转成对象格式,多条转成数组的JSON格式。为了避免格式不统一,需要在CC中进行配置,如下图。网上有个比较详细的原理解释。

2022-11-12 21:29:51 545

原创 ABAP PO XML 消息的状态为“已记录的消息(缺少提交)。

通过PO做了SAP主动推送的异步接口,在测试的时候没发现问题,上了生产之后发现一个问题,有几次没有成功推送,也没有任何报错,数据也没有进入PO。打开XML监控器发现没有推送过去的数据都是有个未提交的标识。解决这个问题只需要在程序中加入 COMMIT WORK 这个语句。

2022-11-12 21:21:25 333

原创 ABAP OPENSQL 语法积累

之前一直忽视了SQL的语法拓展,因为感觉没有HANA运用从数据库取数很慢,特别是加了点SQL操作更慢,接触了7.4 之后的版本有HNAN数据库,感觉SQL真的很快,并且有了新语法就不用取数据出来再进行循环处理了,数据量大的话反而慢了,与时俱进吧,多积累一点对于自己来说算是进步的新知识,能够提升效率。一, substring 在SQL中可以截取对应字段中数据的长度,也可以适用在WHERE条件中,目前感觉很方便。二,ltrim 同样可以用在WHERE 中,去前导零。

2022-09-09 08:37:19 356

原创 ABAP BOM按层级删除数据

判断一下父级和组件物料的那个有值,工作区打上X , 然后直接MODIFY 把父级物料匹配上的物料进行打标识X, 再对有标识的进行循环(虽然这样有点不好,在内表循环里面进行再循环删数据,但是不影响), 循环里面只对组件物料匹配上的打标识,这样来不管是父级还是组件都不会有漏网之鱼,因为要求就是输入的物料不管上下级带出来的全部给干掉。例如输入58C2313X2 第一个组件物料,那么父级出现了58C2313X2 就需要全部删掉,但是组件出现了很多个物料,这些物料又成为了父级物料带出了其他这些也需要删掉。

2022-09-06 11:41:37 399

原创 SAP ABAP 无敌修改请求号

RDDIT076,请使用这个标准程序,狠活,估计开发人员留的后门。(双击请求号即可开启新世界)

2022-09-06 09:42:45 564

原创 SAP ABAP 删除请求号,请从这个世界消失

最近单独负责一个接口的开发项目,战线时间比较长,弄了三个请求,因为配置到PO中而且改来改去的造成很多不存在的对象在请求里面,传输正式机的时候报错,我又用程序退回了这个请求然后去清理请求,我就清理了三个小时。靠又锁住了一些其他程序,那个BASIS,把我后面修改的请求号又传上去了,造孽,,,,,,,,。导致生产机某些程序挂了,造孽,,,,,,,坑货BASIS。没办法直接把原先的请求删掉,重新包了有问题的请求号的对象进去,那个无效的时间属性没进来就能正常释放了,差点生产事故严重化。

2022-09-06 09:40:26 1249 2

原创 SAP PO/PI 返回空字段

首先我在ABAP 中判断内表为空的时候插入了一条空行,然后在MAPPING 中判断WERKS 这个节点是否存在,不存在返回一个常量值为空,存在就是继续原值。测试了一下确实可以,就是我做这个的时候有22个配置的接口,几百个返回字段,算了吧。。。。。。。。 只是记录一下能实现,但是花费精力太多了。以前也做过这种,也是通过PO中转,但是以前做的是,PO只配了一个XSTRING字段节点,SAP和交互系统都在自己的开发环境把数据拼接成JSON,通过一个XSTRING传递,这样的话双方系统各自做各自的校验以及一系列操作

2022-07-08 11:29:08 1190

原创 ABAP BDC代码

每次写BDC要去copy之前的PERFORM子程序,觉得不爽。。。。刚好最近学习使用了新语法,跟上一下时代,BDC代码就是往BDC的内表一条条复制,我不如直接用新语法,整齐直观。具体代码如下:SHDB录好屏了直接对着一个个填到VALUE中,对应的五个字段。“A” 显示所有输入屏幕,如果在 bdc_tab 中包含该屏幕的功能码,则会出现小窗口显示这个功能码。它也是默认值,如果指定不是下面的值,则都认为是 A。“E” 只有在出现错误时才显示屏幕,用户可以修正数据,修正后程序可以继续处理。“N” 不显示屏

2022-06-17 17:40:20 308

原创 ABAP 如何标记ALV选中数据,获取被选中行

ALV获取被选中行,个人所知,一个利用ALVCOMMAND事件 的 slis_selfield 结构获取(适用于单行,只能选择一行),一个是在内表中构造出一个CHECKBOX,还有一种也是利用ALV标准的选择行。这里介绍第三个,利用ALV标准的选取多行或者单行。以下示例是 以 REUSE_ALV_GRID_DISPLAY_LVC 函数首先在程序内表中定义一个字段selxxx(跟构造CHECKBOX相同),这个的效果是选中了之后,这个内表字段SELXXX会刷新成X。,然后我们只需要在USER_comma

2022-06-17 17:07:08 3597

原创 ABAP RFC函数导入参数 EXPORTING 传入内表形式参数

创建一个RFC函数时,导入参数一般都是传入单条,或单值。那我想传入一个内表作为传入参呢,其实也可以,因为RFC有TABLE 参数可以传入内表类型的,但是我想在EXPORTING 传入内表,怎么做呢? 首先需要在数据字典有透明表,然后创建表类型并填入透明表名字,最后在EXPORTING 中TYPE 这个表类型就可以得到一个内表形式的传入参数。 按着下图顺序创建即可,但是会有个提示: 这样定义会影响RFC性能,看来SAP官方是不推荐这种形式的定义传入参数,因为完全可以在TABEL定义内表参数。权当记录一下

2022-05-11 11:54:55 1431

原创 SAP ABAP MOVE 及 CORRESPONDING 7.4版本新用法

从功能以及效果来分类说明吧,其实也算是新语法的一个对比解释了。当然对于以下演示都是基于内表操作来的,如果是工作区同理。1.MOVE-CORRESPONDING ITAB_A TO ITAB_B.隐式操作会把 B 清空 然后按字段名依次赋值 。7.4新语法:ITAB_B = CORRESPONDING #(ITAB_A) .2.MOVE-CORRESPONDING ITAB_A TO ITAB_B KEEPING TARGET LINES . ITAB_B = CORRESPO

2022-04-22 18:48:36 2946

原创 SAP DEBUG 后台JOB 的方法

事务码SM37 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1107ee6007de4894abca596967566f8b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Zyo57q_5Y2W6Ium5Yqb77yM5o6l5rS7,size_20,color_FFFFFF,t_70,g_se,x_16)F8 执行到自己设置的后...

2022-04-22 14:50:53 1741

原创 SAP ABAP 检查一行数据是否存在 (UP TO 1 ROWS 与 SELCET SINGE 浅析)

这与之前的一篇有点类似,但是这里想表达的是关于两个语法性能方面的问题,关于SINGE 和 UP TO X ROWS 的争论各执己见。检查数据库中某一行的数据存在SELECT SINGLE col FROM dbtab WHERE any_key INTO (field) ##warn_ok.IF sy-subrc = 0. …ENDIF.740 之后新语法可以把 ‘X’ 以及 文本 来替换数据库字段,以此隔断 DB

2022-04-22 11:56:06 2392

原创 SAP GUI 750 版本免密快速登录方法

升级了GUI版本,为了安全性GUI 取消了创建快捷方式添加账号密码的功能,但是用习惯了,每次都输入密码真的是很难受。可以通过改注册表的方式来继续实现快捷登录功能。WIN10(管理员权限)+ 750版本方式:1.以管理员身份运行‘C:\Program Files (x86)\SAP\FrontEnd\SAPgui’路径下的‘sapshcut.exe’文件,提醒的信息可以忽略:2.WIN+R,输入命令‘REGEDIT’\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432N

2022-04-19 16:06:21 2140

原创 SAP ABAP 传输请求排序增强

用STMS 传输请求时,总要拉到最下面进行刷新才能看到刚刚释放的请求,在TMS_UIQ_INT_SORT_QUEUE 函数中的最下面 第91 行 打开隐式增强加入以下代码, 把请求号进行倒叙排序。 IF IV_SORT_FIELD IS INITIAL. SORT ct_requests by bufpos DESCENDING. ENDIF....

2022-03-28 15:09:27 330

原创 SAP ABAP ALV窗口形式

这个功能也是很实用的一个功能,把AVL作为窗口的形式弹出,最典型的就是放在穿透的功能上。 例如已经有一个ALV了,点击数据穿透到另外一张报表,这个时候又想对比一下原数据,就可以做成弹窗的形式。需要设置四个参数 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' "statt LIST EXPORTING i_bypassing_buffer = 'X' i_buffer_active = 'X' i_ca

2022-03-22 23:15:35 765

原创 SAP ABAP 动态字段赋值

最近优化了很多老程序,代码很冗余,特别是财务的有很多有规则的字段以及月份计算。 通常的来可能会写一个form 来把通用的放在一起,然后通过传值来实现只用一个字段变量来达到动态的目的,但是这个有一个弊端,就是外层还是要把所有字段全部列出来,比如FAGFLEXT 表里的月份字段,12个都要列出来。为了更简单易懂,删除掉冗余的东西,还是要来点真正的动态。这里用到了指针。来举个具体的例子。用这段的背景是,我做了QM质检一系列的,有整机档案,检验批,质量通知单, 还有一个汇总的程序,因为要求实时获取,所以当运行

2022-03-22 23:02:44 1866

原创 ABAP SELECT SQL 判断是否存在

TABLES:XXXX.SELECT * FROM XXXX WHERE XXX = XXXIF SY-SUBRC = 0.ENDIF.这句判断一下EKKO表中有没有符合条件的数据,要提前声明这张表。还有另一种判断的语法,是聚合函数COUNT,计算数据数量的,用SUBRC判断也可以用另外一个字段判断,忘记了。。。。。。,也是SY-XXXX。SELECT COUNT(*) FROM XXXX WHERE XXX=XXXX“2022.3.29 更新sy-dbcnt 判断OUNT返回条数.

2021-12-12 18:34:16 2106

原创 ABAP 截取字符串

lv_1 = text+0(5). "取1-5个字符lv_1 = text+3(5). "取4-5个字符

2021-12-12 18:28:08 3976

原创 ABAP 选择屏幕条件 同行显示

选择屏幕设置字段大家都普遍的都是一列的排序下来,设置成同行就一句语法的事,加粗即是。SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-101.SELECTION-SCREEN BEGIN OF LINE.PARAMETERS: p1 AS CHECKBOX.SELECTION-SCREEN COMMENT (30) text-102.PARAMETERS: p2 AS CHECKBOX.SELECTION-SCREEN COMME

2021-12-12 18:22:53 1153

原创 ABAP RANGES及比较符号

RANGES*选项介绍:*1.SIGN 值为 I 和 E 。 I是包含, E是排除, 一般使用I。2.OPTION 如果HIGH 为空 ,为单值选择 。有 EQ、NE、GT、LE、LT等逻辑操作 对于的 CP包含 NP是排除 如果HIGH 不为空 为区间选择 有BT,NB可选*3.LOW 低值*4.HIGH 高值lt:less than 小于le:less than or equal to 小于等于eq:equal to 等于ne:

2021-12-12 17:41:13 3228 1

原创 ABAP 打印中如何实现单元格合并效果

SMARTFORMS 打印中,横跟列的格式都是贯穿整个页面的,像EXCEL一样,但是EXCEL中有合并单元格的功能,能实现出如下图的效果:但是用SF打印就没这个功能,导致有些图片不能这样放进去以及一些格式实现不了。询问了朋友给了我一个建议,就是横着画模板。上图这个是竖着画模板,SPAD 中新建一个横向的纸张,然后打印中用这个模板画成下面那样:,再竖着打印,这个方法只是想法,没有去实践实际效果。...

2021-11-24 11:34:23 935

原创 ABAP 语法新特性

表达式vs关键字ABAP是一门包含有大量关键字的语言。SAP似乎意识到了关键字过多带来的不便,在尝试着在近期的更新中引入更多表达式的写法。表达式的写法比关键字更加简洁、可读,推荐尽量使用表达式代替关键字,比如: "实例化对象 DATA(e_receiver) = NEW event_receiver( ). "推荐的写法 DATA e_receiver TYPE REF TO event_receiver. "不推荐的写法 CREATE OBJECT e_receiver. *调用.

2021-11-23 14:27:16 390

原创 ABAP 导出SE11数据字典中表及结构

怎么导出SE11 中数据字典中的内容打印参数随意选择,然后点击打印预览打印预览界面切换成列表显示到下面这个界面就能导出这个界面了,其实可以录个屏,然后就方便很多。

2021-11-23 14:03:45 1982

原创 ABAP GIT 使用教程

ABAPGIT文章目录ABAPGIT前言一、安装GIT二、使用教程1.离线模式2.在线模式总结前言SAP 中的二次开发语言ABAP虽然是一个比较小众的开发语言,但是也有很多大拿潜心研究,为了方便我们能学习到大拿的结果,在这介绍一个比较好用的开源项目ABAPGIT,ABAPGIT 拥有在线模式和离线模式两种,精华肯定就是在线模式了,离线模式对于程序的倒进导出也是很完善了,GITHUB上关于ABAP 开源的代码都可以通过离线导入。一、安装GIT安装ABAPGIT其实很简单,可以直接在GITHUB搜

2021-11-21 19:46:09 1816

原创 SAP ABAP 通过NACE配置实现VA03前台打印

关于NACE 配置内容,最近做了几个打印都涉及到了,利用了SAP标准的功能去实现打印功能。之前的项目关于标准事务码的打印都是通过增强实现的,第一次做这种系统配置不是太熟练东问西问,但好歹实现了效果。把整个过程记录一下。配置第一步: NACE事务码配置还是需要强大的业务知识做支撑的,这里就只是贴出配置过程,业务知识还是询问一下其他人把。这次新增的是为VA03增加一个打印模板,看看前台是在哪打印的最终配置好就是这个实现的效果,然后就能进行打印ZA07就是新增的。那接下就是具体的配置过程。1.打

2021-11-17 14:05:22 1735

原创 ABAP SMARTFORMS 连续打印(套打功能)

ABAP SMARTFORMS套打功能对于SAP打印的功能,如果对于纸张有要求或者需要同时打印好几种类型单据,就需要套打了。单个打印轻车熟路,套打需要用OPEN 和 CLSOE 两个函数控制。先获取多个要打印的函数名 。CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’EXPORTINGformname = lv_formnameIMPORTINGfm_name = lv_fnameEXCEPTIONSOTHERS = 4.然后定义gs_contro

2021-10-09 16:20:33 2110

原创 ABAP OOP 面向对象设计原则 SAP

Abap oo学习理解设计基本原则 1. 单一责任原则srp(一个类只负责一个功能领域的职责) 当业务场景中的某个功能领域business A相关的逻辑需要修改或者扩充时,我们需要修改相关的类class A。但是如果 功能B发生了变化,需要去修改class A,这就不符合单一原则。那为什么要这样呢,道理也很简单,如果相互影响就会大幅度降低可维护性。(如果继续有高耦合的特性,跟多个屏幕中主屏幕的PBO一样,余下的所有子屏幕都会过一遍中主屏幕PBO的代码,现实中也有这种例子瑞士有一把155种多功能的军刀。)

2021-10-07 18:37:36 340

原创 ABAP 功能码用处

在屏幕开发的过程中,经常会有一些操作是需要回车,或者操作的了才会刷新一遍代码。那PBO 或 PAI 中总要有触发条件,而有些用户的需求就很与时俱进,要求选了某些值,或点击了哪哪就可以实现某些功能。这时候就要用到功能码这个属性了。很典型的一个场景,下拉框的选值,我想选到了特定的值给我弹出一个消息或者警告。那这个时候就跟界面输入值一样,是不会去触发任何代码的,除非你回车或者双击。那加了功能码之后,不要去处理这个功能码就行。把代码写在PBO中就能达到选特定值执行某些效果。这种还能做一些联动,挺实用的一个技巧。

2021-10-05 11:38:28 553

原创 ABAP TRANSPORTING NO FIELDS 用法

不用读取数据到工作区,只是遍历一遍内表数据。 加上WHERE 优化一些性能。 LOOP AT lt_bapi_return TRANSPORTING NO FIELDS WHERE type CA 'EA'. EXIT. ENDLOOP.

2021-10-05 11:32:47 2021

原创 ABAP 域值报错

在ABAP字典中建域的时候,有时候会加上预定义的预值。如果在屏幕中的字段使用了该域值,那么只能输入预定义的值,其他值就会提示 : 输入的值错误 E 类型的报错。 典型的就是,把有域值的字段做成复选单选框(其实定义域值绝大多数是做下拉框),SAP默认该类型字段的值为X,那该字段的域值定义中没有X ,就会报错。还有其他很多情况。...

2021-10-05 11:22:23 367

原创 ABAP FIELD-SYMBOLS

FIELD-SYMBOLS , 永远指向表中最后一个空行。 知道这个特性可以设计一些算法的东西。

2021-10-04 13:28:01 249

原创 ABAP 创建记录更改表的程序

关于一些要记录表的更改记录,做成记录可供展示。RSSCD000 创建更改记录程序RSSCD100 查询表更改记录

2021-10-03 17:40:03 340

原创 ABAP 指针传值ASSING

这个属于一个很实用的开发技巧了,避免了实用ABAP 内存和SAP 内存的方法实现跨程序传值。那我们首先要明白一些关于SAP进程的知识链接,关于使用的方法不难。 FIELD-SYMBOLS: <lfs_csin> TYPE csin, <lfs_bom> TYPE any. ASSIGN ('(SAPLCI04)CSIN') TO <lfs_csin>.他的原理也是在于进程管理机制,当堆栈的程序会保存全体变量。用ASSING指向想要的程序内存地

2021-10-03 17:28:46 1311

原创 ABAP 逻辑数据库的循环REJECT

通常使用逻辑数据库,通过GET 方法来实现逻辑数据库中指定表的循环读取,每个GET后面对应一个数据节点。通常有先后顺序,但是REJECT 可以直接返回上一个GET方法。(逻辑数据库需要再报表程序中LOGICAL DATABASE指定)。NODES: SBOOK,SFLIGHT. " 逻辑数据库先申明GET SFLIGHT. WRITE:/ 'CARRID:', SFLIGHT-CARRID, 'CANNID:', SFLIGHT-CANNID, 'F

2021-08-23 08:36:34 476

zabapgit.abap.txt

ABAPGIT安装程序

2021-11-21

源代码(ALV 报表 F4 增删插改按钮功能).pdf

ALV 报表按钮功能

2021-04-21

新建 Microsoft Word 文档.docx

需求 1、 SRM2.0维护好电商物料的mapping关系后通过接口更新ERP对应表字段信息 业务确认逻辑 2、 SRM2.0维护好电商物料的mapping关系后通过接口更新ERP对应表字段信息 系统开发逻辑 新增接口供SRM调用 输入:如下截图字段(会有多条) ERP系统接收SRM传入的以上字段后,存到表ZTSRMMATMAP001对应字段,ZTSRMMATMAP001-CNAME记录为SRM, ZTSRMMATMAP001-CDATE和CTIME记录为写表日期和时间 实现 已有自建表ZTSRMMATMAP00,目前在本地 流程:先写个RFC-再去配置PI。SAP为接收方,SRM

2020-12-14

参考程序123123.docx

一、 基本信息: 明细 系统名称 反馈部门 反馈人员 关键用户 反馈时间 IT跟进人员 ERP FNC 李秋丽 李秋丽 2020/12/04 王沛垚 二、 问题描述: 2.1问题概述:简述遇到的问题及造成的影响 SAP传BI的AR数据部分字段取值不正确 2.2复现步骤:详细操作步骤或信息 SAP传BI的AR数据部分字段取值不正确 2.3正确样例:提供系统正常情况下的界面截图或数据 SAP传BI的AR数据全部字段取值正确 三、 解决方案: 3.1建议方案:建议方案需要经过ITBP同事或业务部门关键用户确认 1. 修改SAP传BI的AR数据 (1) 付款条件 - ZTERM

2020-12-08

新建文本文档 (2).txt

***返回报文处理 CALL FUNCTION 'HR_KR_XSTRING_TO_STRING' EXPORTING from_codepage = '8400' in_xstring = lv_result * OUT_LEN = IMPORTING out_string = lv_string2. CALL METHOD lo_http_client->close. " 将 XML转换成简易嵌套结构,消除特殊字符。 SHIFT lv_string2 UP TO '<CBSERPPGK>' L

2020-12-02

SRM2.0合同数量及金额订单管控-FS.docx

SRM2.0合同数量及金额订单管控-FS.docx

2020-11-10

SRM2.0合同数量及金额订单管控-FS.docx

SRM2.0合同数量及金额订单管控-FS.docx

2020-11-09

生产领料同步贴纸增加水含量计算-功能说明书 (1).docx

生产领料同步贴纸增加水含量计算-功能说明书 (1).docx

2020-11-09

空空如也

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

TA关注的人

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