ABAP实例分享
都是ABAP开发的一些干货,会经常放一些实用的接口或代码例子,也是我这么多年开发的一个知识沉淀。
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
SAP道长
未来是美好的!!!努力總是感人的!!!
SAP/ABAP/VB/C#/SQL/ERP/企业微信/OA
展开
-
ABAP Excel处理-内表导出为Excel文件
5. Transformation 生成xml格式的Excel(.XLS)6. ABAP2XLSX 和 XLSX Workbench。3. 生成文本形式的Excel(.xls或.csv)4. 标准方法输出Excel文件流(用作接口或后台)1. OLE下载内表数据为Excel文件。2. DOI下载内表数据为Excel文件。二、内表导出为Excel文件的实现。原创 2023-03-23 16:54:02 · 697 阅读 · 0 评论 -
CK11N成本滚算增强-限制滚算部分类别物料
一般成本滚算多少成本会计或核价专员使用,有时也会将权限赋予给其他部门,比如产品部或采购部的一些人,但是权限会做一些限制,比如成品类或某些类别不放开,这时可以使用增强进行管控,我们找到了一个隐式增强:程序 SAPLCK2U --大家可以看到可以使用的出口很多,我们用到的是根据物料编码主数据进行判断,因此选择的是这个CK_F_PC_MATERIAL_CHECK ,至于插入增强代码这个相信大家都会,就不描述那么细了。原创 2023-03-20 22:20:12 · 714 阅读 · 0 评论 -
委外采购订单交期修改导致组件BOM变更问题
我们使用修改交期的BAPI是 BAPI_PO_CHANGE ,传入参数其实也就是用了计划行的参数表而已,这个BAPI执行完后会自动更新组件BOM,这个好像是SAP本身的逻辑,也许跟后台MM的配置有关,但是这个配置方面没找到相关的资料,只能从开发方向入手。我们处理的方案是,在更新交期前将组件BOM旧数据先保存到内表里,执行完这个BAPI动作后,再将之前保存的原组件BOM更新回来,因为这个功能只是修改交期,数量、物料是不允许修改的,因为组件BOM的明细原则上是没有变化的。原创 2023-03-19 23:07:46 · 752 阅读 · 0 评论 -
SAP采购订单价格与信息记录价格不匹配
我们的场景是这样的,研发打样物料在OA端发起流程,流程归档时通过集成的方式自动生成SAP的采购申请单,是直接调用RFC 创建的,然后采购在转单时就发现价格老是对不上,跟信息记录里的价格对不上,需要每个物料重新获取更新,增加了他们的工作量,同时也会导致采购价格问题,出现这个问题后刚开始怀疑是价格的配置有问题,但是找来找去都没找到原因(要抓狂了);后来无意中看到申请单上有个评估价格,而且发现采购单上的价格刚好跟这个价格一样,没道理那么巧合,就往这个方面去查........................原创 2021-07-16 11:50:10 · 3814 阅读 · 1 评论 -
ABAP链接外围数据库SQL实战案例
这是一个ABAP 直接读取SQL数据库数据的实例,以此种方式可以将SAP与外围的系统做一些集成,比如生产,SAP本身生产这部分是弱项,管不了那么细,很多车间的数据都是在MES系统,如管理上需要则可以将MES的一些数据自动读取过来,结合SAP本身的业务数据,做一些分析是比较方便的。1、首先在SAP里建立数据库链接:DBCO ,直接增加一条记录,填上数据库的相关信息:IP地址、数据库名、账号SA、密码这些。2、开发程序,设置成自动运行的计划,固定时间自动读取SQL里的数据,保存到SAP自定义表.原创 2020-10-14 08:58:42 · 1036 阅读 · 2 评论 -
SAP 业务常用表的收集
我会将开发过程中用到的一些表记录下来 (慢慢的收集和整理) 表名描述T006A计量单位LFA1供应商主数据T023T物料组描述MCHB批量库存MBEW物料评估TSKM物料税MLAN物料销售视图原创 2011-06-28 18:15:00 · 8442 阅读 · 0 评论 -
SAP ABAP如何将内表的数据导出到EXCEL
将内表的数据导出到EXCELREPORT ZTEST08.DATA: BEGIN OF MY_DATA, MANDT LIKE USR02-MANDT, BNAME LIKE USR02-BNAME, ERDAT LIKE USR02-ERDAT, LTIME LIKE USR02-LTIME,原创 2012-10-24 17:30:11 · 21171 阅读 · 0 评论 -
SAP ABAP 如何读取EXCEL数据到内表
读取EXCEL数据到内表并输出调用函数: ALSM_EXCEL_TO_INTERNAL_TABLE *&---------------------------------------------------------------------**& Report ZCMH0009*&*&------------------------------------------原创 2012-10-24 17:24:31 · 15300 阅读 · 0 评论 -
SAP ABAP将内表数据导出到TXT和从TXT读取到内表
*&---------------------------------------------------------------------**& Report ZCMH0010*&*&---------------------------------------------------------------------**& 将内表数据导出到TXT和从TXT读取到内表*原创 2012-10-24 17:36:54 · 18659 阅读 · 0 评论 -
SAP_常用业务数据表2
表的要求表中使用的字段请尽量参照各模块的SAP字段标准使用习惯; 例:“ZXSLRZX销售组织对应的利润中心”中的销售组织应该使用VKORG、利润中心应该使用PRCTR。根据表的用途,需确定是否属于配置目的、还是业务目的。配置表的建议:需要加入MANDT字段例: “ZQJQD缺件清单”就没有MANDT字段需提供相应的维护视图;例:如ZCHECK_MM01工厂和利原创 2011-08-17 11:46:21 · 29903 阅读 · 2 评论 -
SAP 开发中常用到的BAPI
SAP项目中开发用到的BAPI:MM模块1、 BAPI_MATERIAL_SAVEDATA 创建物料主数据注意参数EXTENSIONIN的使用,可以创建自定义字段例如WA_BAPI_TE_MARA-MATERIAL = ITAB_UP-MATNR.T_EXTENSIONIN-STRUCTURE = 'BAPI_TE_MARA'.T_EXTENSIONIN-VALUEPART转载 2012-09-19 17:28:09 · 7634 阅读 · 0 评论 -
SAP MB51物料凭证清单程序增强增加四个字段
功能需求是:在系统标准功能MB51物料凭证查询的基础上增强四个字段1、供应商描述:根据表MSEG中的供应商LIFNR去GOHEAD-VENDORNAME中取值2、物料组:根据MSEG中的物料编码MATNR去表MARA中取MATKL3、物料组描述:根据物料组MARA-MATKL去取T023T-WGBEZ4、成本中心描述:根据MSEG-KOSTL去取CSKT-LTEXT增强的四原创 2012-05-23 16:46:33 · 15117 阅读 · 4 评论 -
SAP 采购订单抬头屏幕增强
为采购订单增加一个页标签,在其中放入客户自定义字段,1. CMOD增强接口: MM06E005 EXIT_SAPMM06E_006 为子屏幕参数传入出口(抬头)EXIT_SAPMM06E_008 为子屏幕参数传出出口(抬头)EXIT_SAPMM06E_012 为子屏幕参数传入出口(项目)EXIT_SAPMM06E_018 为子屏幕参数传出出口(项目)屏原创 2012-10-15 17:32:49 · 23934 阅读 · 0 评论 -
SAP ABAP子程序SUBMIT调用的方法
编写两个程序 ZTEST06 和 ZTEST07 , 在ZTEST06 里调用ZTEST07 程序。ZTEST06 作用是收集并整理数据,并存放到内存ZTEST07 从内存取到数据,并列印出来ZTEST06程序代码如下:*&---------------------------------------------------------------------**& Repor原创 2012-10-20 15:16:04 · 15159 阅读 · 0 评论 -
SAP 如何将SMW0 上的EXCEL模板下载到本地
前面有说过如何如何将EXCEL 模板上传到SAP里,那么使用代码的话如何实现下载EXCEL模板 *&---------------------------------------------------------------------**& Report ZTEST09*& by cmh*&------------------------------------原创 2012-10-29 14:43:30 · 17554 阅读 · 0 评论 -
SAP SMARTFORMS 打印 CNSAPWIN 不支持页格式
在smartforms里的表格属性虽然定义了要打印的页格式 ZUNIA5 ,但是打印时会提示错误:“ CNSAPWIN 不支持页格式 ZUNIA5 ”。还得在spad中维护设备类型。具体步骤如下:1.新建格式类型 spad---“安全管理”---“设备类型”--“页格式”--“显示”-“新建”--名称-ZUNIA52.把页格式分配给格式类型spad---“安全管理”---“设备原创 2012-11-28 09:58:29 · 15478 阅读 · 1 评论 -
SAP 物料订单创建、下达、报工、收货与投料(ABAP代码)
对主体订单下的某一类物料通过MRP控制者的判断,可以对此类物料进行自动创建生产订单,自动下达,报工、收货,最后对主体订单投料。1、新增加一个MRP控制者:泵送钢管类物料的MRP控制者必须设置为168.2、根据输入条件读取主体订单(剔除CLSD、TECO、DLT)的OBOM清单,挑取MRP控制者为钢管(168)胶管(170)(泵送钢管订单、泵送胶管订单)下达钢管、胶管的生产订单(订单类型为P转载 2013-02-23 10:30:12 · 27241 阅读 · 0 评论 -
C# 连接SAP,并调用RFC函数
C# 连接SAP,并调用RFC函数 (基于Com组件)非原创,见到好文,收藏。C# 连接SAP,并调用RFC函数 (基于Com组件) 收藏 1) 新建工程后,首先添加3个Com组建的引用,分别为 SAPFunctionsOCX,SAPLogonCtrl,SAPTableFactoryCtrl;2) 项目添加引用using SAPFunctionsOCX;转载 2014-05-14 19:52:38 · 6985 阅读 · 1 评论 -
SAP-ABAP程序发送邮件
1. 变量定义:类: CL_BCS – Business Communication Service, 发送邮件主要用到的功能类, 包括创建发送请求, 添加发送内容,添加发送地址, 到最终的发送指令发出.send_request type ref to cl_bcs.类: CL_DOCUMENT_BCS, 用来放置发送的内容.document type ref转载 2014-01-22 17:28:32 · 2949 阅读 · 1 评论 -
SAP 发送邮件例子(内部)
REPORT ZSEND .TABLES: KNA1.* data for send function DATA DOC_DATA LIKE SODOCCHGI1. DATA OBJECT_ID LIKE SOODK. DATA OBJCONT LIKE SOLI OCCURS 10 WITH HEADER LINE. DATA RECEIVER LIKE SO转载 2014-01-22 17:27:06 · 3295 阅读 · 0 评论 -
ABAP中的Table Control编程
SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以实现对多行数据的编辑。简单来说,Table Control是一组屏幕元素在Screen上的重复出现,这就是它与普通屏幕元素的区别。如果我们对一个Table Control定义其内表为itab,工作区域为wa。那么在PBO中,系统将逐一取itab的某行到wa,然后将wa的内容转换成屏幕元素,即Table Con原创 2013-10-23 10:13:55 · 2045 阅读 · 0 评论 -
ABAP 搜索帮助的建立F4IF_INT_TABLE_VALUE_REQUEST
为screen上的输入框增加F4搜查功能假设输入框 G_UMLGO 绑定在变量 G_UMLGO. " 一般输入框 与 全局变量名 起相同 比较方便且可选值在内表 ithp_pline 的字段 LGORT 上. 定义内表:data: begin of ithp_pline OCCURS 0, werks type t001l-werks, lgort type t0原创 2013-09-13 14:51:26 · 3787 阅读 · 0 评论 -
SAP 如何实现跨系统取数 SAP读取ORACLE或者SQL server数据库
如何实现SAP跨系统取数 SAP读取ORACLE或者SQL server数据库创建连接参数公司在实施SAP后,可能会与其他业务系统进行集成。这样,就需要不同系统间进行同步数据,下面介绍SAP如何从其他数据库读取数据。以SQL为例。第一步:创建数据库连接参数,键入DBCO(或使用SM30维护表DBCON的内容),进入数据库连接总览界面。添加一个新的连接参数,输入连接名,DBS是指连接数据原创 2013-07-18 09:31:10 · 14701 阅读 · 2 评论 -
ABAP 常用日期转换函数
日期格式转换的函数1. CONVERSION_EXIT_IDATE_OUTPUT INPUT: 20080203 OUTPUT: 03FEB20082. CONVERT_DATE_TO_EXTERNAL INPUT: 20080203 OUTPUT: 02/03/2008 "Acc转载 2013-05-13 15:22:31 · 8202 阅读 · 0 评论 -
PO RELEASE 采购订单审核(支持多级审核)
这是从别的网站上看到的技术代码,收起来供以后参考。PO RELEASE 采购订单审核(支持多级审核)*&--------------------------------------------------------------**& FUNCTION:ZRFC_MM_ME21N*& Module : Functi转载 2013-04-18 09:48:06 · 7810 阅读 · 0 评论 -
SAP 生产订单工序外协对应的工序报工后,对应的采购订单自动入库
对于工序外协的采购订单,一般不会涉及到库存管理,收货也只是一笔费用,然而对于工序外协的采购订单收货后,一般都需要质检。质检会对合格数量进行确认。我们比较理想的情况就是确认合格数量的时候其对应的采购订单自动入库。基本配置及流程如下:1.定义控制码:用于质检和外协2.该物料维护03的检验类型,下达生产订单自动产生检验批。3.调度员打印工序外协派工单,供应商按照工序外协派工单进行送货4,转载 2013-02-23 10:36:27 · 20476 阅读 · 0 评论 -
SAP ABAP OALV单元格颜色设置
OALV单元格颜色设置效果如下:完整代码:*&---------------------------------------------------------------------**& Report ZTEST04*&*&---------------------------------------------------------------------*原创 2012-10-17 11:53:31 · 21925 阅读 · 0 评论 -
SAP ABAP 加锁和解锁
具体操作步骤:1. 使用TCODE:SE11,选择最后一项[加锁对象],输入对象名称(注意一定要以字母‘E’开头,这是SAP内部规定的,如EZ_FI_CSTM_001)2. 输入名称后,按新增,进入界面后输入要加锁的Table名,及加锁类型(E:专用,累计;S:共享;X:专用,不累计)。保存后,系统会自动产生两个函数: ENQUEUE_EZ_FI_CSTM_001(加锁)和 DEQUE原创 2012-09-28 15:51:45 · 36713 阅读 · 0 评论 -
ABAP FOR ALL ENTRIES IN用法
在ABAP开发中,对于不能使用join的聚集表或者需要使用SELECT 的内表,我们一般使用for all entries in 语句将该表与内表串联,查询出需要的数据,例如: BSEG聚集表为例,如下:SELECT bseg~kunnr bseg~li原创 2011-08-18 16:25:18 · 6476 阅读 · 0 评论 -
ABAP 删除内表中的重复行
要先排序SORT itab BY matnr.DELETE ADJACENT DUPLICATES FROM itab.原创 2011-08-18 16:23:16 · 16298 阅读 · 0 评论 -
ABAP_ALV_例子(采购申请单查询)
将代码直接拷贝就可以运行. *&---------------------------------------------------------------------**& Report ZCMH9*&*&------------------------原创 2011-08-16 17:36:28 · 3320 阅读 · 1 评论 -
ABAP 一些基本用法
1. SORT 排序 ,A B C 是字段, 多字段排序SORT IT_TAB BY A B ASCENDING C DESCENDING. 2. READ TABLE itab WITH KEY = v BINARY SEARCH.也可以 R原创 2011-07-22 09:57:48 · 12459 阅读 · 0 评论 -
ABAP学习笔记--操作字符串2
1. 字符串连接 CONCATENATE dobj1 dobj2 ... INTO result [IN { BYTE | CHARACTER } MODE] [SEPARATED BY sep]. 2.字符串原创 2011-08-11 16:10:26 · 1144 阅读 · 0 评论 -
ABAP学习笔记--处理字符串1
ABAP学习笔记--处理字符串一、移动字段内容1、按给定位置数移动字符串语法:SHIFT [BY PLACES] [].将字段移动个位置,如果省略BY PLACES,则将解释为一个位置;如果是0或负数,则保持不变;如果超过长度,则用空格填充。可为变量转载 2011-08-03 11:10:45 · 1092 阅读 · 0 评论 -
ABAP:SmartForms --盘点表设计
报表要求:(见下表)要求:1、不是套打,表格线也需要输出2、每张报表打印8行记录,不足的空白行也需要输出3、按凭证号打印单据,可以连续打印多张报表。一、创建样式:在创建Form之前,需要创建多种段落和字体样式,供Form中的文字使用。需要设置多种“转载 2011-08-06 11:44:41 · 2068 阅读 · 0 评论 -
ABAP 开发物料接口
开发一个可以供外面程序调用的物料接口 FUNCTION ZRFC_KTK_PP_0001.*"----------------------------------------------------------------------*"*"Local inter原创 2011-09-02 11:55:32 · 2298 阅读 · 0 评论 -
ABAP获取生产订单的状态
传递订单号码,可以返回该订单的状态 REPORT ZCMH2.TABLES : JEST.data: T_STATUS LIKE BSVX-STTXT.DATA: T_OBJNR LIKE JEST-OBJNR.*--- 工单号码T_OB原创 2011-08-03 10:37:22 · 5537 阅读 · 0 评论 -
abap 字符串连接
data: str1(3) type c.data: str2(10) type c.data: str(15) type c. str1 = 'ECN'.str2 = sy-datum .concatenate str1 str2 into str.原创 2011-07-29 17:07:42 · 3689 阅读 · 0 评论 -
(转) SAP中对内表及表的操作
内表的定义:TYPES|DATA itab {TYPE|LIKE} tabkind OF {linetype|lineobj}[WITH key] [INITIAL SIZE n].内表的种类:1. 标准表(STANDARD TABLE).系统为该表的每一行数据生成转载 2011-07-20 08:32:04 · 2635 阅读 · 0 评论 -
ABAP 去掉日期分割符
data: curr_date type d.data: curr_date2(10) type c.curr_date = sy-datum.curr_date2 = '2011-07-12'.TRANSLATE curr_date2 USING '原创 2011-07-29 16:40:48 · 2184 阅读 · 0 评论