- 博客(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
原创 西班牙资产负债表
该SAP ABAP程序用于生成资产负债表报告。程序主要功能包括: 定义资产和负债科目配置表(gt_left和gt_right),包含133个行项目的科目范围映射 从SKB1表获取科目映射关系,从ACDOCT表批量获取科目余额数据 计算每个行项目的期初和期末余额,并按层级汇总各项目金额 特殊处理留存收益数据(从ZFIR_006程序获取) 构建ALV输出表格,实现左右分栏显示资产和负债项目 提供选择屏幕参数:公司代码、会计年度、期间范围等 程序采用分层计算方式处理复杂的科目汇总关系,支持科目范围映射和正负号调整
2025-12-17 10:00:01
144
原创 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
原创 大疆 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 处理动态内表中指定的数据
用指针把动态结构中的字段指向定义好的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 删除请求号,请从这个世界消失
最近单独负责一个接口的开发项目,战线时间比较长,弄了三个请求,因为配置到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 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
新建 Microsoft Word 文档.docx
2020-12-14
参考程序123123.docx
2020-12-08
新建文本文档 (2).txt
2020-12-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅