现在的位置: 首页 > 综合 > 正文

一篇精彩的ABAP日记(转载)

2013年08月19日 ⁄ 综合 ⁄ 共 17362字 ⁄ 字号 评论关闭

于这次是专门做SAP方面的工作,所以其实方面如果有问题公司还是会另派人过来解决.所以接下来的我的工作目标非常明确,就是要在顾问指导下做好相关SAP方面的工作.

几天下来对自己的工作环境有了个大概的了解,这里有一个专门的SAP实施团队,加上偶共六人,其中五个是香港那边过来的,六人中也就我一个大陆仔. 也就这个时候我才N后悔以前没把白话学好,他们虽然都会点中文,但在这样一个以讲白话为主的环境下使我一下很难融入到其中. 为了使自己尽快适应这种环境,偶不得不开始学白话. 其实对于一个本来就不会的人学一种新语言,不管怎样还是要一个相当长的过程. 不管怎样我的重点还是在SAP上(当时还不知道有ABAP这个概念)------汗!

头几天让我先从内部的SAP网了解个大概,上面主要是介绍这家公司要实施的一些阶段性方案, 如业务蓝图之类的.对SAP的概念几乎没有介绍,由于当时我的电脑又上不了网,所以几天下来对SAP一个大概念都异常模糊.这中间回了次深圳公司(客户在横岗),第一件事就是去购书中心看有没相关的SAP资料.资料的确少的可怜,不过还是看到几本,其中就有一本黄佳编的<>,当时我也是感觉会和程序设计打交道,所以就买了这本.后来发现其实这本书对我入门ABAP还是有比较大的帮助.回来后同事说我买对了书!哈当时真是感觉如获至宝,于是开始翻阅起里面的内容.这几天在笔记里我记下了这么几点.可能比较乱.呵呵大家凑合着看.前面差不多一个月的日记都是从那本书上摘录的.

1.Object Navigator是ABAP工作平台上众中开发工具的中心入口,事务代码为:se80,其中还有几个经常会用到的T-CODE: SE38, SE24, SE37.

2.在ABAP Editor中有一个Excute with variant 按钮,代表通过变量运行(变式与选择屏幕相关).

3.Editor Pretty Printer ON/OFF的设置: 菜单项: Utilites->settings有相关项,选中Indent,Convert upper/lowercase同Keyword Uppercase.

4.ABAP有三种类型的处理块:Event blocks, Dialog Modules,Procedures只有后一种可拥有自己的局部变量,而且程序语句是内部调用,前两者处理块之间实行外部调用.

5.应用程序类型, 可执行的:以Report关键字引导,不能定义功能模块但可以调用.模块池的:以Program关键字引导,必须通过事务代码运行.

6.语句链 Write: text1, text2. 等同于: Write text1. Write text2.

7,在一个Program中,处于Form和Endform之间的是Subroutines. 该程序由Program引导,不能直接运行,需被调用,不能包含自定义的用户屏幕.

8.数据内部定义: types type(len) Type type [decimal dec]

data data(len) Type type [decimal dec] [value var]

Decimal 附加项只适用于指定P类型的小数位.

9.两个结构体进行赋值操作,如果 Source与Destination的组件结构不完全相同,则用

Move-corresponding, eg: move-corresponding source-data to destination-data.

10.在ABAP数据表达式中,关键字前后必须有空格,eg: Fault: (a=b+c) true:: a = b + c .

11.在用户主记录里可以设置日期的显示分隔符,小数点字符和千位分隔符,在system->userprofile->owndata 或T-code: su01.

12.内表是一种大批量数据管理形式,用于在程序运行期间存储多行结构相同的数据,程序对内表的行操作不能直接进行,必须通过一种接口来传输,这个接口就是工作区.

13.ABAP的两种动态数据对象: Field symbols 与 Data reference.

14.内表有三种形式: standard table , sorted table , hashed table后一种不能进行索引查找,只能通过关键字搜索.

15.子程序的定义和调用分别用Form/Endform和perform来实现,如果想生成子程序的代码框架,则在prefom add处双击即可.

-----------------------2005-09-06----------------

1,package的命名规则: begin with A-S or U-X是SAP standard object, begin with Y or Z are customer objects, begin with T are private test package, begin with $ are local package.

2.在数据字典中,每创建一个TABLE,都将生成一个同名的结构化数据类型,其中的组件字段与实际物理数据库表完全一致.

3,在select查询中如果要指定多个数据对象,则需要将这些对象放在括号内,并用逗号隔开,eg: select * from spfli into (a, b).

4.Function Module是最为常用的复用组件,它是独立的R/3仓库对象,也是一种过程模块,在不同的系统间可以通过RFC(Remote function call)技术进行功能模块的调用.

5,几个有用的系统函数: sy-uname, sy-host, sy-datum, sy-uzedit, sy-subrc, sy-bdcnt,sy-index, sy-tabix,sy-dynnr.

6,可用于交互式报表的列表事件有: at line-selection, at user-command 前者为选择某行时触发,后者由某个GUI触发.

7,在可执行程序中,只要在程序代码中使用parametes或select-options语句,则在程序运行后就会产生用户的选择屏幕.

---------------2005-09-07----------------------------

1, LDB(逻辑库)节点在程序访问之前需用Nodes语句声明,在旧版本中则使用Tables声明. 两种中止语句 Reject与check(有条件中止).

2, 由系统自动调用的子程序称回调线程,-----call back routine,利用此程序可以实现许多高级屏幕功能.

3, 在OO设计中对象的识别和寻址是通过对象引用来实现的.

4, 在二种对象运算访问符中->与=>,对于类中的静态组件是通过类名称加=>直接对类进行操作的.eg: class=>comp.

5,对象的自身引用可使用变量ME,是一个局部变量来的.

-------------------------------2005-09-08------------------------------

1, Append与Insert r的区别: append wa to itab; insert wa into table itab

前者不能用于Hashed表, 后者不能用于Sorted表的non-unique.

2.修改内表语法: modify itab from wa transporting col2 where….. 表明根据where条件来更新COL2字段值,表类型为SORTED或HASHED.

3,删除内表语法: Delete table itab: from wa, with table key col = 1. 三个标点不可少,with后的为条件关键字.如果用条件的则为: DELETE ITAB WHERE (COL > 17 AND COL < 4 )

4,在LOOP AT…ENDLOOP内有一个 AT ,<…>,ENDAT循环. 其中的包括: FRIST, LAST, NEW , END OF.这些可以用来进行内表中按某个字段进行分组统计.

5,几条记录作一次取用:PACKAGE SIZE N eg: select * from spfli into corresponding fields of table itab package size 3.

6.接口成员只能为类的公有成员,接口没有自己的实例,一个接口可以被任意多个不同的类实现,接口中定义的成员集在各类中名称要相同.

7, 在程序中使用逻辑数据库有两种方法:通常是通过GET事件或者功能模块进行调用.如: NODES node.

8, 在程序代码中输入NEW-PAGE PRINT ON ,将生成的列表直接发送走到SPOOL系统进行打印,不在屏幕上显示.

--------------------------------2005-09-11------------------------------------

1,将一组选择屏幕组合在一个区域,可以使用Begin of block…..eg:

Selection-screen begin of block blocka [with frame [title tit] ]

[no intervals]—只选单值不出现TO.

Selection-screen end of block.

2, 屏幕流逻辑分为两个最基本的处理块: PBO与PAI, 前者是在向用户显示屏幕GUI之前触发,后者是在用户进行某些屏幕行为后并回车时触发.流逻辑模块是在语句MODULE/ENDMODULE之间定义.这里的语法不属于ABAP系列.

3,屏幕中的OK字段其作用是:返回在屏幕和GUI状态中用户触发的功能代码:一般情况字段命名为:OK_CODE,数据类型与SY-UCOMM相同.

4,通过SE93可以为程序创建自定义的事务代码.

5,GUI中的交互元素包括菜单条,标准工具按扭,APPLICATION TOOLBAR,FUNCTIONKEYS共四种,在作屏幕事务设计时这些都要分配具体的功能代码与之对应.

--------------------------------2005-09-12------------------------------------

1,在定义EXPORTING、IMPORTING与CHANGING的时候,前两者分别为基本输入与输出参数,而CHANGING可用于前两者功能。

2,在处理商务文档时需用到SAPSCRIPTION与SMARTFORMS工具,两者都可以进行布局设计与输出控制。企业中的PO,SO等报表都要用到此类工具。

---------------------2005-09-13到2005-09-17----------------------

这几天香港那边来的顾问对我们几个新手进行了培训,主要是讲ABAP这方面的知识,因为那老师讲的都是白话,加上速度很快,所以这段时间笔记写的比较乱。我要花点时间整理下。

---------------------2005-09-13到2005-09-17----------------------

这几天香港那边来的顾问对我们几个新手进行了培训,主要是讲ABAP这方面的知识,因为那老师讲的都是白话,加上速度很快,所以这段时间笔记写的比较乱。

1,ABOUT XX SAP,本公司要上的功能模块:PM,FI/CO,PP,MM,SD,BASIS。

2,实话阶段:计划前准备:项目管理—正式实话会议—议程—系统配置—企业动作架构—主业务流程。商业蓝图:业务流程—工作物资—报表清单—批核概念。

3,项目标准:确定项目成员,LOGO制定,确定小组合作形式,帐套管理策略。。。

4,ABAP communicator service: J2EE engine module (using local tcp/ip network)

5,Payroll: ABAP dictionary containing data as well meta data.

6, Model object connot be created in a local package (only create the object after consulting sap,create the object in an sap package).

7,the lock objects deal with the problem which some users synchronize access to the same data.

8,different fields having the same technical type can be combined in domains.

呵呵上面这些偶也不知道是记了些什么东东。不过下面这些也好不到哪去。

9,Basis administrator: clients management, transports, data archiving, system monitoring, perform….

10,some useful transaction code:AL06, AL08, AL10 , AL11.

11,NEW-LINE = write: / eg: write: / xxx. The same to, new line. Write xxx.

12,在EDITOR界面的GOTO-》ATTRIBUTE-》可改TITLE的属性。

13,在Report xxx后可跟LINE-SIZE WIDTH, LINE-COUNT, PAGE LINES等属性,这些选项可以用来控制列表输出的页格式。

14,插入断点: BREAK-POINT, BREAK-USERNAME,也可以在程序激活的状态下按下STOP BUTTON。

15,用PROGRAM中的DOCUMENT可同步显示提示帮助。同时也可以在此处编辑。

16,可以用INCLUDE去包含一个数据类型 eg: include type xxx. 其中XXX为已经定义的数据类型。 这种方法在定义游标的时候会用到。

17,几个字符串操作函数:split…at…into.., shift ….right…., add-corresponding, divide-coresponding, move-corresponding, abs, concatename, condense.

18,刷新的时候对于基表用refresh, 内表用clear,free.

19,读数据集:READ DATASET DSS INTO RECORDE。

20,批处理工具,LSMW,BDC, CATT,ECATT。

21,如果要让个选择屏幕浮在SCREEN 1000的上面,则使用调用语句:

CALL SELECTION-SCREEN 100 STRATING AT 10 10 END AT 50 50。

---------------------2005-09-18到2005-09-20----------------------

1 ,从一个正在运行的程序调用另一个可执行程序: 可用SUBMIT命令来完成.通过事务代码调用程序的语句为:LEAVE TO TRANSCATION 或 CALL TRANSCATION.

2 ,用SELECT把多行选择到内表: SELECT …..INTO/APPENDING TABLE ITAB. 如果希望不覆盖原来的内表数据,则使用APPENDING.

3 ,SAP应用服务器文件及目录可以通过事务代码:AL11进行浏览.

4 ,要显示END-OF-PAGE事件的页脚内容,需在LINE-COUNT LENGTH后加上[(FOOTER-LENGTH)], 指定预留的页脚行数,eg: line-count 12(3).

5 , 想让一个选择屏幕的条件字段自动调用一个表的字段值信息:

Select-options so-air for spfli-carrid.

6, 做一个SAP QUERY涉及到的步骤:一首先建立一个用户组,二建立一个功能组选择表数据,SQ02,SQ03.三在SQ01下建立一个如果是第一次建QUERY,则在QUERY中输入名称.

---------------------2005-09-21到2005-09-23----------------------

1 , 如果想把一个屏幕的某字段设为必需输入的值,则可执行以下操作.

At selection-screen. 此为一个屏幕事件.

If carrid is initial.

Message e888( hints ) with ‘xxxx’.

Endif.

2, 在sapscript中如果要对main window的顶部打印指定的文本行,可使用TOP/ENDTOP 来控制,底部类似: BOTTON/ENDBOTTON.

3, 在一个指定的地方画一个框,要用到三条指令:

/: positon window 代表窗口的左上角.

/: postion xorigin ‘1.2’ cm yorigin 8 cm 系统原点进行位移.

/: box height ‘0.5’ cm width 19 cm intensity 50.

**************从这个时候开始做企业的定制报表,后面我会陆续讲到这方面的东西.刚开始我们也是用SAPSCRIPT来做,后来的几个报表用了SMARTFOMRS.就目前我这点水平来说,感觉两者各有千秋,希望新手不要刻意去掌握其中的一种,因为SAP在标准报表中有时用的是前者,有时用的却是后者.如果按它提供的标准报表进行维护还是方便了很多,前提是你要了解这种报表制作方法******************

---------------------2005-09-29到2005-09-30---------------------

1, 把一个SAPSCRIPT报表从CLIENT300 移到 CLIENT400, 使用SAP的标准程序:RSTXSCRP, 先在CLIENT300中进行EXPORT,然后到CLIENT400中进行IMPORT.在这里操作要注意的是: 在做IMPORT的时候OBJECT NAME 要与原来EXPORT 的一样.

2, 在MOVE RESOURCE TO DESTINATION 中如果RESOURCE是一个变量字段,很有可能在操作中得不到数据字段赋过来的值, 这时可以在操作过程中定义一个变量来转换解决这个现像.: move resource to var1. move var1 to destination.

---------------------2005-10-03到2005-10-04---------------------

1, 在ABAP的PERFORM程序中,如果使用了两个变量 USING A. USING B. 要读INTAB中B的值,则使用: READ TABLE ITAB INDEX 2.

2, 在一个查询语句中,如果WHERE语句后加入了CLIENT SPECIFIED 关键字,则查询所有集团(CLIENT)的数据.

3,在销售流程中可能用到的定制报表: 创建询价单(VA11)->创建报价单(VA21)->创建交货单(VL10)->发货过帐->出具发票->客户余额查询 ->收款. 不同的报表在IMG中都有不同的对应配置信息.比如SO单对应的T-CODE为: V/40.

---------------------下面整理一个关于SAPSCRIPT涉及到的信息集很浅的--------------------

1, 在CHANGE一个FORM时,可以进行多语言的维护,前提是在进入修改之前选中编辑的语言类别.

2, 在报表的制作过程中应尽可能多地定义PARAGRAPH FORMAT少定义WINDOW,这样有利于日后的维护.

3, 在没有ACTIVE的情况下少用RESET,这样会丢失你之前修改的所有信息,即使你对报表进行的保存操作.

4, 对于一个表要查看其所对应的数据字段: /va02->sale->header->sales 然后把光标放在某一个字段内按F1查看: Technical information.

5, 如果经常用到一个图标进行打印,可在/NSE78 下IMPORT GRAPHIC下选中RESIDER IN THE PRINTER MEMORY.

6, 插入一个BMP,先在/NSE78下建好,然后在FORM的LAYOUT下点击右键: CREATE GRAPHIC进行相应的操作,在这里要注意色体的选择.

7, CREATING GRAPHIC OBJECTS AND IDS: 先在/NSE75下设置,然后点击/NSE78查看.

8, 在页脚插入一个公司商标信息: / INCLUDE &TVKO-TXNAM_FUS& OBJECT TEXT ID ADRS LANGUAGE &VBDKA-SPRAS_VKO&.

9, 使用STANDARD TEXT, 先通过/NSO10定义一个标准文档,然后在FORM里插入命令: INCLUDE I_ADRS_HEADER OBJECT TTEXT IDXXX.

10,打印数据涉及到三方: 销售单->PRINT PROGRAM->PRINTFORM. 在销售单下有一个OUTPUT是在 /NV/40里进行配置.

11, 如果把一段标题设置成在每一页都打印,则使用: TOP…ENDTOP来实现.

12, 在用FORMPAGES 进行总页数统计时,如果不显示则在后加 (ZE).

**********************本人现在对SAPSCRIPT已经基本掌握, 当然不包括像SAP用到的标准程序提取数据那部分知识.如果大家在这方面有什么问题,我想我们还是可以交流交流的.还有LSMW这块,虽然记得不详细,但我也基本掌握,所以这块我们也可以交流交流, 目前公司所有的定制报表,所有的旧系统数据导入SAP工作都由我在做,所以这几方面都还比较熟悉*************************

------------------------------------------------2005-10-05--------------------------------------------------

1, 在做LSMW时TRANSFER GL DATA 用到的标准程序为: RFBISA00.

2. 在创建LSMW时: PROJECT->传输项目的名称(可分配多个子项目),SUBPROJECT->子项目可有无限个子项目, OBJECT->对象名称对应业务名称. 对象分配到子项目中.

3, 使用SAP标准程序:RMDATIND可直接输入物料主数据.

4, 在维护STRUCTURE的时候都有两个或一个属性,为表头结构与行项结构.

5, 在SPECIFYFIELS的时候,FILE一定是.TXT形式的扁平文件格式.

6,如果导入的数据没有值则进行以下CODEING: IF NOT ITEM-MWSKZ IS INITIAL.

BBSEG-MWSKZ = ITEM-MWSKZ. ENDIF.

------------------------------------------------2005-10-06-------------------------------------------------

1, 使用EXCEL创建一个扁平形文件格式 (ASCIIFILE) --àa flat file of leguacy data. 打开EXCEL,另存为时选扩展名为: TEXT(TAB DELIMITED).

2, 如果要改动一个TABLE,可以先复制出来,然后对其进行修改,可以对新表进行结构修改.

3, 传输采购定单用到: RM06EEI1, FI的为: RFBIBL00. MM的为: RMDATIND, SD的为: RVAFSS00. AM的为: RAALTD11. CO-PA的为: RKEVEXTO. 维护这些程序用RBMVSHOW或/NBMV0.

4, 用/NSHD0可以为原本的SAP事务代码进行定制,如MM01,VA01等等.类似/NSE93.

---------------------------------------------几个用到的T-CODE说明---------------------------------------

1, ST05 TRACE SQL.

2, CS01 CREATE BOM

3, XK01 CREATE VENDOR

4, FILE CONFIGURE LOCAL PATH

5, SARA DELETE DATA USING BATCH METHOD

6, AL08 DISPLAY USE WHO ON LINE

7, SE09 DISPLAY TREE STRUCTURE CHART.

8, OPK8 CONFIGURE PP IN IMG

9, V/40 CONFIGURE SO IN IMG

10,VV21->VL01N->VL71 PRINT DELIVER NOTE

11, ME2L display po which have been released

12, SPAD DEPLOY FONT SET FOR PRINTER

13, M706 CONFIGURE GI IN IMG

14, MBST CANCEL MATERIAL DOCUMENT

15, SE93,SHD0 TRANSACTION VARIANTS

16, XD01 CREATE CUSTOMER

17, SE32 EDIT TEXT FOR ABAP

18, MM50,MM17 SOME USEFUL TCODE FOR MAINTAINING MM

19, V/30 CONFIGURE SO /INVOICE IN IMG

20,DB02,DB12 DISPLAY INFORMATION OF DB

21, COO1 CREATE PRODUCT ORDER

22, VF02 CHANGE INVOICE’S OUTPUT

23, COOIS,COO5N RELEASE PRODUCT ORDER

24, V/34 CONFIGURE DELIVERY NOTE

25, SHDB SE35 UPLOAD BDC

26, SALE IMG FOR ALE/IDOC

27, ME21N->ME22->ME28->MIGO->MB03 GI PROCESS

28, OMBR DEPLOY BARCODE FOR GI

29, MMAM 改变物料类型

30,WE02 查看现有的IDOS

31,SCC4 CLIENTR的定义

32,WEDI 显示IDOC的工具菜单界面

33,PFCG ROLE 角色的定义

34,SCCL CLIENT的COPY

下面列出几个生产流程的事务代码,其实作为ABAPER也应该对流程有所了解.根据下面这些TCODE你可以完整地走一遍整个生产流程.

PP流程:

35, MM01->CS01(BOM)->CR01(WORKCENTERY)->CA01(ROUTING)->MD11(PLANNED ORDER)->COO1(PRODUCTION ORDERS)也可通过CO41/CO40转换计划单得来.

36, COMAC(对生产订单进行可用性检查)

37,COHVOMPRINT(打印订单)

38,MB31(通过订单号收货)

SD流程

39,VK11(PRICECONDITION)->VA21(QUOTATIONORDER)->VA01(CREATE SO)->VA41(CREATE CONTRACT)

40,V.02(检查不完整性定单)

41,VA14L(为交货冻结凭证)

42,VKM1(解除冻结的SO)

43,VB01(创建一个排斥)

MRP流程

44, MD61(独立物料计划)->MD01(MRP总计划)->MD03(单项单层计划)->MD05(显示MRP物料清单)->MD14/MD15(生产计划单转采购需求)->ME57(处理采购申请分配VENDOR)->ME59N(采购申请自动生成采购定单)

物料成本

45,CK11N(创建物料成本估算)

46,KKPAN(不用数量创建估算)

47,CK24(价格更新标记标准价格)

48, CK40N(编辑成本核算)

发票(BILLING)

49,VF01(创建出具发票凭证)->VF04(维护发票到期清单)->VF05(出具发票凭证清单)->VF11(取消出具发票凭证).

成本控制(COSTING)

50, KA01(创建成本要素)

51,KS01(创建成本中心)

52,KSH1(创建成本中心组)

53,KSU1(创建实际分配周期)

54,KK01(创建统计关键指标)

55,KL01(生成作业类型)

56,KSV7(建立计划分配循环)

57,KSVB(执行计划分配)

58,KSU1(创建实际分配周期)

59,KS13(显示成本中心数据)

60,KOK5(内部定单的主数据)

仓库管理几个相关操作

61,COOIS(生产订单信息系统)

62,MB52/MMBE(查看库存)

63,VL02N(向外发货)

64,MB1B(在分包商处的库存)

65,MIGO(收发货)

66,MD04/MD40L->相关MRP

-----------------------------------2005-10-07------------------------

1, LSMW大体的执行次序: COMPANY CODE->plants->other organization->material types->unites of measure->mm data->vendor/customer->po/so.

2, In the flat file not only include the data you want to transfer, but also sap-specific data such as transaction codes.

3, 把目前SAP的资料存入本地文件:使用SAP标准程序: RMDATGEN.

4, 如果在MASTER TABLE中增加一个新字段: APPEND TO BMMH1---此表为从MARA拷贝过来. 那么要运行RMDATING->GENERATE CODE FOR FGROUP MGAD.

------------------2005-10-10到2005-10-21----------------------------

*******这段时间可能一直在做SAPSCRIPT的报表,没有什么记录.

1, 可以通过SE32来维护ABAP中那些与选择屏幕相关的TEXT.

2, 通过语句BOX XPOS ‘7’CM WIDTH 0 TW HEIGHT ‘11’ CM FRAME 10 TW 可在指定位置画一条竖线.

3, 用TRANSLATE TEXT TO UPPER/LOWER可以进行大小写转换.

----------------------2005-10-24----------------

1, 用LSWM导PO数据的时候分成二步录制,在HEAD中录HEADER和ITEM的第一条记录, 然后再录ITEM的时候用事务代码ME22录,进入CHANGE界面后点菜单的EDIT中ENTRY LINES录制ITEM的第二条记录.注意这里: BSTPO_02的值与EBELP的值一样.

2, 在做SO的ITEM时也是同PO一样,按CREATE ITEM来新建一个ITEM,然后录入所需的数据(开始界面所有值都填).

3, 做BOM的时候,BOM USAGE为生产且只能创建一次,不能重复创建(这个可能是对特定公司来说的),在CHANGE的时候忽略BOMGROUP,且要注意的是在录制ITEM时一定要有单位字段.

------------------2005-10-25到2005-10-26-----------------------------------------

1, 用VK11进入条件设置界面, 把PROO输到CONDITION TYPE中可进去设置产品的价格,----V/LD确认物料价格.

2, 通过MM01在COPY FROM中输入要修改的物料号,可以为指定的物料设定销售组织和分销渠道.

3, 用SM12可以在系统不正常退出后,结束某个进程.

4, 在用SAPSCRIPT画图时,如果要在每一页都显示则不要把它的语句放在MAIN中,应放在MAIN TYPE 为CONST或VAR的窗口.

------------------2005-10-28到2005-10-31----------

1, 在PARAMETERS定义的参数如果要有个默认值,则格式为:

parameters: amount type I default 20.

2. 对于PO单的EBELN,如果用SELECT-OPTIONS XXX LIKE EKKO-EBELN则会X前加IBT,为避免这种情况用PARAMTERS与BETWEEN来解决.

3, 在SAPSCRIPT中如果在对某个字段进行右对齐,一般通过命令R来设置没什么效果,最好是通过TAB中的ALIGNMENT来进行设置.

---------------------2005-11-02到2005-11-03------------------

1, 在做PAI的时候如果要读取动态程序值要用到的 FUNCTION: DYNP_VALUE_READ.

2, 通过程序SHOWICON可以查看到所有的SAP ICONS.

3, 在INCLUDE中也可以用变量如: /: INCLUDE &SCUSTOM-NAME& TEXTID ST.这样的话PO单的REMARKS可用多种语言,写好后可动态调用.

4,修改内表的某一行: create table itab with key person = ‘123’ binaray search.

Itab-name = ‘xx’. Itab-age = ‘28’.

Modify itab index sy-tabix.

------------------------------2005-11-07 --------------------------

1, 如果要在一个表头部分用边框分割开,最好的方法是在每一个WINDOW中写入

/: BOX FRAME 10 TW.

2, 在一个报表中加入一张图片,如果只能在源语言环境下显示,则可做几次语言转换,最好第一次用ZH或ZF.

3, 一个功能模块如READ_TEXT 要看有几个输入输出函数,可在显示状态下查看IMPORT和EXPORT. 查看功能模块T-CODE: SE37.

-------------------------2005-11-08到2005-11-09------------------------------

1, 发票单对应的SMARTFORM设置是,PROGRAM: RLB_INVOICE SMARTFORM: LB_BIL_INVOICE. 对应的SAPSCRIPT是, PROGRAM: RVADDN01 SMARTFORM: RVDELNOTE.

2, 要在工单中打印条码, 在OPK8中选中SPOOL PRARMETES FOR USER 改OUTPUTDEVICE为BARCODE(为自己设定的条码打印机), PRINTER SPECIFICATION 的OUTPUTDEVICE也为BARCODE->PRINT CONTROL FOR USER. 做以上这些事的前提是要先安装TBARCODE_SAPLPD-----打印驱动.

3, 设置打印机的字体集用T-CODE: SPAD.

-------------------2005-11-14到2005-11-21---------------------------

1, 要查看指定用户建立或修改的文档, 用SE80进入OBJECT NAVIGATOR界面,选择TRANSPORT ORGANIZER ,选定查看的用户.此功能等同于: SE09.

2, 定义内表与工作区最方便的方法.起先: DATA: ITAB TYPE TABLE OF MARA.

然后: DATA: WA LIKE LINE OF ITAB.

3, QUICKVIEWER所生成的报表是用户自定义的报表,只能由此用户自己使用与维护,无法利用用户组和功能区域统一管理.

-------------------- 2005-11-22----- ---------------------

1, 在做QUERY查询的时候,如果要对两个现有字段进行相应算术运算,可通过增加一个本地字段来实现.前提是要对打算处理的两字段设置SHORT NAME,然后在FORMULA中引用即可.

2. 在提取物料资料的文本信息时,如果一个物料的几种语言描述都不相同,那么即使采购单只有一个ITEM也会对应出几个文本信息记录行,可通过SPRAS来过滤.

3, 在SPAD中安装BARCODE时,驱动程序用: SAPLPD/SAPWIN DRIVE3.0.

-------------------2005-11-23到2005-11-30----------- -----------------

1, 在用GROUP BY做统计的时候,对于用了算术运算的字段就不能出现在GROUP BY中.

2, 如果要对MARA中某个字段进行隐藏,则到IMG->LOGISTICS GENERAL->MATERIAL MASTER-> FIELD SELECTION下进行ASSIGN与MAINTAIN的设置.

3, 表TNAPR可查看相关输出报表对应的打印程序与相应报表名.

4, 在装条码打印机的时候,先安装条码驱动程序到SAP安装目录SPALD下,在SPAD下选中UTILITIES->FOR DEVICE TYPES->COPY DEVICE TYPE 用SWIN,然后新建一个OUTPUTDEVICE,在ACCESS METHJOD下选HOSTPOOL为F: 前台打印输出. 打印条码的下载地址:WWW.TEC-IT.CO.AT/

--------------------2005-12-05到2005-12-14------------ ---------------

1, 函数SY-REPID显示的内容为当前程序名.

2, 用T-CODE:OAER进入调用文档界面, 在CLASSNAME中输入PICTURES,CLASSTYPE为OT,进入后在CREATE下可创建与具体文档相关的链接.

3, 对于要在ALV在显示下钻表,一般情况都要自定义几个相关的用户屏幕,具体做法可参照SAP标准示例程序: BCALV_GIRD_05.

---------------------下面整理一个关于SMARTFROMS涉及到的信息集--------------------

1, 对于一个FORM要指定一个STYLE则在FORM ATTRIBUTE的STYLE中设置.

2, 在FORM中做多语言维护,用LOGO LANGUAGE进行维护就OK.如果要与COMMAND中的CODE对应,需要条件中输入CODE中相同的判断.

3, 在TEMPLE中要显示几行文本就用几个TEXT来控制, 动态显示ITEM的情况用TABLE和LOOP来进行控制.

4, 在TABLE中画线,可通过与表的SELECT PATTERN结合实现.

5, 要调用一个表或结构的字段,需先在GLOBAL DEFINITIONS中进行,变量名称的定义,然后引用字典中定义的表或结构.(其实最后都要通过ABAP程序的内表进行传输)

6, 在一个TABLE中加字段循环,首先要为变量设置一行,而这一行的值在TABLE中建一个循环,然后在循环下建一新行,此行的类型就是为它留的那行,之后为每个列建立一个文本,此文本的值可直接从表接口拖过来. 还有点需注意的是LOOP下的INTERAL TABLE等同于TABLE中的INTERNAL TABLE.

7, 用ABAP调用SMARTFORM用到的功能模块是: SSF_FUNCTION_MODULE_NAME之后调用IMPORTING中从FM_NAME传过来的FUNCTION FM_NAME.

8, 如果在ITAB中引用的是一个DDIC定义的TABLE或STRUCTRUE则TYPE ASSIGNMENT用LIKE, TYPE 无效.

9, 字段内容一定要放在TABLE的MAIN AREA中进行LOOP循环才得以显示.

10, 为了避免重复显示内表记录的问题,在TABLE DATA 中把ROW设成功1到1 .

11, 在用ABAP调用SMARTFORM时,TABLE下的参数内表是FORM中定义的内表名.

注意这里的名称一定要相同,不然会报RUNTIME的错误.

-----------------2005-12-15到2005-12-22------------- ---------------

1, 如果在用LSMW导SO的时候出现选择销售范围的情况,这和具体的售达方有关系,还有在EXCEL中表示的日期格式去掉特殊符号eg: 24.11.2005写成 24112005.

2, 在用LSWM录制SO的ITEM时输入物料号和数量后不按回车,直接点击保存按扭.

3, 对内表某个字段进行填值操作(此字段初始值为空): ITAB-NUMBER = COUNTER.

MODIFY ITAB. COUNTER = COUNTER + 1.

4, 如果要在屏幕1000的基础上自建一个101SCREEN则定义为:

selection-screen begin of screen 101.

Select-options: matnr for mara-matnr.

Selection-screen end of screen 101.

最后调用它: CALL SELECTION-SCREEN ‘0101’ STARTING AT 10 10.

---------------2005-12-15到2005-12-22--------- ----------------

1, 如果在用LSMW导SO的时候出现选择销售范围的情况,这和具体的售达方有关系,还有在EXCEL中表示的日期格式去掉特殊符号eg: 24.11.2005写成 24112005.

2, 在用LSWM录制SO的ITEM时输入物料号和数量后不按回车,直接点击保存按扭.

3, 对内表某个字段进行填值操作(此字段初始值为空): ITAB-NUMBER = COUNTER.

MODIFY ITAB. COUNTER = COUNTER + 1.

4, 如果要在屏幕1000的基础上自建一个101SCREEN则定义为:

selection-screen begin of screen 101.

Select-options: matnr for mara-matnr.

Selection-screen end of screen 101.

最后调用它: CALL SELECTION-SCREEN ‘0101’ STARTING AT 10 10.

-----------------2006-01-17到2005-01-20-------------------------

1, EDI的处理流程: OUTBOUNDPROCESS->从SAP传到操作系统并转换成FILE TEXT格式->通过VAN传到合作伙伴方->OS到SAP->用SAP的EDI创建APPLICATION DOCUMENT->生成相应的文档(PO,SO,PP)

2, 处理某事件后弹出一个信息提示窗口: call function ‘popup_to_inform’ exporting title1= ‘xx’ txt1 = ‘xxx’. 另一种不弹出的则为: MESSAGE SY-REPID TYPE ‘I’.

3, 要在一个类未定义之前引用此类: CLASS A DEFINITION DEFERRED.

4, 获取一个内表共有多少行,使用函数 LINES( ITAB ) .

5, 要想调用一个CLASS中定义为PROTECT的方法,需继承过来用PUBLIC的方法进行CALL METHOD.(其实有很多种方法)

6.参数选项在EVENT中定义为哪种类型如EXPORTING则在RAISE EVENT时如果用到参数也用 EXPORTING VALUE = ‘XXX’.

抱歉!评论已关闭.