ABAP
文章平均质量分 66
donkey2004112103
这个作者很懒,什么都没留下…
展开
-
abap--关于集(set)的读取(如读取成本中心组下的所有成本中心)
看到jack wu转载了一篇文章https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/5541。关于集的东西,正好项目上要写一个维护成本中心组的程序,研究了一下。相关TCODE函数已经有介绍,不过它并没有介绍sets和成本中心组的区别,我发现也有其他函数可以读取成本中心组。 1. sets和成本中心组的区别? 通过前台创建的成本中心组是可以原创 2009-12-19 15:54:00 · 3514 阅读 · 1 评论 -
smartforms和function中接口定义
之前做的smartforms和function中如果有参数定义都是在系统中定义structure,其实不必,可以定义type-pools来定义类型即可。 对于function中只要将定义好的type pool放进function group中的top中,smartforms只要放进全局定义里即可,免得每次定义类型相当麻烦。原创 2009-09-01 14:09:00 · 891 阅读 · 0 评论 -
读取订单长文本
生产订单,销售订单都有长文本信息,并没有存进相应的表里而是要通过函数进行读取和写入。其id号和name等信息保存到stxl和stxh表中。以下英文部分摘自:https://wiki.sdn.sap.com/wiki/display/Snippets/How+to+save+and+retreive+Text+objects。 ext objects are the container for c原创 2009-09-01 11:17:00 · 1797 阅读 · 0 评论 -
输入框函数POPUP_GET_VALUES
abap标准的有输入框函数十分好用,用来和用户进行交互,如果想要在输入框上写上文本信息,只需要将那个输入框设置为不可输入,再把信息写上去。如图: 此函数使用十分方便。 DATA: l_returncode TYPE c. DATA: lt_sval TYPE STANDARD TABLE OF sval INITIAL SIZE 0, ls_sval LIKE LI原创 2009-06-22 23:31:00 · 2245 阅读 · 0 评论 -
abap多标签页实现(tabstrip)
如图: 可以通过画屏幕即call screen或者纯代码实现。以下代码为纯代码实现方式 data flag(1) type c. * SUBSCREEN 1 selection-screen begin of screen 100 as subscreen. selection-screen begin of block b1 with frame. parameter原创 2009-08-24 14:55:00 · 6635 阅读 · 0 评论 -
小总结
记点小东西。 1.给选择屏幕区间赋值 调用某个程序时,如果不是区间可以使用:SET PARAMETER ID: ‘XXX’ FIELD 22.之类的,但是如果要给区间赋值了?使用下面的即可。 SUBMIT PP_ORDER_PROGRESS VIA SELECTION-SCREEN AND RETURN WITH r_kdauf IN s_vbeln. PP_ORDER_PRO原创 2009-08-19 22:09:00 · 2285 阅读 · 0 评论 -
abap little tips
1.function中调用函数 写在function中的form调用觉得sap设计的不好,如果form里的参数是内表,一直没发现怎样声明变量类型比较好,如果在program中我用like,function中一般用type any table,或者再form中在声明一个变量类型为内表,在使用like去用它。如下: DATA lt_zpp_002 LIKE STANDARD TABLE OF zp原创 2009-08-17 23:11:00 · 637 阅读 · 0 评论 -
ALV显示OO实现
ALV用OO方式实现,似乎没有function好用,但是可以再一个屏幕上显示两个ALV。代码例子如下: 全局数据: DATA : obj_wcl_container TYPE REF TO cl_gui_custom_container, "控制容器类 lt_f4 TYPE lvc_t_f4, ls_f4 TYPE lvc_s_原创 2009-06-05 15:43:00 · 8137 阅读 · 1 评论 -
高质量代码
最近做运维看到前人写的代码,实在是…总结下,就算是简单的abap程序也要保证以下原则,否则后人维护起来多麻烦。其实思想都是一样,就是高内聚,地耦合。最好做到如下: 1.变量命名统一 命名规则不统一看起来十分费力,但是abap没有一本像《高质量c/c++编程指南》的书,怎样命名比较好,没有定论。我就不写我的规则了,但是一旦使用一个规则就要坚持使用。 2.少用全局变量 是用全局变量是很方便,写原创 2009-08-03 22:51:00 · 802 阅读 · 1 评论 -
函数调用alv方式总结
如有转载请注明出处:http://blog.csdn.net/donkey2004112103/archive/2009/05/17/4193870.aspx 小总结一下函数方法调用alv的过程。其实用函数调用alv非常简单,只需要一个REUSE_ALV_GRID_DISPLAY函数即可(或者list的方式),但是如果要做的复杂的话也可以非常复杂,如我之前的加上异常,单选框,或者加上双击命令,加原创 2009-05-17 00:04:00 · 3027 阅读 · 0 评论 -
关于ABAP测试
abaper写程序通常都是自己写自己测试,测完之后再让业务顾问测试,业务顾问测完再让用户测试。后面的测试步骤是没有问题的,但是自己写程序自己测试,我觉得不是一个好的方法。我觉得如果项目上有两个或者多个abap的时候,可以每个人分别测试对方的程序,写测试用例和报告。关于这方面的优点我觉得如下: 1.发现错误更多 如果自己写程序自己测试,测试的思路都是一样的,比较难发现自己的错误。如果又其它同组的原创 2009-05-10 22:47:00 · 1339 阅读 · 0 评论 -
abap屏幕和菜单管理
abap屏幕和菜单不仅仅是在程序中双击进去修改,还有专门的TCODE,在里面编辑,删除更方便。 如图: 之所以会注意到这个,因为同事想要在程序运行的初始界面上添加一个按钮,直接使用SET PF-STATUS ‘XXX’来创建一个菜单,并通过adjust template,如图: 加载了一个标准的菜单,但是那些标准按钮却不起作用。比如F3 back,那是因为在初始屏幕必须要把原创 2009-10-25 20:17:00 · 1476 阅读 · 0 评论 -
销售需求和计划行(表vbbe和vbep)
做完销售订单后,做完ATP检查,计划行会有一个数量,这个数字同时会存在销售需求和计划行表,也是看配置了,如果不产生需求就不存进去。 做了一张销售订单:1000146 在vbbe(sales requirements)中显示为: OMENG 3 MRP 申请传输帐面库存单位的未清数量 VMENG 0 在SKU中用于可能性检查的确认数量 在vbep(sales schedule lines)原创 2009-11-05 09:37:00 · 14805 阅读 · 0 评论 -
smartforms不显示前导0
之前都是smartforms显示前导0,但是不想让它显示。昨天碰到一个非常有意思的状况,想让编码显示前导0确没有显示了!下面是解决过程: 字段类型:char8 症状: 无论前面000333是几个0都不显示! 尝试方法: 1. unpack xx to xx。 补上前导0,debug中看到确实也补上了前导0,但是没用。 2. CONVERSION_EXIT_ALPHA原创 2009-11-07 14:40:00 · 3840 阅读 · 0 评论 -
视图聚集view cluster
系统标准有很多view cluster的运用,比如TCODE:AOLK,OKKP。view cluster其实就是几个view的集合,好比function 和function group。创建的TCODE: SE54,查看是SM34。具体的步骤没没什么意思,主要是view cluster可以方便的维护带有层级关系的视图。具体的细节可以查看help文档http://help.sap.com/saph原创 2009-12-12 13:21:00 · 2152 阅读 · 0 评论 -
创建透明表时的细节
自荐表创建过很多,其实很多细节也都不清楚,做了一些东西没有思考为什么。前两天同事问了一个问题,就把我问倒。创建一个新表时technical setting里面有个size category有什么用?后来上help查了下,又把其他细节看了下。 1. size category When you create a table, the system reserves initial space (原创 2009-12-12 14:22:00 · 901 阅读 · 0 评论 -
SAP TABSTRIP和子屏幕增强
如有转载请注明出处:http://blog.csdn.net/donkey2004112103/archive/2009/12/09/4973183.aspx 很多标准程序都使用了tabstrip即多标签页,每个标签页都有子屏幕。tabstrip有两种模式: 1. paging in the SAPGUI 有标准示例程序DEMO_DYNPRO_TABSTRIP_LOCAL。这种模式下所有的t原创 2009-12-09 17:38:00 · 6121 阅读 · 0 评论 -
订单追溯程序
这个程序怎么说了,正常的项目上绝对不会出现的。明明是按库存生产却要做一个排产的报表,把订单一一追溯,做成按单生产的效果。起初对PP完全不懂,做完这个程序,也了解了那么一点。不过此程序也还在测试中,问题一堆,是极为浓缩版的排产。 1. 报表功能 说是报表其实已经超越了报表的范围,可以将每一个销售订单或者生产订单产生的需求列出来,占用了多少可用可用库存,要计划生产多少。计划交货的日期等等。如果生产原创 2009-12-05 20:48:00 · 2158 阅读 · 2 评论 -
屏幕增强
如有转载请注明出处:http://blog.csdn.net/donkey2004112103/archive/2009/12/06/4952544.aspx SAP设计的东西挺好的,可以让我们自己做平面增强,菜单增强,嵌入自己写的代码,而且对它原有的东西又没有影响。最近做了两个子屏幕的增强,总结下。 1. 什么是子屏幕 SAP中有标准的例子程序DEMO_DYNPRO_SUBSCREENS,原创 2009-12-06 19:56:00 · 3895 阅读 · 2 评论 -
WBS计划实际存储(COSP,COSS)
cosp和coss都是聚合表同FAGLFLEXT表,不过聚合的是CO的东西,按照成本中心成本要素去聚合。用F-02做了一个CO相关的凭证,COSP是外部相关的成本总计。做完了凭证后, 通过关系浏览器就可以看到相关的CO凭证。 1. 货币值 COSP中记录的字段有3个,WTGXX,WKGXX,WOGXX,不过WKGXX是以成本控制范围控制的货币,如果有汇率转换,WKGXX就是转换后的货币原创 2009-12-04 15:09:00 · 5994 阅读 · 0 评论 -
小小记录
1. 如何让alv中控制小数位了? slis_fieldcat_alv类型中的decimals_out字段可以控制小数位! 2. 保存更改记录 如图: 如何能更改布局之后又可以保存了,调用函数时: call function REUSE_ALV_GRID_DISPLAY exporting I_SAVE = X I_SAV原创 2009-12-01 21:58:00 · 1267 阅读 · 0 评论 -
财务报表版本
系统定义了一套会计科目,但是出总账分类账的时候要用到另外一套财务报表版本,如下: 这个可以通过标准程序RFGSBSTR输入版本号即可得到这个关系,但是程序如何做这样的转换了?有两个函数非常好用FI_IMPORT_BALANCE_SHEET_TEXT 和FI_IMPORT_BALANCE_SHEET_POS 一个读文本一个保存二者之间的关系。我写了一个仅限于获取一级科目的函数,如下:原创 2009-11-22 14:00:00 · 3179 阅读 · 2 评论 -
abap性能调优
之前写的程序不管怎样都会有一个结果,但是昨天写的一个PP订单排产的程序,跑了一个半小时之后出现Runtime Errors TSV_TNEW_BLOCKS_NO_ROLL_MEMORY。 Short text No roll storage space of length 1814536 available for internal storage. 关于什原创 2009-11-12 10:43:00 · 2839 阅读 · 0 评论 -
读取生产订单状态
生产订单状态之前以为没存表里,其实还是有存。表为:JEST,字段OBJNR为OR+订单号,STAT即为订单状态。但是STAT的都是I打头的状态,通过CO03看生产订单状态都是如下: 这需要一个转换,TJ02,和它的文本表保存了这个对应关系,由此即可取出生产订单状态。 不过也有函数代劳:STATUS_READ。输入参数OBJNR也是OR+订单号,ONLY_ACTIVE即只取出激活的状态。读原创 2009-11-14 19:01:00 · 3183 阅读 · 0 评论 -
alv细节
如有转载请注明出处:http://blog.csdn.net/donkey2004112103/archive/2009/05/10/4165851.aspx 1.alv中显示红绿灯 alv中显示红绿灯,可以非常直观的告诉客户那些项目时有问题的,哪些没有问题。图如下: 灯共有三种状态,红灯,黄灯,绿灯,此示例程序在sap中有标准程序示例bcalv_grid_04,在packa原创 2009-05-10 18:28:00 · 3215 阅读 · 2 评论 -
sap权限控制
如有转载请注明出处:http://blog.csdn.net/donkey2004112103/archive/2009/05/06/4156065.aspx今天终于了解了sap如何从技术的角度去实现权限控制,我觉得权限控制是这样实现的,首先想想为什么不同的用户可以有不同的权限了?因为有角色的概念,不同的用户分配了不同的的权限,所以有不同的权限。而角色由参数文件(profile )组成原创 2009-05-06 22:12:00 · 10393 阅读 · 0 评论 -
创建TCODE维护表视图
之前以为TCODE通常只是为一个程序创建,其实里面还可以有一些参数。下面以维护一个表视图为例。视图已经创建好。 1.初始界面 输入TCODE: SE93。点击新建,输入描述信息,注意有事务一栏,输入维护视图的TCODE:SM30。 2.起始屏幕 将跳过初始屏幕的复选框选中,如图: 如果不选中跳过起始屏幕那么就只会进入SM30界面,不能进入直接要维护的视图。这样还不如不新建一个TCO原创 2009-04-30 17:41:00 · 2440 阅读 · 0 评论 -
abap开发快捷键问题
不知道从什么时候起我发现我对代码行注释的时候,可以用ctrl+,但是如果消除注释不能用ctrl+.!今天同事提醒我切换到英文输入界面才可以用,但是我用的是shfit中英文切换啊,切换到英文仍然不行,但是使用ctrl+.的时候搜狗下面的小图标显示的是中英文标点切换,终于发现问题了。两个应用程序用的是同一个快捷键,之前就没怎么研究,因为消除注释的时候还可以要么手动要么使用替换。现在终于很爽了。解决方案原创 2008-11-16 12:38:00 · 3660 阅读 · 2 评论 -
abap消息的使用
之前写程序一直对消息提示和消息类没怎么在意,今天好好复习了下。总结下用法。个人觉得主要有两种: 1.不用消息类的 用法 MESSAGE fdfkl TYPE I.使用还是非常简单的, 2.使用消息类 可以使用se91创造新的消息类,调用的方法如下: MESSAGE w000(Z_EKIN_MESAGE) WITH fdsf. w是类型,Z_EKIN_MESAGE是类名。00原创 2008-11-05 22:38:00 · 2950 阅读 · 0 评论 -
获得本月最后一天
获得本月最后一天在abap里还是非常方便的,大概分的话有两种方法,一是自己算,而是调用系统函数。两个我都分别演示下。1.自己运算date+6(2) = 1. date+4(2) = date+4(2) + 1. date = date - 1.这个自己写的有个缺陷,如果为12月的话月份加一全部都变为0.所以还得添加判断的情况,修改后如下:date+6(2) = 1. IF原创 2008-11-05 22:22:00 · 1066 阅读 · 0 评论 -
abap中字符奇怪问题
今天碰到一个优点奇怪的字符串的问题,看看下面的代码吧: DATA: ch3(3) TYPE c, ch2(2) TYPE c. ch2 = 1. ch3 = 2. IF ch3 eq 2. WRITE:/ dd. ENDIF. IF ch2 eq 1. WRITE原创 2008-11-05 17:18:00 · 641 阅读 · 1 评论 -
WS_FILENAME_GET函数
介绍下WS_FILENAME_GET函数的用法,给个例子。它的作用是按F4的时候,打开一个对话框选择了相应的文件后得到文件名并显示在选择屏幕上。我用这个函数就是将报表输出到execl的时候用到。代码如下: SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFF原创 2008-10-30 15:54:00 · 6793 阅读 · 1 评论 -
屏幕编程
今天关于报表的需求说仍不确定,下午就又看了下屏幕编程的程序。总结如下,先看个程序: 1.PBO里修改屏幕属性 PARAMETERS: TEST1(10) MODIF ID SC1, TEST2(10) MODIF ID SC2, TEST3(10) MODIF ID SC1, TEST4(10) MO原创 2008-10-31 01:20:00 · 1495 阅读 · 0 评论 -
深究WS_UPLOAD和GUI_UPLOAD
今天看了下紫光的运维程序,又看到了WS_UPLOAD这个函数,想到还看过一个类cl_gui_frontend_services,它里面也有一些静态方法可以上传文件。今天就研究了下他们之间的区别还有类cl_gui_frontend_services。总结如下:1. cl_gui_frontend_services类这个类提供了很多对操作系统文件的操作,例如拷贝,列出文件名等等。这些方法和ja原创 2008-10-27 08:11:00 · 9675 阅读 · 0 评论 -
sap常见字母所写
原帖:http://www.cnblogs.com/byfhd/archive/2008/09/11/1288757.htmlXI:SAP Exchange infrastructurePI: SAP NetWeaver Process Integration XI7.1 之后,XI改名为PICCMS:Computing Center Management System ,比较专业转载 2008-10-24 16:11:00 · 1023 阅读 · 0 评论 -
alv双击不显示debug
之前写的alv程序双击一直不显示,找半天没有发现原因。回过头来看看,其实应该当时就发现原因,整理整理debug思路。首先alv双击不显示我应该在调用双击的函数里设置断点,可是因为我想到因为alv双击不显示那么肯定没有调用这个函数,因此没有在函数中设置断点,而是在程序中查找函数的参数设置是不是有问题。不过还是有点收获,我发现在函数REUSE_ALV_GRID_DISPLAY中的一个参数必须要设置,i原创 2008-10-23 21:47:00 · 1069 阅读 · 0 评论 -
ABAP日期的两个函数
1. 函数DATE_GET_WEEKfunction date_get_week. *"---------------------------------------------------------------------- *"*"Lokale Schnittstelle: *" IMPORTING *" VALUE(DATE) LIKE SCAL-原创 2008-10-23 21:49:00 · 1532 阅读 · 0 评论 -
Abap下拉菜单制作
abap制作下拉菜单即listbox用代码写的话非常方便。网上找了一段代码 REPORT ZTEST_LISTBOX. TYPE-POOLS: VRM. DATA: LNAME TYPE VRM_ID, ILIST TYPE VRM_VALUES, "ITAB LILIST LIKE LINE OF ILIST. DATA: PS_T(原创 2009-03-02 10:52:00 · 2831 阅读 · 1 评论 -
abap单选框不能单选
在screen painter里画了三个单选框,可是每次程序运行时居然三个单选框都被选中,就是要把三个单选框分成一组 。如图: 选中单选框,然后右键选择radio button group里的define即可。原创 2009-03-04 17:28:00 · 2235 阅读 · 1 评论 -
abap屏幕编程-按钮
在screen painter画按钮编程,这样的设计现在很多IDE都采用,非常方便。function code其实就是一个相当于触发事件的信号。按下pushbutton的时候就会触发PAI事件,接着就可以通过function code去判断,有几个小地方需要注意,一是在elements list里类型为ok的元素一定要写上你定义的变量,通常用的名字是ok_code。否则sy-ucomm里的变量没有原创 2009-03-07 11:49:00 · 4358 阅读 · 0 评论