01 ABAP 基础
liangziyisheng
LINUX系统管理
ABAP编程
HANA编程
NW BASIS
PYTHON
系统架构
UML
展开
-
自动检查屏幕输入框值是否存在
在selection screen中只需要在parameter后面加上 VALUE CHECK,就可以对该值进行自动检测,当然这是在该parameter有search help的前提下,否则无法激活。PARAMETERS p_carr TYPE demo_conn-carrid原创 2011-07-28 18:46:46 · 1204 阅读 · 1 评论 -
selection screen 上面创建tab scrip
SELECTION-SCREEN BEGIN OF TABBED BLOCK tab1 FOR 20 LINES.SELECTION-SCREEN TAB (15) text-001 USER-COMMAND tab1 DEFAULT SCREEN 2000.SELECTION-SCREEN TAB (15) text-002 USER-COMMAND tab2 DEFAULT S原创 2011-11-10 17:08:12 · 1117 阅读 · 0 评论 -
关于text table
text table是什么概念?Table A is a text table of table B if the key of A comprises the key of B and an additional language key field (field of data type LANG). Table A may therefore contain explanatory te原创 2011-11-11 09:50:08 · 2549 阅读 · 0 评论 -
一个将字符串第一个字母转成大写的函数
isp_convert_firstchars_toupper INPUT_STRING指定的字符串SEPARATORS指定分割符 若不指定分割符,则默认为空格原创 2011-12-12 15:29:57 · 3320 阅读 · 1 评论 -
将系统日期转换成本地日期
问题是这样的: 很多时候我们跑前台数据需要填如日期,对不同用户而言,可能设置的日期格式不一样,有的是DD.MM.YYYY有的是MM/DD/YYYY。 现在我们要创建一个创建一个程序使用BDC技术去自动填充日期,这时要想让所有的用户都能跑这个程序就必须保证日期格式和每个用户设置的格式一致。意思可能不太明白哈,想想:我们通常先是录屏,然后根据录屏的结果填充bdctable,凡是日期field都是带原创 2011-12-16 17:01:16 · 1259 阅读 · 2 评论 -
外部类型和ABAP type对应关系表
TypePermitted Places mMeaningABAP TypeACCP6Accounting periodn(6)CHAR1-255Character stringc(m)CLNT3Clientc(3)CUKY5Currency keyc(5)CURR1-31原创 2012-01-19 11:29:12 · 1881 阅读 · 0 评论 -
联动search help
之前写过一篇博文,讲解了两种创建联动search help的方法。 现在讲解如何使用function module创建联动search help,过程中得到chris的指点,在此表示感谢。废话少说,看了代码就一目了然了:TABLES spfli.TYPES: BEGIN OF type_carrid, carrid TYPE spfli-carrid,原创 2012-01-04 17:22:02 · 1249 阅读 · 0 评论 -
字符串转换成时间的函数
碰到这样一个需求,从文件读到的某个时间数据是:12:02:03;4:5:6;现在我要根据这个字段排序,发现按照升序排列4:5:6排到了12:02:03后面,实际上我要4:5:6排到前面,所以我必须要将该字段转换成一个内部的时间格式,找到了这个function :CONVERT_TIME_INPUT可以干这件事 看实例:DATA: g_data(8) TYPE c, g_t原创 2012-03-29 17:41:19 · 1033 阅读 · 0 评论 -
关于f1技术
对于屏幕上的field,我们通常可以使用f1调出它对应的data element的documention,要维护data element的文本可在data element修改状态勾选那个 change document checkbox,然后点击documentation就可以修改了。 但是我们如何针对屏幕上面任意一个field去调用f1 help文档呢?首先当然要创建f1 help文原创 2011-12-01 14:36:07 · 1457 阅读 · 0 评论 -
Search help里面几个参数的含义
SAP 允许我们使用SE11创建search help,要说search help那是在SAP前台的各个界面应用相当广泛。search help的创建这里就不多说了,以下主要探讨一下search help中那几个参数的含义:IMP: 设置了这个标志位,意味着search help在处理数据时会参考屏幕中field输入的值EXP: 设置了这个标志位,意味着用户选择的search help原创 2012-04-09 11:35:21 · 2808 阅读 · 0 评论 -
程序实现background job
我们知道SM36是一个用来做background job的工具也很容易使用,这里介绍如何用程序实现background job DATA: g_jobname TYPE tbtcjob-jobname VALUE 'ZTEST_JOB'.DATA: g_jobaccount TYPE tbtcjob-jobcount.START-OF-SELECTION. CALL FU原创 2011-11-10 16:32:36 · 792 阅读 · 0 评论 -
F4IF_FIELD_VALUE_REQUEST 和 F4IF_INT_TABLE_VALUE_REQUEST的不同
F4IF_FIELD_VALUE_REQUEST主要功能是将表里的字段对应的search help引入到屏幕上来,从而打开对话框,当然也可以任意指定某个search help。F4IF_INT_TABLE_VALUE_REQUEST支持字定义内表,但是不能通过指定search help的方式打开对话框。1.F4IF_FIELD_VALUE_REQUEST的应用实例TYPES: BEGI原创 2011-11-09 12:58:33 · 8694 阅读 · 0 评论 -
通过事件触发background job
我们经常做设定background job,一般是设定一个时间点出发该job的执行,background job还有一种是通过事件触发的事件触发怎么实现呢? 以下是个人做法,读者若有其他做法请不吝赐教!!!step1, 先去SM62去定义一个event.Step2, SM36部署一个background job, event填上一步定义好的事件名Step3, 测试原创 2011-11-29 17:19:35 · 1355 阅读 · 0 评论 -
screen的相关属性详解
为了更改屏幕的属性,我们经常使用loop at screen. ... ... endloop.这里大家大家可能会感到疑惑,为什么可以loop一个结构,其实在内部是这样的:这条语句使得底层按先后顺序读取屏幕上面的控件信息(你在屏幕定义的第一个控件一般是在第3次循环的时候读入到sc原创 2011-07-29 11:05:42 · 2693 阅读 · 0 评论 -
ABAP 引用型变量
1、定义引用变量语句: DATA dref TYPE REF TO DATA.(指向任意类型,但在创建时必须指定对象类型) ,声明定义时,没有指向任何对象,此时你不可使用,引用变量的赋值有两种方法: CREATE DATA type XXX GET REFERENCE OF dobj INTO dref. 2、动态创建数据参考的内存空间,语法如下 CREA原创 2011-10-19 17:13:32 · 8321 阅读 · 1 评论 -
探讨gui_upload(gui_download)的两个参数
本节探讨一下filetype 和codepage两个参数filetype有3种ASC BIN和DAT,指定filetype意味着它再上传或者下载过程中每个colomn之间会以什么分割,用得最多的是DAT类型,这种类型指定了分割符为tab。BIN类型用得比较少,16进制文件会用到。ASC类型,要求定义文件字符紧密,并且要指定固定的放在table每列的长度,否则会出问题。 codepage原创 2011-10-21 10:01:20 · 6324 阅读 · 2 评论 -
Excel导入导出乱码问题
我们在使用函数将数据导出到excel,当打开excel文件时会出现乱码问题,如果选择用txt打开文件却正常。 这可能有种原因:1.SAP本身不支持导出文件的格式类型,这样的话,SAP导出时可能导出的文件让excel打不开,比如xlsx格式。当然也有可能导致导出的文件让excel打开乱码(我猜测)2.SAP本身支持文件格式,如果出现导入乱码,多半是因为SAP系统不支持指定的字符集,或者该字符原创 2011-10-21 16:18:00 · 10137 阅读 · 1 评论 -
TEXT_CONVERT_XLS_TO_SAP实例
之前尝试很多次使用gui_upload去上传excel数据,每次都出现乱码,不管中文英文都乱码。 至今不知道gui_upload是否支持excel文件上传,它的每个参数都尝试了,修改参数貌似并不能解决它出现乱码的事实。于是想到用ALSM_EXCEL_TO_INTERNAL_TABLE,这个函数用起来有点蛋疼,不能使用自定义的格式,必须要定义一个和它规定的格式的内表来接收传来的值,完了要loop原创 2011-11-21 11:39:06 · 13426 阅读 · 0 评论 -
用html将内表数据输出
写了一个简易程序,用于将内表数据以html格式保存于本地,并且打开该html文件 TYPE-POOLS: slis.TABLES sflight.* define internal tableDATA: BEGIN OF gt_sfli_info OCCURS 0, carrid TYPE sflight-carrid, connid TYPE原创 2011-11-28 17:14:44 · 1678 阅读 · 0 评论 -
ABAP technology overview
在学习这门语言之前,让我们先看看SAP的二次开发具有哪些工具和技术 ,这里给大家一个overview: 1、REPORT(报表) :报表程序的主要作用是从数据库中抓取数据通过整理陈列出来,给企业高层或具有相关需求的人员查看。如无特殊需求,此类程序一般不需客制screen、menu、title。 A、ABAP LIST(最简单的一种报表程序,显示在屏幕上的数据及格式都通过ABAP中的WR转载 2011-11-07 13:47:10 · 799 阅读 · 0 评论 -
创建customized search help in standard collective search help
我们经常可以看到标准的search help里面有很多included search help这些search help有什么用呢?不难发现,标准的search help往往会有很多个search help供用户选择,以便更有效选择需要的数据。当存在自建表的情况下,abaper通常需要在标准的search help里面append 一个新的search help,以下是步骤:1.创建要ap原创 2011-11-28 11:58:42 · 839 阅读 · 0 评论 -
动态选择屏幕
学习编程的最佳方法是研究他人的代码,一些我写了一段简单的代码演示动态选择屏幕 TABLES: sflight, spfli, sbook.SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.PARAMETERS p_scd RADIOBUTTON GROUP grp1 USER-COMMAND com MODIF ID scd DEFA原创 2011-11-29 10:51:37 · 1128 阅读 · 0 评论 -
SAP 版本
文章转载于: http://hi.baidu.com/rainingstone77/blog/item/a08f1d8035eaf6b46d811975.html SAP Business Suite 当前SAP公司的主力产品包,里面包含了mySAP ERP, mySAP CRM, mySAP SCM .... 几乎是SAP的所有东东。如果购买的是此种许可证,就意味着几乎可以用SA转载 2012-04-24 13:20:00 · 932 阅读 · 0 评论 -
Set的使用
我们知道,程序里面是不推荐使用hard code的,所以当某个值我们经常使用的话,我们通常会把它作为一个常量存起来,但是该值可能被多个用户使用并且经常进行维护呢?这个时候使用常量明显就不明智了。以下是我见过的两种处理方式:一是,创建一个database的透明表将所有类似这样的值都存在该表中,这就是通常称的soft code table。 并且允许该表进行维护。二是,创建set去维护原创 2012-04-25 15:33:23 · 1870 阅读 · 0 评论 -
ABAP report 模板
文章转载于:http://blog.chinaunix.net/uid-9308264-id-2005166.html*----------------------------------------------------------------------** Program ID : XXXXXXXXXX转载 2012-04-25 17:44:32 · 1052 阅读 · 0 评论 -
SE11 Conversion Routine
我们在自建表的时候也许要对domain进行一个转换,这时我们通常使用conversion RoutineConversion Routine的名字只有5个字符长,实际上它也算是一种增强技术,当命名好以后,要在SE37创建两个Function module,分别是:CONVERSION_EXIT_XXXXX_INPUTCONVERSION_EXIT_XXXXX_OUTPUT(XXXX原创 2012-07-24 14:17:14 · 1082 阅读 · 2 评论 -
加前导0, 去前导0
加前导0:data gv_str type char10.gv_str = '400'.SHIFT gv_str RIGHT DELETING TRAILING space.OVERLAY gv_str WITH '0000000000'. 去前导0:SHIFT gv_str LEFT DELETING LEADING '0'.原创 2012-07-24 13:28:28 · 1563 阅读 · 0 评论 -
Table Pool / Table Cluster 中的参数含义
Fields of a table pool and their meaning:Tabname char(10) Pooled table的名字,由此可以看出Pooled table名字理论上长度不能超过10Varkey char(n) 这个字段存储了Pooled table里面的所有key fields的连起来的值Dataln I原创 2012-07-25 10:43:44 · 1100 阅读 · 0 评论 -
exit的4种用法
1.用于循环和check不一样,exit用于循环会直接结束该层循环program:DATA limit TYPE i VALUE 10.DO 5 times. DO . IF sy-index > limit. EXIT. ENDIF. WRITE / sy-index. ENDDO. write / '----------------原创 2011-03-24 12:00:00 · 4361 阅读 · 0 评论 -
check的3种用法
首先要说明,SAP推荐将check用于循环中1.check 用于循环中,如果条件不成立则结束下面的操作直接进入下一次循环program: DO 10 TIMES. check sy-index between 4 and 7. write: 'the index value is: ', sy-index.ENDDO. result:the ind原创 2011-03-24 11:05:00 · 20111 阅读 · 3 评论 -
stop和return
stop只能用于可执行程序的某些event blocks中:at selection-screenstart-of-selectionget在这些块种执行stop会触发end-of-selection事件 return应用相对广泛,他用于各种block中,包括:procedure methods(class methods), function pr原创 2011-03-24 12:16:00 · 938 阅读 · 0 评论 -
ABAP里面游标的使用
*/Declaring Cursors-c1 and c2DATA: c1 TYPE cursor, c2 TYPE cursor.DATA: work_area1 TYPE mara, work_area2 TYPE mara.DATA: flag1(1) TYPE c, flag2(1) TYPE c.*/Open原创 2012-07-25 17:13:26 · 1894 阅读 · 0 评论 -
abap collect的使用实例
首先说一下collect的用法, collect into ,这个语法会:首先查找wa里面的key值在itab中是否存在如果不存在,那么插入一个新行(对standard table而言是append,对于sorted table相当于insert)如果存在,那么会将非key fields的值加到找到那个index相对较小(当然如果是hash table那就只会找到一条记录)的row相转载 2011-03-03 17:12:00 · 6397 阅读 · 0 评论 -
String comparision Operators
V_C1 op V_C2 where op can be:CO: contain only (E.g.: C1 CO C2) --C1的每一个字符都在C2中CN: contain Not only(C1 CN C2) --C1的字符可能在C2中,也可能不在C2中CA: contains any(C1 contains at least one character of C2)NA:原创 2011-07-08 09:58:09 · 599 阅读 · 0 评论 -
发送邮件 coding: send email
我们有时候要通过写程序去发送邮件。 以下实例,请参考,如若有问题,请读者留言。 DATA: send_request TYPE REF TO cl_bcs, document TYPE REF TO cl_document_bcs, recipient TYPE REF TO if_recipient_bcs, subject TYPE so_ob原创 2012-05-21 16:41:34 · 1603 阅读 · 0 评论 -
BASIS 邮箱配置相关
其实SAP提供了发送邮件的事务代码在发送邮件之前有一些相关配置是有必要的进入事物代码:scot找到SMTP对应的节点,填入相关参数即可。 配置好就是发送邮件进行测试了,进入到事物代码: SBWP,这里提供了邮件文本的书写和附件的上传功能, 下面可以指定邮件人。 也许你要问发送人的邮箱地址在哪儿指定呢, 其实当创建用户的使用,就必须指定该用户的邮箱地址的,否则,邮件发不出去,原创 2012-05-21 14:53:05 · 1388 阅读 · 0 评论 -
Parameter ID 维护
Parameter ID 通常用于 Data element中,通过set/get方法存取它的值, 那么到底Parameter ID 在哪儿进行维护的呢? 要注意的是这个Parameter ID 是跨Client的,所以维护的时候要注意。记住可维护表:TPARA 是有必要的原创 2012-05-21 16:52:57 · 1052 阅读 · 0 评论 -
弹出对话框 用户输入值
Function module 'POPUP_GET_VALUES'允许用户在对话框中输入值,且看实例 TYPES: ty_t_sval TYPE STANDARD TABLE OF sval.DATA: gv_ret_code(5) TYPE c, gt_flds TYPE ty_t_sval.CONSTANTS: cn_dlg_tit(10) TYPE c V原创 2012-04-26 11:21:41 · 2033 阅读 · 0 评论 -
选择屏幕 添加按钮
选择屏幕上允许用户最多指定按钮,分别是KEY1 KEY2 KEY3 KEY4 KEY5,并且这五个按钮对应的ucomm分别是FC01, FC02, FC03, FC04, FC05。要如何在自己定义选择屏幕上使用这5个按钮呢?首先,要激活这些个按钮,激活使用语句 SELECTION-SCREEN FUNCTION KEY n.然后,给这些个按钮指定text,通过: SSCRFIELDS转载 2012-04-26 11:42:54 · 3119 阅读 · 0 评论 -
屏幕上显示 SE78 图片
以下实例在屏幕9100上显示SE78上传的图片 屏幕9100里面创建一个容器控件,逻辑流:PROCESS BEFORE OUTPUT. MODULE STATUS_9100.*PROCESS AFTER INPUT. MODULE exit_prog. MODULE USER_COMMAND_9100. 主程序代码:DATA: ok_code TY原创 2012-04-26 16:32:54 · 3788 阅读 · 0 评论