
ABAP
无语_843
从事10年SAP项目的开发工作,熟练使用SAP ERP系统增强及接口技术。擅长性能分析及优化
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ABAP AS文件目录动态创建
在ABAP AS上创建文件夹原创 2024-05-28 14:26:32 · 331 阅读 · 0 评论 -
SAP程序性能分析 --- 进程快照法
SAP进程快照法分析程序性能原创 2023-02-02 11:10:23 · 1065 阅读 · 0 评论 -
SAP 请求传输日志
SAP请求传输日志原创 2022-12-26 10:17:22 · 2115 阅读 · 0 评论 -
SAP 物料与批次特征值转化为表存储
SAP的物料余批次特征值在做SQL查询时比较麻烦,将其特征字段转化为数据库表字段后再进行查询就方便多了。 在BTE:4002中实现将特征值同步到自定义表的Code逻辑,如下Code所示:FUNCTION zfm_bte_interface_00004002.*"----------------------------------------------------------------------*"*"本地接口:*" IMPORTING*" RE...原创 2022-02-09 17:41:26 · 1616 阅读 · 0 评论 -
用Table Function 实现单一成本中心组查询下级所有层级的利润中心
首先,我们在ADT中创建Table Funtion:ZTF_KOSTL_WITH_KHINR。如下所示:@EndUserText.label: '单一成本中心组在下所有层级成本中心'define table function ZTF_KOSTL_WITH_KHINRwith parameters @Environment.systemField: #CLIENT iv_mandt : abap.clnt, iv_kokrs : kokrs, iv_khi...原创 2021-05-26 09:47:20 · 351 阅读 · 0 评论 -
利润Table Function实现利润中心组查询下级所有层级的利润中心
通常我们查询某一利润中心组下的所有层级的利润中心,需要先获取当前利润中心组的下的所有层级的利润中心组,然后再根据所有的利润中心组去查询。这是个通用的功能,有经验的顾问就会将此段逻辑封装成函数,以便于公用。但是具体的需求会有利润中心的其他过滤条件,就需要针对函数的结果再进行过滤(再次和数据库进行交互)。在SAP版本7.40 SP05之后,增加了Table Function的功能。Table Funtion的结果可以当做表使用,与数据库表进行Join。下边我们就用Table Function来实现...原创 2021-05-25 14:55:17 · 847 阅读 · 1 评论 -
BADI:ME_PROCESS_PO_CUST中CHECK方法的消息处理
SAP系统的BADI:ME_PROCESS_PO_CUST中的CHECK方法用来检查PO数据的有效性,对于不合规的数据,需要Message提醒用户,系统在Include:MM_MESSAGES_MAC中 提供了一系列的 宏,用来处理message。1、mmpur_business_obj 用来指定后续消息的业务对象(抬头,行,计划行,科目分配等)2、mmpur_message_forced 消息收集,统一显示例如如下Code:* 设置当前消息的主体为抬头 mmpur_busines.原创 2020-11-12 16:14:50 · 1898 阅读 · 0 评论 -
资产原值取数 逻辑
1、资产总的原值PS:ANLC中的以前年和本年并非是资产过账类型的以前年和本年,而是当前行ANLC-GJAHR年 年结时以前年的累计,和年结后本年的过账(与资产过账类型的以前年和本年无关)ANLC-KANSW(以前年) + ANLC-ANSWL(本年)2、本年原值的取数逻辑 DATA:BEGIN OF ls_anep, " 资产本年原值 bukrs TYPE...原创 2019-11-12 15:33:45 · 1932 阅读 · 0 评论 -
BAPI:BAPI_ACC_DOCUMENT_POST创建预制凭证
在项目上遇到需要BAPI创建预制凭证的需求,但是没有这样的BAPI,而且BAPI也没有这样的控制参数。经过跟踪发下BAPI:BAPI_ACC_DOCUMENT_POST中的抬头数据it_acchd中的字段STATUS_NEW改为2(未测试的)时,可以创建为预制凭证。所以在此BAPI的增强中修改这个字段值就可以了。原创 2015-11-19 10:05:38 · 1620 阅读 · 0 评论 -
ABAP 工具栏按钮可见但不可点击
ABAP应用工具栏上的按钮需要不活动(不可点击但能显示,并非隐藏掉),如同标准工具栏上的按钮一样。需要设置应用工具栏的属性:如下图所示:第一步:点击应用工具栏的红绿灯第二步,设置工应用具栏的属性为全部显示第三步,确认应用工具栏的红绿灯变为红色,并且在SET PF_STATUS时排除工具栏按钮执行结果图如下:原创 2015-12-06 11:15:03 · 2865 阅读 · 1 评论 -
SAP BDC批导返利协议(参考模板协议 复制——不同客户)
*&---------------------------------------------------------------------**& Report ZSDS5004*& T-Code: ZSD127*& Porgram Type: Program*& Description: 促销案导入*& DS Number: ERP-DS-SD-0113*&-----原创 2016-09-06 14:02:59 · 2038 阅读 · 0 评论 -
ABAP增强中存在E类型的消息
我们常常在做增强的时候,需要在 抛出E类型的MESSAGE来中断程序流程,然后E类型的消息一旦提示,我们怎么回车都不能回到正常可编辑的界面。现在我们以SO的增强为例,向大家讲解如何解决此类问题: 1、在MV45AFZZ的userexit_save_document_prepare这个例程中增强如下代码:2、VA01做SO,然后保存界面如下:3、出现此情况,一般用户都习惯回车原创 2016-09-13 10:22:25 · 7421 阅读 · 0 评论 -
返利协议批导(BDC+BAPI 参考模板协议复制到不同客户)
*&---------------------------------------------------------------------**& Report ZSDS5004*& T-Code: ZSD127*& Porgram Type: Program*& Description: 促销案导入*& DS Number: ERP-DS-SD-0113*&-----------原创 2016-09-13 08:53:14 · 1740 阅读 · 0 评论 -
参考PR创建采购合同(ME31K) BDC模式
SAP目前没有BAPI 创建服务类采购合同,所以采用BDC创建。以下是参考PR,以BDC的模式创建有服务行的采购合同(可包含物资行) FUNCTION zfun1039.*"----------------------------------------------------------------------*"*"局部接口:*" IMPORTING*" REFERE原创 2016-11-10 11:06:38 · 3156 阅读 · 0 评论 -
SAP 请求传输结果报表
项目中请求比较多,哪些请求传了那个系统那个系统没有传输,没有一个直观的功能体现出来,所以做了个报表,结果如下图所示报表代码:*&---------------------------------------------------------------------**& Report ZDEMO_TRLOG_REPORT*&*&----------------------原创 2017-07-10 12:04:26 · 4374 阅读 · 0 评论 -
ABAP长文本控件的两个例程
ABAP长文本控件的两个例程,一个是数据显示在文本控件上的,一个是从控件上读取内容的constants:c_line_length type i value 4000.*&---------------------------------------------------------------------**& Form FRM_DISPLAY_LONGTEXT*&-----原创 2017-07-12 15:12:22 · 1862 阅读 · 0 评论 -
SAP中限制登录
控制位置:增强函数EXIT_SAPLSUSF_001中控制思路:表USR41中的终端字段TERMINAL记录了登录SAP的IP地址及名称(rounter/vpn登录则记录的是这两种方式进入内网的IP地址)*&---------------------------------------------------------------------**& 包含原创 2017-08-11 09:34:46 · 2167 阅读 · 1 评论 -
ABAP中OO的方式实现金额大写转化
ABAP中OO的方式实现金额大写转化,见如下代码class zcl_abap_util_temp definition public final create public . public section. constants c_1 type c value '壹' ##NO_TEXT. constants c_2 type c va原创 2017-08-11 09:43:17 · 589 阅读 · 1 评论 -
SAP连接FTP服务器
SAP系统中连接FTP服务器需要配置表SAPFTP_SERVERS,在这个表中添加ftp服务器及端口,然后使用如下代码连接ftp服务器 constants cons_key type i value 26101957. data:lv_pwd(64) type c, lv_handle type i, lv_l原创 2017-08-22 16:48:52 · 7305 阅读 · 1 评论 -
Coding Block字段长度更改后BSEG和ACDOCA数据不一致
问题一:项目中更改了coding block 字段长度。发现BAPI生成的凭证 BSEG表的字段(更改长度的coding block字段)比实际的数据位数少,ACDOCA中的数据长度和实际的一样。 原因:是因为 include:LFACIGEN中的数据结构P_ACC的字段长度是生成固定的,如下图 解决方案:用SAPFACCG程序重新生成...原创 2019-04-16 17:45:26 · 5169 阅读 · 1 评论 -
ABAP中的 CDS Table Function 与 AMDP的比较
ABAP中的CDS Table Function的最终实现也是在AMDP类中实现的,那么Talbe Function和普通的AMDP有什么区别呢1、使用方法:CDS Table Function的使用方法 请参见CDS Table Function Demo 普通ADMP的使用方法 请参见2、不同之处ADMP方法的定义和实现的不同 普通的AMDP方法在定义的时候需要...原创 2019-05-10 10:22:22 · 2427 阅读 · 0 评论 -
ABAP CDS Table Function
今天做一个ABAP CDS 中Table Function的Demo1、定义Table Function@EndUserText.label: 'Demo tab function'define table function ZDEMO_TAB_FUNC with parameters// @Environment.systemField: #CLIENT// iv...原创 2019-05-08 12:00:16 · 2194 阅读 · 0 评论 -
在Update FM中 主键冲突
最近项目上发现 BAPI更新WBS的审批状态时 DUMP,如下图DUMP 位置如下图在Insert 之前有一个Delete 会删除数据。本着探索精神就做了个小程序进行测试REPORT ztest_delete_insert.TABLES z00_demo_001.*SELECT SINGLE * FROM z00_demo_001.IF sy-subrc EQ...原创 2019-06-05 17:42:23 · 403 阅读 · 0 评论 -
外币评估 自由选择条件 增加字段
在项目上,需要对外币评估的选择条件增加利润中心过滤,经过一番研究,只需要在以下对应的结构中附加字段即可:PS: 在开发时,扩展了结构,需要使用命令:/$sync 清除缓存。再传输到目标系统不需要。我们项目是需要在供应商行、客户行、未清总账行上增加利润中心字段,所以扩展了BSID_FS、BSIK_FS、FAGL_FC_VAL_BSIS_OI_FS,增加了利润中心字段。效果如下图:...原创 2019-10-11 11:44:28 · 700 阅读 · 0 评论 -
sap CR导入请求提示文件打不开
我在传输ce时遇见了一个不知所措的问题 CR导入请求队列的时候系统提示文件不存在,多次尝试各种办法,都未能将其导入。这可急坏了 着急的人---不一定是我,把我逼急了,想了一招----->把我之前所有的CR连同这个新的CR一同导入请求队列,奇迹出现了,系统没有提示“原创 2011-09-18 19:06:16 · 2578 阅读 · 0 评论 -
给sap的选择屏幕上的选择字段增加选项
使用函数SELECT_OPTIONS_RESTRICT给选择屏幕上的选择字段增加选项,效果如下图所示(程序:RSVTPROT):原创 2013-04-08 10:25:11 · 2538 阅读 · 0 评论 -
没有屏幕 & & 的批输入数据
没有屏幕 & & 的批输入数据,这个问题只是针对 后台批输入的时候出现。系统分析原因如下: 事务发出一个批输入会话中不会等待的屏幕,因此不必为其提供数据。可能原因:1. 批输入会话创建不正确。屏幕顺序记录不正确。2. 批工作流程后台处理中的事务运行与对话(需要 SY-BATCH,并且更改屏幕顺序)中的不同。3. 事务正在进行用户特定的自原创 2012-03-06 08:24:35 · 10252 阅读 · 0 评论 -
由于汇总不能马上接受取消
服务类的采购订单 在收获的时候 丢失表条目,系统提示由于汇总不能马上接受取消。 问题原因分析如下的图片所示:问题解决办法执行下面文档内的程序即可:REPORT ZMO_EKBEUPDATE MESSAGE-ID SE.TABLES: EKKO, EKPO, EKKN, ESSR,原创 2012-03-06 08:34:02 · 1295 阅读 · 0 评论 -
更新屏幕值的函数
有心朋友可能遇到这么一种情况,在不都PBO、PAI的时候还要更新屏幕上的值。之前有同事遇到过这样的问题,还问我了,我当时没在意,后来他就给我说了有个函数个可以做到这一点,我就记着有这么一回事。就过去了。今天没事在这里研究BTE,在系统过关BTE的一个函数中发现了该函数,用法如下:DATA: DYNPFIELDS, EINTRAGFELDER, RELFIE...原创 2011-10-05 19:56:31 · 1598 阅读 · 0 评论 -
sap 根据权限对象查询所用用户、参数文件、角色等的事务代码
sap 根据权限对象查询所用用户、参数文件、角色等的事务代码:SUIM如果没有这个事务代码权限的话,可以使用 RSUSRSUIM 这个程序 通过调试更改权限检查函数返回值来使用该功能 还有其他事务代码:AUTH (区域菜单不是事务码) 、S_BCE_68001400、原创 2011-09-19 20:13:31 · 20325 阅读 · 0 评论 -
sap可配置的系统提示信息类型
一、 sap系统的提示方式 sap系统的提示方式有两种: 1. MESSAGE I002(ZFI) with ‘文本1’ ‘文本2’ . 2. MESSAGE ID ' ZFI ' TYPE 'I' NUMBER '002' with ‘文翻译 2011-10-04 22:27:39 · 16743 阅读 · 0 评论 -
修改 SAP登陆界面旁边的显示内容
事务码SE61进入文档类别选择“常规文本”名称使用:ZLOGIN_SCREEN_INFO(这个名字是系统默认的名字不对是不行的)创建或者修改其内容,修改完毕后保存激活进入登陆界面查看下效果。原创 2011-08-22 16:00:55 · 1245 阅读 · 0 评论 -
为使用SM30创建权限组
se54 创建权限组 添加新增加的权限组赋值给所需表使用se16->TDDAt 查看权限组所属表在SAP中,经常需要自定义数据库表。而且可能需要维护该数据库的内容。定义了维护表视图后,可以通过SM30,对表内容进行维护,但是,因SM30标准事务代码维护权限过大,不便于原创 2011-08-11 14:20:16 · 5973 阅读 · 0 评论 -
选择屏幕添加应用栏按钮
tables: SSCRFIELDS.“引入系统工具栏空间SELECTION-SCREEN:FUNCTION KEY 1. "激活按钮*生成按钮INITIALIZATION.DATA: ICON_NAME TYPE ICONNAME, B原创 2011-08-22 15:27:47 · 428 阅读 · 0 评论 -
ABAP开发所用到的函数
1. 读取SAP系统的对象状态的函数CALL FUNCTION 'STATUS_TEXT_EDIT' EXPORTING FLG_USER_STAT = ‘X’ ”用户状态表示原创 2011-08-22 15:54:25 · 816 阅读 · 0 评论 -
SAP根据事务参数查找事务
在sap中,事务数据是存储在TSTC表里的,但是有一些参数是配置在TSTCP这个表里的,事务文本存储在TSTCT表中。 事务有报表事务、对话事务、OO事务、变量事务和参数事务。 1 对于报表事务和对话事务可以在表可以在TSTC表里查询,查询条件输入程序名和和屏幕号查原创 2011-09-03 11:14:21 · 905 阅读 · 0 评论 -
ABAP 日期 时间 函数
一 、 日期校验 DATE_CHECK_PLAUSIBILITY 日期有效性检查 TIME_CHECK_PLAUSIBILITY 判断是不是时间 二 、 日期计算 RP_CALC_DATE_IN_INTERVAL 年月日加减 SD_DATETIME_DIFFERENCE原创 2011-11-16 21:58:55 · 4233 阅读 · 0 评论 -
BTE 处理取消 单一处理限制(客户>伙伴>系统限制)
SAP BTE处理类型的增强中有这么一个限制:系统默认一个处理只有一个函数起作用,即使多个配置也不行。如下图所示:这个字段46c的值是: ECC 值的描述是: 但是系统的配置 bf05没有对这个字段控制: 可以做个维护试图将这个值维护下:原创 2011-11-23 11:16:00 · 705 阅读 · 0 评论 -
BTE 查找
SAP的BTE分为处理和消息,分别使用PC_FUNCTION_FIND、BF_FUNCTIONS_FIND这两个函数查找系统中关联的配置FM。要找到合适的bte,就在这两个函数中设断点,然后进行前台操作在适当的地方注意断点,分别查看I_PROCS、 I_EVENT这两个变量的值。如果同时有多个断点进入,可根据具体的需求和 bte函数的参数确定使用哪个。原创 2011-11-23 14:45:08 · 1196 阅读 · 0 评论 -
SMW0 HTML模版的形式上传文件 维护MIME类型
使用SMW0事务代码为webrfc上传模版, 若是已HTML模版形式上传的话,所上传的文件类型必须在MIMETYPES表中有对应的MIMETYPES,如果没有对应的,则应该维护进去,否则不允许以HTML模版形式上传。 维护MIME类型的事务代码是:SKPR12.对应的数据库值表是MIMETYPES. 常见的MIME类型 超文本标记语言文本 .html text原创 2011-12-29 15:11:31 · 2357 阅读 · 0 评论