随笔分类 -  SAP

SAP & ABAP
有效地查找SAP增强点
摘要:找SAP增强点一直都是SAP开发的重点难点,增强开发的代码一般不会很多,但是需要花费比较多的时间在查找增强点上网上也流传了很多查找SAP增强的方法:1.利用TCODE寻找增强2.利用系统函数寻找3.从程序代码中查找4.针对BADI的增强5.通过SPRO后台配置相关模块的菜单查找这些方法都有一个缺点,就是难以判断这个增强点是否能够满足需求,不知道具体运行时会传入传出些什么数据,都是静态的。接下来和大家分享一种我在开发时常用的一种方法。一般增强开发的需求都是我们在做操作时做一些检查或某些效果,所以我们可以再操作前再命令栏打 /h 然后执行操作进入调试界面。断点->创建断点,输入如下命令,就会 阅读全文
posted @ 2014-03-27 16:05 raychenfj 阅读(1859) 评论(2) 推荐(1) 编辑
抓取报表ALV GRID上的数据
摘要:在项目开发过程中需要从标准报表MB5B中获取数据,以下是本人实例中的相关部分,程序同样适用于获取其他标准报表的数据。 CL_SALV_BS_RUNTIME_INFO=>SET( DISPLAY= ABAP_FALSE METADATA = ABAP_FALSE DATA = ABAP_TRUE ).SUBMIT RM07MLBD "Tcode MB5B WITH WERKS IN S_WERKS "填写筛选屏幕字段 WITH DATUM IN S_BUDAT WITH XSUM = '' WITH PA_SUMFL = 'X' WITH 阅读全文
posted @ 2013-07-16 22:39 raychenfj 阅读(2750) 评论(0) 推荐(0) 编辑
SAP TABLECONTROL 自定义SEARCH HELP
摘要:项目上需要开发一个界面如下的应用程序。这是一个MB1A发料的辅助程序,限制住移动类型和在特定字段写入产品号。这个应用程序的主要功能毫无疑问是通过BAPI实现的。但在TABLECONTROL中需要对填写物料的物料类型进行限制,而SE11中系统的SEARCH HELP是没有这些限制的,所以需要自定义SEARCH HELP。在屏幕的ELEMENT LIST中可以为TABLECONTROL的一些字段指定数据字典中已有的SEARCH HELP。而需要实现自定义SEARCH HELP的字段则在LOGIC FLOW中添加 PROCESS ON VALUE-REQUEST。然后实现相应的MOUDLE。自定义S 阅读全文
posted @ 2013-06-20 23:24 raychenfj 阅读(1913) 评论(0) 推荐(0) 编辑
BAPI和BDC使用小结
摘要:在项目上遇到了要同时用BAPI和BDC更新数据的情况。开发的需求如下:ME22N中修改采购订单中物料条目的净价和每,然后在物料数据页的供应商物料号中记录旧价格和旧每,同时在EAN/UPC中写入'ZSJ'。大部分的更新都可以由BAPI完成,但是EAN/UPC在BAPI中找不到对应的字段,而且客户不愿意改字段。一开始看到ME22N这种多条目的事务代码,觉得BDC录屏没法做,但是其实是可以做的,只是比较麻烦。下面一点点总结分享。 BDC部分:BDC录屏后,得到的结果基本是没法直接用的,我是通过录了很多次屏,然后东拼西凑、修修改改得出来的。录屏的操作流程:其他采购订单->输入采购 阅读全文
posted @ 2013-06-07 19:54 raychenfj 阅读(5375) 评论(0) 推荐(0) 编辑
我如何优化ABAP ALV报表
摘要:优化ALV报表,最主要就是优化取数逻辑和数据库查询。因为几乎在所有的程序中都会用到数据库查询,所以这篇文章的内容也不仅局限于SAP、ABAP程序,虽然ABAP有其特殊之处。优化的时候我遵从以下几个原则:1.把数据库连接视为一种极其珍贵的资源,大量的数据库操作会增加网络负载,增加程序的运行、等待时间,降低程序性能。因此有以下的注意事项:(1)因此数据库操作能少则少,严禁在循环中写SQL语句对数据库进行操作;(2)应该将数据读取到内存中,对内存中的数据进行操作,如排序和运算等,而不是直接对数据库表进行;2.多表连接查询时,连接的表的数量不超过2-3张。当表的数量过多、数据量大时,会极大程度影响性能 阅读全文
posted @ 2013-05-29 11:52 raychenfj 阅读(2457) 评论(2) 推荐(1) 编辑
ALV报表模板
摘要:最近在项目上不断的写报表,自己总结一套模板、框架,下载下来,然后每次新建报表上传,再实现一些方法,减少了一些不必要的重复体力劳动。如何使用:实现GET_DATA,完成取数逻辑;在INIT_FIELDCAT中定义了一个宏SET_FIELDCAT,用于设置表头,接受两个参数,第一个为字段名,第二个为表头显示的名字;需要自建一个名为Z_ALV_STATUS的GUI STATUS。*&---------------------------------------------------------------------**& Report ZALV_TEMPLATE*&*&a 阅读全文
posted @ 2013-05-13 20:14 raychenfj 阅读(703) 评论(0) 推荐(0) 编辑
SmartForms开发小结
摘要:一、开发需求:1.A4横打,每20行换页,不足20行补空行,每页均显示表头表尾2.物料描述需要读取长文本3.需要调整字体大小和对齐方式二、打印样张:三、碰到的问题和一些解决办法1.每20页换行,采用了在SAMRTFORM中设置全局变量的方法,每次自增1,和20求余为0则换页每次G_NUM自增1,模G_SIZE=20的结果放在G_NEWPAGE中,G_NEWPAGE为0就换页。2.不足20行补空行,则是在ALV程序中网内表中插入空白工作区3.SMARTFORMS中读取长文本在建的文本元素中可以设置类型,有四种:文本元素,默认,最普通的,自己手动输入内容文本模块,在smartforms进来的地方有 阅读全文
posted @ 2013-05-08 14:45 raychenfj 阅读(2446) 评论(0) 推荐(1) 编辑
SAP调用第三方WebService
摘要:项目中,可能会碰到客户提出需求,需要SAP、ABAP去访问已有WebService。本文以一个中国股票行情数据 WEB 服务为例,实现SAP调用第三方WebService一、常用WebService一览常用的WebService有很多,这里就不一一列举了,查看链接:常用WebService一览二、SAP配置客户端代理(Client Proxies)1.在SE80中新建一个Package,然后在包名上右击Create->Enterprise Service/Web Service->Proxy Object2.根据向导一步一步创建。常用的是URL/HTTP Destination在U 阅读全文
posted @ 2013-05-03 17:26 raychenfj 阅读(4092) 评论(0) 推荐(0) 编辑