随笔分类 - ABAP
摘要:刚开始学ABAP的时候,学到iternal table时,感觉一阵混乱.搞不清楚什么是work area,什么是header line,以及occurs是干什么用的.今天终于差不多搞明白了(我还是太弱啊...BS自己一下)所以还是记录下来..省得自己以后再忘记...先是用TYPES关键字定义一个行(row)的类型.如下:TYPES: BEGIN OF line, field1 TYPE i, field2 TYPE i,END OF line.这里的line,就相当于一个自定义的类型,表示一行(row)的字段(field).这里一行有两个字段field1和field2.然后是声明一个work
阅读全文
摘要:用F1查看的时候,这里是这样说的:The types RAWSTRING and STRING have a variable length. A maximum length for these types can be specified, but has no upper limit.The type SSTRING is available as of release 6.10 and it has a variable length. Its maximum length must be specified and is limited to 255. The advantage o
阅读全文
摘要:这两天遇到,在call transformation将一个内表的数据转换成了xml格式,但是当调用代理的时候,这个xml字符串总会报传输格式有错,但是如果将这么xml字符串用concatenate的方式将所有的字符串组合在一起传输的时候,却可以不报错,仔细的将2个字符串都放在一个txt下面,却发现如果已50字符一行的字符来查看的时候却装换后的字符貌似第一行多占用一个字符,但是每个字符一一比较,却又没有发现什么,在同事zy的指导下,看了那个ucode-16的字符串组合,发现转换出来的第一个字符不一样,问题就在那里面最后通过shift l_input by 1 spaces的方式将那个看不见的字符
阅读全文
摘要:SHIFT str LEFT DELETING LEADING '0'.如果要在layout显示不出前面的0 格式: &字段(zc)&如果要在layout显示不出小数点后面的0 格式: &字段(.0)&关于shift1.Shift a structure by a given number of postionsSHIFT <c> [BY <n> PLACES] [<mode>].This statement shifts the field <c> by <n> positions.
阅读全文
摘要:如何根据事物代码查找相应BAPI技巧 2010-10-12 20:24:31 阅读130 评论0 字号:大中小 订阅如果我们找BAPI可以通过SAP标准事物代码:BAPI查询到已经释放的BAPI.如果只知道事物代码,可以通过下面的方式查询相应的BAPI.例如我们找创建销售订单的BAPI 我们知道事物代码是VA01.1、 我们进入VA01 界面,找到system --> status2、 在事物代码位置上双击,找到PACKAGE VA3、 用SE80打开包 VA4、 打开业务工程---》业务对象类型。根据我们的业务需求。我们要找销售订单的创建,所有BUS2032 销售订单 的可能性最大。5
阅读全文
摘要:激活锁定对象时,产生的 FM 的名字是什么?答案:首先要在 ABAP 字典中创建锁对象,然后才能在 ABAP 程序中设锁。创建锁对象时,系统会自动生成两个 FM 来进行锁管理。用于设锁的 FM 为: ENQUEUE_<锁对象名>。它用于在锁表(Lock Table)中生成一个锁项(Lock Entry)。若设锁不成功的话,就会在 Return 中反映出来。用于释放锁的 FM 为:DEQUEUE_<锁对象名>。它用于从锁表中删除一个锁项。在 ABAP 程序中,只需使用 "CALL FUNCITION ..." 语句就可以调用它们。这两个锁 FM 是在
阅读全文
摘要:在网上看到一篇是关于如何获取给定日期的那个月的最后一天日期,思路很特定,不象我之前写的要判断大小月,还要判断是否是闺年。實現此問題前,我們先看下大家都明白一個小腦筋急轉彎。“問在一年裡那個月有28天?答案是每個月都有28天”,是呀又不是問那個月可能只有28天,這樣的話答案就是二月了,如此我們對此問題可以借用此筋急轉彎處理,請看下面代碼:PARAMETERS P_DATUM TYPE SY-DATUM OBLIGATORY. WRITE:/ P_DATUM. P_DATUM+6(2) = '28'. P_DATUM = P_DATUM + 5. P_DATUM+6(2) =
阅读全文
摘要:工作区域跟变量一样,是用来保存数据的。区别是变量只能从中保存一个数据。而工作区域可以存放多个。把多个数据合在一起就成工作区域了。下面我们来看看工作区域是如何定义的吧。定义有四种方法,如下: 1,直接定义 DATA: BEGIN OF WA_EKBE, MATNR TYPE MARA-MATNR, MAKTX TYPE MAKT-MAKTX, END OF WA_EKBE. 上面是以BEGIN和END关键字开始,在其中的就是其工作区域的内容。它存放的内容也就是这两个。2,参照表或结构 DATA: WA_LFA1 TYPE LFA1. DATA: WA_LFA2 TYPE ZXXEKBE_S01.
阅读全文
摘要:Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 ...
阅读全文
摘要:一、SQL Interface1.Select ... Where vs. Select + Check用Select … Where语句效率比Select + Check语句要高,例如:SELECT * FROM SBOOK INTO SBOOK_WAWHERE CARRID = 'LH' ANDCONNID = '0400'.ENDSELECT.SELECT * FROM SBOOK INTO SBOOK_WA.CHECK: SBOOK_WA-CARRID = 'LH' ANDSBOOK_WA-CONNID = '0400'.
阅读全文
摘要:DATA: alpha_num(120) TYPE c.alpha_num = ' abcdefghijklopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,./;''[]\-=`<>?:"{}|_+~!@#$%^&*()'.IF input CA alpha_num.output = '不仅仅全是汉字'.ELSE.output = '全是汉字'.ENDIF.IF NOT input CO alpha_num.output = '含有汉字'
阅读全文
摘要:可以使用ABAP中函数 'DATE_CHECK_PLAUSIBILITY' 或'TIME_CHECK_PLAUSIBILITY'检查日期和时间值是否合法。用法如下:CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'EXPORTINGdate = v_dateEXCEPTIONSplausibility_check_failed = 1OTHERS = 2.IF sy-subrc NE 0. "如果返回非0,则日期不合法..ENDIF.CALL FUNCTION 'TIME_CHECK_PLAUSIBI
阅读全文
摘要:方法一: t-code:sm12方法二: call function 'ENQUEUE_EMMARCE' exporting matnr = itab-matnr werks = itab-werks _wait = ' ' exceptions foreign_lock = 2 system_failure = 3.
阅读全文
摘要:在ABAP开发中,对于不能使用join的聚集表或者需要使用SELECT 的内表,我们一般使用for all entries in 语句将该表与内表串联, 查询出需要的数据,例如: BSEG聚集表为例,如下: SELECT bseg~kunnr bseg~lifnr bseg~belnr INTO TABLE itab_bseg FROM bseg FOR ALL ENTRIES IN itab_main WHERE bukrs in _bukrs and ( belnr = itab_main-belnr AND hkont = itab_main-hkont ).由于BSEG不能和BSIS做
阅读全文
摘要:ABAP中的内表相当于其他程序设计语言中的二维数组,存储多行结构相同的数据 不同于二维数组,内表在创建后,列结构与列数是固定不变的,而行数是动态增长的 内表支持循环对每行数据进行操作,也支持整体操作内表是具有行和列的表结构,然而,不同于数据库表,内表仅在程序运行期间在内存中存储数据 ABAP中有三种内表类型:标准表,哈希表,排序表 - ABAP内表数据类型内表数据对象是实际的内表,可以用数据进行填充 内表数据类型是用于定义内表数据对象的抽象数据类型(ADT) 可以使用的内表数据类型有: Structure 数据库表 用户自定义数据类型 -ABAP内表声明1>TYPES: BEGIN OF
阅读全文
摘要:对内表的定义,我只说下有没occurs的区别。**DATA: BEGIN OF itab OCCURS 0,* matnr LIKE mara-matnr,* maktx LIKE makt-maktx,* END OF itab.**SELECT * FROM makt INTO CORRESPONDING FIELDS OF TABLE itab .**LOOP AT itab.* WRITE:/* itab-matnr,* itab-maktx.*ENDLOOP.DATA: BEGIN OF itab, matnr LIKE mara-matnr, maktx LIKE makt-mak
阅读全文
摘要:用自定义关键字读取单行要从有自定义关键字的内表中读取单行,请使用READ语句的WITH KEY选项,用法如下:语法READ TABLE <itab> [INTO <wa>] WITH KEY <key> [BINARY SEARCH].用 INTO 选项可以指定目标区域 。如果表格有表头行,则可以忽略 INTO 选项。这样,表格工作区域就成了目标区域。系统读取 <itab> 中匹配 <key> 中所定义的关键字的第一个条目。关于二分法搜索选项的详细信息,参见二分法搜索。如果找到有适当关键字的条目,则将系统字段 SY-SUBRC设置为0
阅读全文
摘要:1. sy-repid is the name of the current program. sy-cprog is the name of the calling program.比如在一个Function里面设置断点,sy-repid的这个FM所在FunctionPool的名字,sy-cprog是调用这个FM的Report的程序名。2. sy-repid 不可以人为更改,sy-cprog可以
阅读全文
摘要:Description:SY-SUBRC:语句执行后的返回值,0表示成功SY-DATUM:当前服务器日期SY-UZEIT:当前服务器时间SY-ULINE:255长度的水平线SY-VLINE:垂直线 SY-INDEX:循环说执行的次数SY-TABIX:内表循环的次数SY-DYNNR:当前Screen号SY-MANDT:当前登录的Client号SY-STEPL:返回当前操作的屏幕行号(Table Control)SY-LOOPC:当前表格控件在屏幕中的总行数(Table Control)SY-UCOMM:PAI所出发的功能代码 SY-DYNNR:当前屏幕号SY-MSGID:Message Clas
阅读全文
摘要:函数名描述ABAP_DOCU_DOWNLOAD Download ABAP documentation in HTML format.ARFC_GET_TID – 以十六进制形式返回终端的IP地址。ADDR_GET_COMPLETE_ALL_TYPES 功能:获得地址的相关信息BP_EVENT_RAISE –在 ABAP/4 程序中触发一个事件。BKK_ADD_MONTH_TO_DATE 日期的加减BAPI_COMPANYCODE_GET_PERIOD功能:获得公司的会计年度以及过账日期CONVERT_OTFSPOOLJOB_2_PDF - converts a OTF spool to PD
阅读全文