![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SAP ABAP
文章平均质量分 52
SAP剑客
一日不读书,胸臆无佳想。一月不读书,耳目失精爽。
展开
-
【转载】ABAP CDS
CDS(Core Data Services) are domain specific languages(DSL) and services for defining and consuming semantically rich data models in SAP HANA. They are integral part of SAP HANA, and can be leveraged in the ABAP stack.原创 2024-06-22 15:35:04 · 1023 阅读 · 1 评论 -
【ABAP】SAP外向交货单取消拣配数量实现
外向交货单是物流发货时生成的系统单据,是用在客户与企业之间的。比如销售订单数量是100,可以分几次交货,每次交货都会生成一个外向交货单。一般情况下销售开票是基于外向交货单的。原创 2024-02-28 19:57:45 · 1200 阅读 · 0 评论 -
【ABAP】通过SAP发布Restful服务Demo
REST(Representational State Transfer)表象化状态转变(表述性状态转变),在2000年被提出,基于HTTP、URI、XML、JSON等标准和协议,支持轻量级、跨平台、跨语言的架构设计。是Web服务的一种新的架构风格(一种思想)。原创 2024-02-27 20:33:23 · 1397 阅读 · 1 评论 -
【MM】预留信息下发其他系统的实现
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它是基于 TCP 协议的应用层传输协议。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。HTTP 是一种无状态 (stateless) 协议, HTTP 协议本身不会对发送过的请求和响应的通信状态进行持久化处理。这样做的目的是为了保持 HTTP 协议的简单性,从而能够快速处理大量的事务,提高效率。原创 2024-02-02 20:31:45 · 501 阅读 · 0 评论 -
【QM】自定义检验批完成后续动作
SAP质量模块与采购、生产、销售模块都有对应集成业务集成点。如MM模块可以进行供应商评估,进行收货检验,库存里面周期性产生检验批;在PP模块生产过程中有检验点,过程检验;在SD模块销售发货时候有销售发货检验,创建质量通知单。SAP质量管理有质量计划、质量主数据、质量检验以及质量对应的控制。原创 2024-01-30 19:50:21 · 581 阅读 · 0 评论 -
【ABAP】SF超长内容二维码打印
SMARTFORMS是SAP所提供的一款功能强大的商务报表解决方案,也被称为智能表单,能够按指定格式生成报表,并可以将执行结果通过连接打印机直接输出,采用图形模式来控制报表的格式及位置。原创 2023-12-17 11:33:29 · 1343 阅读 · 0 评论 -
【PM】PM订单屏幕增强
设备维护又称为工厂维护,是资产密集型企业为了确保其生产系统正常运作,针对其设备维护及检修的相关业务而广泛采用的管理软件与功能模块,一般来说,企业应用设备维护管理有两个标准:一是企业的生产性固定资产规模在10亿元以上,二是年均设备维修费用超过500万元以上。对这类资产密集型企业而言,其生产设备的正常运作是企业生存和发展的基石,一般来说,石油、化工、造纸、电厂、电网、重型机械设备制造等行业,都可以广泛应用设备管理这一功能模块。原创 2023-10-21 09:08:53 · 450 阅读 · 0 评论 -
【转载】How to merge multiple PDF forms into single one and write in application server
Brief requirement: The real life scenario demanded to send a bundle of different SAP system generated PDF forms to a third party document repository ( has access to the SAP application server ) . The form bundle contains different forms like cover letter,转载 2023-06-07 20:16:36 · 1562 阅读 · 0 评论 -
【ABAP】“BAPI_PO_CREATE1”行项目字段“NO_PRICE”妙用
背景:当前在SAP中通过BAPI“BAPI_PO_CREATE1”创建采购订单,默认的条件类型是PBXX,可手动调整价格,而对于外协加工类型订单客户要求采用条件类型PB00,该条件类型无法手动添加,需通过信息记录/框架合同自动带入。原创 2023-05-24 21:25:55 · 2454 阅读 · 0 评论 -
【ABAP】MM采购发票校验开发Demo
SAP采购发票校验BAPI主要用于校验采购发票是否符合系统的要求,包括检查公司代码、供应商、物料等信息是否正确,同时还会执行相关的账务检查。原创 2023-04-19 19:36:41 · 3475 阅读 · 2 评论 -
【ABAP】PS模快报表字段增强
CJI3N是PS模快中非常重要的一个成本报表,通过该报表可以查看下项目明细的实际陈本以及收入信息,历史每一笔过账或因后勤业务产生的成本或收入信息全部都会在此展示。同时它还可以向下进行钻取,双击展示原始单据。原创 2023-04-17 19:26:14 · 1506 阅读 · 0 评论 -
【ABAP】Excel剪贴板内容批量上传实现
在ABAP中的 CLASS :CL_GUI_FRONTEND_SERVICES中提供了两个方法来控制与剪贴板内容的导入导出,分别是:CLIPBOARD_EXPORT和CLIPBOARD_IMPORT。CLIPBOARD_EXPORT是将一个内表的内容导入到剪贴板中,而CLIPBOARD_IMPORT是将剪贴板中的内容导入到一个定义好的内表当中。原创 2023-03-02 20:22:23 · 2087 阅读 · 1 评论 -
【ABAP】采购申请审批后下发消息服务器
RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。主要功能是异步解耦和流量削峰。原创 2023-02-23 18:54:10 · 1825 阅读 · 1 评论 -
【ABAP】获取销售合同执行数量
获取销售合同的数量(ZMENG)、已转为销售订单数量(KWMENG)、未转化数量(ZMENG -KWMENG)。销售合同(VA43)明细界面中显示的”订单数量“其实并不准确,没有剔除行项目被拒绝的销售订单数量。基本思路还是通过凭证流表”VBFA“。原创 2023-02-14 21:37:24 · 1781 阅读 · 0 评论 -
【Demo】银行主数据的修改
SAP ABAP银行主数据创建原创 2022-12-12 20:53:24 · 1905 阅读 · 1 评论 -
【ABAP】采购申请审批增强Demo
在保存后提交前进入方法“POSTED”进行校验,这里有变动前后的“采购申请明细”和“账户分配”信息,可以基于这个进行判定。分析:当前SAP中有外部系统调用自定义函数审批的情况,也有手动单个/批量审批的情况,需要找到通用的解决方案。判定方法有很多,可以根据实际情况进行斟酌,比如根据批准标识“FRGKZ”的变化值进行判定,从而决定是否推送。这里,虽然“IM_EBAN”是一个Table,即使批量处理,但是每次也只会带入一个采购申请。具体实现代码略,可以根据业务实际进行实现。原创 2022-11-30 20:34:58 · 2356 阅读 · 0 评论 -
【ABAP】EXIT_SAPLMBMB_001无法Debug调试问题处理
“Update task”是用于对话或报表中实现同步和异步更新数据库的功能,在Update之前还有一个Before Update,用于更新数据前的检查,当二者都执行完,才会进行到后面的Commit,当before update成功执行,而update不成功,会报错如下,显示数据回滚:Express document "Update was terminated" received from author "SAP_001".原创 2022-11-25 20:42:39 · 2062 阅读 · 0 评论 -
【ABAP】SAP发送消息至RabbitMQ
消息队列中间件(Message Queue Middleware,即MQ)也可以称之为消息队列或者消息中间件,是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。原创 2022-11-23 20:27:21 · 2693 阅读 · 2 评论 -
【ABAP】生产订单收货增强控制
生产订单需控制先有投入方有产出,禁止直接收货。原创 2022-10-26 18:47:54 · 1235 阅读 · 0 评论 -
【ABAP】MFBF过账到质量检验库存类型Demo
重复制造:系统依据产品的独立需求产生计划表,可手工调整计划表,再根据计划表、BOM、线旁库库存生成拉料单,仓库依据拉料单发料到线旁库,在系统中设置相应的报告点,产品下线完工后,在每个报告点及时做反冲处理,相应的成本归集到成本收集器中。...原创 2022-07-26 19:53:36 · 1043 阅读 · 0 评论 -
【Demo】ABAP Base64加解密测试
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。原创 2022-07-25 19:58:56 · 777 阅读 · 1 评论 -
【增强】SAP生产订单下达保存时更新批次特性值
生产订单下达保存时更新批次特性值需求:当ERP中指定类型的生产订单按下小绿棋下达后,则会在“已确认”中出现下达日期,此时需要将该日期在按下订单保存按钮时写入至收货批次特性中(批次已在创建订单时候创建并指定)。实现:1、找到生产订单保存(事务代码CO02)时增强“PPCO0007”(保存生产订单时退出),并通过函数“MODX_FUNCTION_ACTIVE_CHECK”确认其是否被实现(ACTIVE=’X’即已实现)。2、通过事务代码CMOD创建增强实现,填充完整.原创 2022-05-27 21:47:57 · 2538 阅读 · 1 评论 -
【ABAP】清空屏幕内存参数的值
清空屏幕内存参数的值ABAP中可以通过Set Parameter和Get Parameter语句存储和检索来自ABAP/4程序的SPA/GPA值,其中ID标识符为三个字符,其必须在SAP表“TPARA”中定义。下面有一个例子,在自定义Screen内放置了成本中心(KOSTL)、供应商(LIFNR)、资产分类(ANLKL)等字段,保存后再次进入处理,由于未退出当前GUI,程序会自动将上一次的值带入,容易造成混淆。主要原因是这些字段所参照的数据元素都自带参数ID。查看字段帮助可以原创 2022-05-10 21:22:49 · 1765 阅读 · 0 评论 -
【ABAP】固定资产创建BAPI无法自动写入增强字段处理
固定资产创建BAPI无法自动写入增强字段处理通过实现增强点“AIST0002”给SAP固定资产主数据屏幕添加自定义字段(增强实现这里省略)。(下图的增强字段仅供参考)目前需要实现的功能是通过自定义程序审核用户上传的固定资产信息,审核通过后最后一个节点自动创建固定资产编号。创建固定资产BAPI代码如下:*&---------------------------------------------------------------------**&...原创 2022-05-09 21:59:06 · 1697 阅读 · 1 评论 -
【整理】SAP配置SSL/HTTPS服务
SAP配置SSL/HTTPS服务情景:ABAP请求HTTPS服务时报错,查看log信息 (Goto / Trace File / Display end)为*** ERROR => Initialization of SSL library failed NO SSL available!解决方法:SE38:运行程序“RSPARAM”,查看参数名称“SAPCRYPTOLIB”是否被定义。RZ10:维护实例配置文件参数,确保已经设置了以下值(如未设置,则将其添加为新的参数原创 2022-04-13 14:02:18 · 5894 阅读 · 0 评论 -
【ABAP】SAP RESTFUL 服务应用
RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用格式定义或者JSON格式定义。RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。在SAP中对外提供Web Service需要用到ICF (Internet Commincation Framework) 。如果要将SAP应用程序服务器作为HTTP服务提供者,就需要定义一个类(实现 IF_HTTP_EXTENSION 接口)。..原创 2022-04-11 20:58:29 · 2270 阅读 · 0 评论 -
【ABAP】获取程序中的Include
某公司自定义开发的程序都有使用次数和使用者信息的记录,这就要求每次新开发的程序均要包含指定Include程序,下面的代码就可以根据输入的程序名称校验是否遗漏Include程序。*&---------------------------------------------------------------------**& Report ZTEST_GET_INCLUDETAB*&*&---------------------------------------原创 2022-04-06 21:22:30 · 1741 阅读 · 0 评论 -
【ABAP】更新交货单交货数量和拣配数量
需求:Demo:*&---------------------------------------------------------------------**& Report ZTEST_VL02N_DELIVERY1122*&---------------------------------------------------------------------**&*&--------------------------------.原创 2022-04-03 22:26:42 · 2400 阅读 · 0 评论 -
【ABAP】Json格式转ABAP内表
Demo 1:TYPES: BEGIN OF T_RECORD1, NUMNO TYPE CHAR10, PRODNAME TYPE CHAR50, END OF T_RECORD1.DATA: JSON1 TYPE STRING.DATA : RECORD1 TYPE TABLE OF T_RECORD1 WITH HEADER LINE .JSON1 = '[{"NumNo":"001","ProdName":"Fert01"},{"原创 2022-03-31 20:45:52 · 2134 阅读 · 0 评论 -
【测试】ABAP 分配WBS元素结算规则
ABAP 分配WBS元素结算规则DATA:LT_COBRBLIKETABLEOFCOBRBWITHHEADERLINE.DATA:LV_OBJNRLIKEPRPS-OBJNR.DATA:LV_TYPETYPECHAR01,LV_MSGTYPECHAR255.PARAMETERS:P_PSPNRTYPEPS_POSNROBLIGATORY.PARAMETERS:P_ANLN1TYPEANLN1OBLIGA...原创 2022-03-25 20:37:03 · 1313 阅读 · 2 评论 -
【ABAP】报表进度提示
报表进度提示有些报表逻辑处理比较复杂,查询处理会占用一些时间,用户建议做个进度提示,可以看到进行到哪个环节了,比如我们常用的MB5B报表就有类似的功能。主要逻辑就是划分功能块,按流程显示进度。另外一种情况就是列表进度,可以让用户看到总记录数及当前处理到第几条。【核心代码】METHODSAPGUI_PROGRESS.DATA:LV_TEXTTYPECHAR80,LV_PER(3)TYPEN,LV_CURRENTTYP...原创 2022-02-10 19:52:55 · 1301 阅读 · 0 评论 -
【ABAP】SAP供应商自定义决裁生成实现
SAP供应商自定义决裁生成实现一、需求由于目前SAP中供应商主数据管理比较松散,创建比较随意,导致存在大量重名的或者税号相同的供应商代码,也有一部分供应商主数据创建未使用,给实际业务中选取供应商造成了困扰。现需要针对供应商主数据做集中管理,关闭目前的创建和修改功能(XK01/XK02/MK01/MK02/FK01/FK02),新建一个申请程序,通过该程序对供应商的创建和修改做申请,然后通过流程审批控制,最终决裁后生成供应商主数据。二、效果下面的示例图仅供参考。首先需要收集决裁信息原创 2021-12-22 20:21:08 · 556 阅读 · 0 评论 -
【ABAP】采购申请自定义审批策略的实现
采购申请自定义审批策略的实现一、自定义审批策略和流程首先需要确定审批策略,通常以部门为基准来建立,然后新建一个自定义表,维护申请者和审批策略之间的关系。比如采购一部:Z1旗下多个业务员(由于ERP ID个人化程度很高)均分配此审批策略“Z1”。接着需要针对策略维护审批流。比如上面的审批策略“Z1”需要以下四人进行审批:采购一部经理→ 采购副总→ 财务经理→ 子公司经理最后创建审批对象表及审批Log表,包含采购申请及审批状态。二、采购申请原创 2021-12-09 20:07:57 · 1025 阅读 · 0 评论 -
【学习笔记】ABAP OOD设计模式 - 桥接模式
ABAP OOD设计模式 - 桥接模式整理转自—《SAP ABAP 面向对象程序设计(原则、模式及实践)》桥接模式又称为桥梁模式,在程序开发中,采用不同的维度分解一系列对象,然后采用组合的方式,根据需要灵活组合,这个过程就是解耦和提高灵活度的过程,也就是所谓的桥接模式。其中,Abstraction为抽象化角色,定义出该角色的行为,同时保存一个对实现化角色的引用;Implementor是实现化角色,它是接口或者抽象类,定义角色必需的行为和属性;RefinedAbstract原创 2021-12-07 18:21:34 · 809 阅读 · 0 评论 -
【学习笔记】ABAP OOD设计模式 - 观察者模式
ABAP OOD设计模式 - 观察者模式 整理转自—《SAP ABAP 面向对象程序设计(原则、模式及实践)》定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,这个对象相关依赖的所有对象都可以得到通知并能够自动更新的行为模式就成为观察者模式(Observer Pattern),观察者模式属于行为型模式。效果:观察者模式将观察者和被观察者解耦,被观察者可以按需要增加或者删除观察者,并能够将变化及时通知给所有相关的观察者。【示例】比如工厂库存消耗后低于一定量会触发再订原创 2021-11-30 21:04:09 · 660 阅读 · 0 评论 -
【学习笔记】ABAP OOD设计模式 - 单例模式
ABAP OOD设计模式 - 单例模式整理转自—《SAP ABAP 面向对象程序设计(原则、模式及实践)》单例模式(Singleton Pattern)是常用的且较为简单的软件设计模式之一,是只有一个实例被创建出来的模式。需要定义一个特殊的类,该类能够实现这样几个特性:类只能有一个实例,即使再次创建,保证返回的是同一个实例对象; 类必须能够在内部控制实例的创建,调用者无法任意创建; 类能够被全局访问和共享;解决方案:定义一个单例类,该类的可见度是Private,即外原创 2021-11-29 19:57:39 · 655 阅读 · 0 评论 -
【学习笔记】类对象的内存释放
类对象的内存释放整理转自—《SAP ABAP 面向对象程序设计(原则、模式及实践)》类对象与其他数据变量一样,都是要占据程序内存的,如果确定后续程序不会再使用对象实例,我们就可以删除对象实例,释放内存。SAP ABAP中对于不再使用的类对象实例使用垃圾收集器(Garbage Collector)删除。ABAP OOP其实跟Java一样,不必主动删除和释放对象,虚拟机的垃圾收集机制会帮助我们清理和收集对象内存。清除类对象可以使用”CLEAR”和”FREE”操作,将类对象设置为空值(NU原创 2021-11-28 20:41:29 · 2014 阅读 · 0 评论 -
【学习笔记】持久类和对象持久化的应用
持久类和对象持久化的应用整理转自 —《SAP ABAP 面向对象程序设计(原则、模式及实践)》对于一般的面向对象语言,对象持久化通常是指将对象存储于数据库或者磁盘文件中,便于以后调用处理,也就是通过操作将内存中的对象保存到数据库或者文件中。对于ABAP程序,持久化一般是保存到数据库表中,ABAP也提供了自动化方式和服务来帮助我们管理和操作持久化对象。【实例】下面通过一个简单实例来说明:系统中的一个类对象,在业务处理中属性被赋予了不同的值,我们将对象实例的属性值存储到SAP数据原创 2021-11-25 20:30:44 · 1283 阅读 · 1 评论 -
【转载】ABAP中数据和对象的动态创建和调用
ABAP中数据和对象的动态创建和调用动态创建数据或者对象是指在程序运行过程中创建数据变量或者对象实例,我们可以用引用定义来创建数据变量,格式为:CREATE DATA gt_def TYPE (‘ty_i’) “用来创建类型为ty_i的变量访问上述变量的方式是:gt_def->* = 1因为数据引用变量自身没有属性,所以可用“*”来代表数据变量里面所有的内容。基于类对象的动态创建,一般方式是将业务类型与对应的类类型存储在自定义的数据库表中,然后在程序...原创 2021-11-18 19:54:27 · 1198 阅读 · 0 评论 -
【转载】字段符号在ABAP OOP中的应用
字段符号在ABAP OOP中的应用字段符号是ABAP中类似于指针的一种应用,字段符号并不保存数据,其仅仅指向数据内存地址。ABAP的字段符号可以较为方便灵活地访问数据,字段符号使用尖括号“<>”来定义。定义语法如下:FIELD-SYMBOLS <FS> [<type>|STRUCTURE <s> DEFAULT <wa>].字段符号的特点如下:字段符号并不占有自己的内存空间; 字段符号可以指向ABAP所支持的所原创 2021-11-18 19:52:26 · 823 阅读 · 0 评论