自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深入解析SAP表单输出的核心引擎:SPOOL与OTF原理、实践与性能调优

OTF是基础语言与标准,它确保了表单内容能在不同设备和数字格式间准确、一致地表达。SPOOL是服务平台与引擎,它高效、可靠地管理着基于OTF及其他格式的所有输出任务的生命周期。理解数据流:清晰掌握从表单渲染生成OTF,到SPOOL调度,最终经驱动器或转换器变为成品(纸件/PDF)的完整路径。善用核心工具:熟练使用SP01监控输出状态,掌握等函数模块实现OTF到PDF的编程转换。关注性能瓶颈:在涉及大批量、含图片表单输出的场景中,监控并合理配置OTF页面缓冲区,是保障系统整体稳定性的关键。拥抱数字化流程。

2026-02-10 20:40:36 34

原创 SAP SmartForms字体 :从OTF缓存溢出到完美解决

精准诊断:遇到错误,首先区分是图片过大还是字体嵌入导致。删除图片测试是最快的判别方法。字体上传规范始终从SE73入口上传用于表单打印的字体。强烈建议应用SAP Note 1301018,确保上传时勾选“不替换其他字体”,避免系统自动替换引发的意外问题。如需为同一字体族上传粗体、斜体等变体,请在SE73初始屏幕上勾选对应的属性框(如BOLD),然后分别上传对应的字体文件(如上传过程中,系统会提示输入RTF控制序列信息,这是确保打印预览正常显示的关键步骤,必须正确填写。方案选型快速止血:采用方案一(

2026-02-10 20:33:41 134

原创 ABAP中JSON解析的“幽灵”字符:当换行符变成#的真相

摘要:ABAP开发中处理JSON数据时,调试器会将换行符显示为#字符(0x0A),但实际数据并未改变。JSON标准要求换行符转义为\n,而非直接包含换行符。解决方案包括:1)使用cl_abap_char_utilities=>newline替换为\n;2)创建智能解析函数自动修复格式;3)从HTTP响应获取二进制数据后转换。关键点:调试器的#显示是换行符的视觉欺骗,真正需要替换的是控制字符而非#符号(0x23)。最佳实践推荐使用ABAP标准常量处理换行符转换。

2026-01-27 10:15:47 55

原创 ABAP 编辑器 代码长度限制

摘要:SAP ABAP开发中72字符的行长度限制源于早期终端设备的显示限制,在现代开发中已不合时宜。通过取消编辑器设置中的"向下兼容行长度"选项并配置255字符页宽换行,可有效解除这一限制。这一调整特别有利于复杂SQL查询和链式方法调用的编写,但需注意255字符的字符串字面值限制仍需通过连接操作符处理。团队协作时应统一设置标准,并考虑Code Inspector检查规则及向下兼容性问题。

2025-12-31 17:28:16 205

原创 SAP邮件发送失败 从原理到实战排错

SAP邮件发送故障排查指南:本文系统介绍了SAP邮件发送架构及常见问题解决方案。核心内容包括:1) SAP邮件发送机制解析(SCOT/SOST事务码);2) 三大类典型错误(认证/连接/格式问题)的诊断方法;3) 四步定位排查流程;4) 批量发送等高级场景处理;5) 预防性监控与最佳实践。重点指出70%的问题可通过SOST错误信息和SCOT配置检查解决,强调系统性分层排查方法,并提供Office365等现代邮件服务器的特殊配置要点。

2025-12-23 18:41:40 167

原创 SAP传输请求:为什么删除的程序激活后又自动回到原请求?

SAP传输请求的"幽灵锁定"问题,本质上源于对象目录(TADIR)的持久化锁定记录。为什么删除后还会返回:因为TADIR表的KORRNUM字段未清除如何真正解决问题:释放请求或使用SE03工具重置TADIR条目如何预防问题:规范的传输管理流程和团队协作约定。

2025-12-23 18:07:41 66

原创 ALV HTML Top of Page 中文乱码问题解决方案

在配置ALV HTML Top of Page时,页面中的中文内容出现乱码现象(如文档中示例的“材料单耗同期比&预算比”等文字显示异常),影响页面可读性与业务数据展示准确性。现象:为div、td等标签添加的CSS样式(如颜色、对齐方式、字体大小)在ALV页面中未生效。解决方法:使用内联样式:优先在标签内通过style属性直接定义样式(如">),避免使用外部CSS文件或<style>标签(部分SAP版本不支持);适配SAP默认样式:避免使用与SAP系统默认样式冲突的属性名,必要时通过!

2025-12-22 18:01:33 284

原创 SAP MIRO/MIR4付款条件消失 :设计逻辑、根本原因与终极解决方案

摘要:SAP发票校验(MIRO)中付款条件(ZTERM)过账后消失的现象并非系统错误,而是SAP标准设计。其根本原因是系统将付款条件作为建议值,实际过账依据详细付款条款字段。解决方案包括:1)对分期付款启用XSPLT标识;2)优化取值逻辑,优先从财务凭证(FB03)获取;3)通过字段状态控制或开发增强强制业务规范。建议业务团队理解此设计,评估影响范围,并改造依赖程序采用"财务凭证>采购订单"的取值逻辑。

2025-12-22 11:00:03 985

原创 SAP中BASE64编码的HTTP传输:二进制与字符串的抉择

摘要:本文通过一个SAP接口开发案例,揭示了BASE64数据传输中的技术陷阱。当客户使用SET_CDATA发送BASE64编码的JSON数据时,因字符集转换导致接收方解析失败。研究发现,BASE64编码本质是二进制数据的文本表示,使用SET_DATA直接传输二进制XSTRING才能确保数据完整性。文章详细对比了SET_CDATA(字符集转换)与SET_DATA(原始字节流)的区别,并提供了优化方案:先JSON转XSTRING,再BASE64编码为XSTRING,最后用SET_DATA发送。最佳实践建议始终确

2025-12-20 11:28:56 526

原创 SAP ABAP上海银行接口开发全面解析:从设计到实现的完整解决方案

本文详细介绍了基于SAP ABAP开发的银企直连系统解决方案,实现与上海银行系统的对接。系统采用多层架构设计,包含用户界面、OA中转服务、银行系统和数据存储模块,支持交易明细查询、XML数据解析与修复、数据存储和ALV报表展示等功能。关键技术包括:特殊字符转义处理、智能分页查询算法、数据重复检查机制,以及XML修复函数实现。系统通过配置表管理银行参数,提供完整的错误处理机制,确保数据完整性和系统稳定性。开发语言采用ABAP 7.5+,通信协议使用HTTP/HTTPS和SOAP WebService,数据格式

2025-12-20 11:08:45 696

原创 SAP ABAP 物料需求计划(MRP)报表,显示物料在工厂和MRP区域下的库存需求情况

该程序是一个物料需求计划(MRP)报表工具,主要功能包括: 数据选择界面:允许用户输入工厂、物料、MRP区域和MRP控制者等筛选条件 数据获取逻辑: 从MARC表获取物料基础数据 从MDMA表补充MRP区域信息 调用标准函数获取库存需求清单 补充物料描述、MRP控制者描述等附加信息 数据显示功能: 使用ALV Grid显示物料需求数据 包含工厂、MRP区域、物料描述、需求日期、数量等关键信息 特殊功能: 需求追溯功能 双击跳转销售订单状态 直接跳转至SAP标准事务MD04 该报表为物料计划人员提供全面的物料

2025-12-17 11:11:51 364

原创 西班牙科目 损益表 Income Statement

【代码】西班牙科目 损益表 Income Statement。

2025-12-17 10:00:43 59

原创 西班牙资产负债表

该SAP ABAP程序用于生成资产负债表报告。程序主要功能包括: 定义资产和负债科目配置表(gt_left和gt_right),包含133个行项目的科目范围映射 从SKB1表获取科目映射关系,从ACDOCT表批量获取科目余额数据 计算每个行项目的期初和期末余额,并按层级汇总各项目金额 特殊处理留存收益数据(从ZFIR_006程序获取) 构建ALV输出表格,实现左右分栏显示资产和负债项目 提供选择屏幕参数:公司代码、会计年度、期间范围等 程序采用分层计算方式处理复杂的科目汇总关系,支持科目范围映射和正负号调整

2025-12-17 10:00:01 144

原创 SAP ABAP ALV单元格字段加粗

【代码】SAP ABAP ALV单元格字段加粗。

2025-12-15 19:44:44 169

原创 smartforms 文本提示 CSapEditorCtrl::GetObject: Object 13 does not exist

详情见NOTE:2221815,或者直接下面内容。

2025-12-15 19:38:22 902

原创 SAP ABAP 特殊字符打印变# 号

摘要:SAP系统中SWINCFC和CNSAPWIN是两种不同的打印设备类型,主要区别在于:SWINCFC专为多语言混合打印设计(如中日文),需通过RSCPSETCASCADINGFONTS配置字体;而CNSAPWIN是标准简体中文打印驱动,配置更简单。建议纯中文环境选择CNSAPWIN,仅当需要多语言混合打印时才考虑SWINCFC。后者相关信息较旧,实施前需确认系统兼容性。CNSAPWIN是SAP语言驱动家族成员之一,同系列还包括日文和繁体中文版本。(149字)

2025-12-13 10:26:50 476

原创 肝到最后一无所有

2025-12-13 10:15:48 70

原创 屏幕自动刷新执行逻辑,不需要回车以及其他手动操作

退出以及有多个屏幕联动切换出当前执行逻辑的屏幕时清空定时。

2025-12-13 10:11:21 202

原创 REUSE_ALV_GRID_DISPLAY_LVC 示例

2025-12-13 10:05:07 63

原创 SAP ABAP ALV字段编辑时,输入长度受限制解决方法

2025-12-13 10:02:49 92

原创 大疆 ACTION4 通过USB 直连电脑无法查看文件解决办法

2)有网络摄像头功能的设备,将磁盘驱动器中的 2 个 Linux File-Stor Gadget USB Device,右键卸载该设备后,重新将设备连接电脑,待电脑提示完成驱动安装,再核对设备识别情况;1)无网络摄像头功能的设备,将磁盘驱动器中的 DJI XXX USB Device(XXX 为对应产品),右键选择卸载,重新连上电脑后,待电脑提示完成驱动安装,再核对设备识别情况;把Linux File-Stor Gadget USB Device 卸载后,等待重连就行了。首先查看设备了设备管理。

2025-03-24 13:45:19 4268

原创 ABAP SQL模糊查询日期年月日方法

日期在ABAP内部是以字符形式存储的,格式为YYYYMMDD。例如,2023年10月15日会被存储为’20231015’。ABAP SQL支持一些类似于普通SQL的函数,比如SUBSTRING或者CAST,但是,直接使用SUBSTRING可能会影响性能,特别是如果表的数据量很大,因为函数的使用可能导致无法使用索引。在ABAP SQL中根据年月模糊查询日期字段的步骤如下:输入处理与验证:确保输入的年月有效(例如月份在1-12之间)。

2025-03-19 18:42:40 453

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

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

2023-02-09 23:44:57 1096

原创 ABAP 动态调用程序实例

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

2022-11-22 17:21:35 1490

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

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

2022-11-13 23:40:06 915

原创 ABAP ALV报表动态抬头

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

2022-11-12 21:43:04 1707

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

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

2022-11-12 21:37:33 770

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

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

2022-11-12 21:29:51 1283 1

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

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

2022-11-12 21:21:25 601

原创 ABAP OPENSQL 语法积累

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

2022-09-09 08:37:19 630

原创 ABAP BOM按层级删除数据

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

2022-09-06 11:41:37 867

原创 SAP ABAP 无敌修改请求号

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

2022-09-06 09:42:45 1092 1

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

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

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

原创 SAP PO/PI 返回空字段

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

2022-07-08 11:29:08 2828

原创 ABAP BDC代码

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

2022-06-17 17:40:20 495

原创 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 4595

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

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

2022-05-11 11:54:55 2211

原创 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 4428

原创 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 2832

原创 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 3258

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

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

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

2020-11-09

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

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

2020-11-09

空空如也

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

TA关注的人

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