【岗位说明书】SAPABArogrammingIntroduction
《【岗位说明书】SAPABArogrammingIntroduction》由会员分享,可在线阅读,更多相关《【岗位说明书】SAPABArogrammingIntroduction(98页珍藏版)》请在装配图网上搜索。
1、【岗位说明书】 SAPABArogrammin gIntroduction zn non Introduction to ABAP/4 Author: Date: Dec, 2002 [一 Overview SAP/R3的鹰用程式是在 ABAP Workbench璟境中^^,使用的程式言吾言 SAP命名悬 ABAP/4(Advanced Business Application Programming),依不同的功能,程式型魅(Program Type)可分成: Type 1 Type 1程式轨行谩程首先H User输
2、入参数在输入逗撵重面上,根掳数僚件自Database中H取资 料,最彳爰符结果示在输出重面上 ,道槿程式在 SAP上通常幸艮表程式(Reports),你也可以在程 式中使用Submit指令去轨行另一支幸艮表程式,符输入参数傅入. Type M 使用重面程序控制(Screen flow logic control)虑理程式不同功能,轨行需使用Transaction code感程式 的第T固重面(Initial screen),虑理的重面要使用 Screen Painte褛tF工具,整彳固程式由官午多的 screen所 成,也被耦作悬 module pools. Type F Type
3、F 程式包含数彳固Function modules ,不能由transaction code 感回J而是另一支程式所呼叫轨 行,因可包含算午多的 Function modules, 也被耦作悬 Function groups .使用的工具悬 Function Builder . Type K 不能由 transaction code 改勤,包含数彳固 global classes , Type K 程式class definitions .使 用 Class Builder 悬工具. Type J 同檬不能由 transaction code 改勤,包含数彳固 global in
4、terface , Type K 程式interface definitions .使用 Class Builder 悬工具. Type S 不能由transaction code 改勤,包含数彳固副程式 (subroutine), Type S 程式耦悬 subroutine pool , 不能包含screen叙述. Type I ABAP program 使用 INCLUDE 指令符 Type I程式includes,目的在减少程式石房,可以在另 Type I的程式包含迤来,通常使用在资料宣告及程式 K ABAP Statement 附注明(Comments):在每列程
5、式的第一偃I位置檄明 *或在同一列的任一位置以 "檄示.程式 每列第一偃I字必须是 ABAP指令,如 write Test program 每列程式的最彳爰必须以 .檄示程式结束. 指令的型魅可分成: 宣告U料(Declarative Statements) 宣告程式孰行所需燮数名耦,如TYPES, DATA, TABLES 模宣告指令(Modularization Statements) 在ABAP程式中宣告11^1叙述: ? Event Keywords AT SELECTION SCREEN, START-OF-SELECTION, AT USER-COMMAND
6、? Defining keywords FORM ..…ENDFORM, FUNCTION ... ENDFUNCTION, MODULE ... ENDMODULE. 控制指令(Control Statements) 根摞资料值修彳行程序 ,如IF, WHILE, CASE 呼叫指令(Call Statements) 呼叫模程式叙述 (modulation statement), 如 PERFORM, CALL, SET USER-COMMAND, SUBMIT, LEAVE TO 算指令(Operational Statements) 轨行资料的^算如 WRITE, MOV
7、E, ADD It料康指令(Database Statements) 轨行资料康槽案的It理 ,可使用Open SQL或Native SQL言吾法. Open SQL Open SQL 依循檄型SQL92言吾法,透谩资料康介面至资料理资料 ,如SELECT, INSERT, and DELETE.但不包含WWI定薪吾法,如 CREATE TABLE 或 CREATE INDEX. Native SQL Native SQL 直接存取资料康不透谩资料康介面 ,在一月^的ABAP程式3t不使用.只使用在某些 特殊资料康虞理,如Data Dictionary 即是使用 Native S
8、QL 去Create Table Creating and Change Program Using ABAP Editor 使用 ABAP Editor 直接来褊It程式,轨彳T Transaction code SE38(Tools-> ABAP Workbench -> User Interface -> ABAP Editor). Prog ran fCHOU804 Crea te Subobjecrs/ Source code Var iani5 Attributes IkicLmEnrati on Q Text elements Di 印 lay )
9、Cha 晔 .Source Code ABAP程式重面 Variants 定兼程式轨行畤输入楠位的值 ,存入指定Variant名耦,轨行程式日寺可供逗取 Attributes (1) .Title:程式描述或功能^明 (2) .Type :Execute mode: 1: Stand-along Program 如 Reports 1: Include Program M: Module Pool F: Function Group S: Subroutine Pool (3) .Status :Program development status: P: SA
10、P standard production program K: Customer production program S: System program T: Test program (4) .Application: 程式所腐的 application module, 如 F 表 Financial acounting (5) .Development class:用於同一 SAP系统中各彳固program,用於停至另一 SAP系统,测封港1式可 使用$TMP ? Documentation 撰K程式相信封的程式文件 . ? Text elements 指定程式tex
11、t elements 的内容,用在程式轨行日寺的输入提示叙述或幸艮表输出 Begin to Writing ABAB Program 以撰示系统日期日寺^的程式卷例 ,需求输出卷 This is my first ABAP Program System Date: 12/29/2002 System Time: 16:58:51 Step1: Assign Program Name 孰彳T Transaction code SE38(Tools-> ABAP Workbench -> User Interface -> ABAP Editor). Piogratn SCH012
12、0020011 g) [□ Create 5ubot)jECt5 9 5口um code 怕 r iants 口 kttrilbutes Uocumentatwn / Tux t elecaents q Di splay 夕 Change It入程式名耦悬 ZCHOU2002001, 第一偃I字母 Z或丫表Add-on Program, 按 n Create Step2: Edit Program Attribution ft入 Title, Type 及 Status 彳爰按 号A3AP: Program ATtiibutes 2noJNtlK口口: ChanEe
13、 Step3: Assign Development Class Local object 如果^目的,逗择 ft 入指定的 Development Class, Step4: Writing Program Source Report ZCHOU2002001 Inactv. [第]□同 百扇ii匾 画面 EEPORT ZCHOU200200r. 可RITE: / This is iy first ABAP progran1. 可RITE: / System Date: 1 ,SY-DATIJM . 可RITE; / System Tli^: 1 PSY-UZEI
14、T. WRITE指令悬符之彳爰的资料输出在蛰幕上 ,加上/表示跳列 Step5: Statement Syntax Check ■Program-〉Check-> Syntax check 或按Ctrl + F2检查言吾法是否瓢嵌^ ,需完全没有^嵌^程式才 可孰行. Step6: Save Program SProgram-〉Save 或按 Ctrl + S I?存程式. Step7: Active Program Program->Active 或按 Ctrl + F3 Active 程式,如果程式未 Active 同M堇能使用 ABAP Editor 轨 行,不能使用Tra
15、nsaction code 或由另一程式呼叫. Step8: Execute Program SProgram-> Execute 或按 F8 轨行程式. Step9: Display Result 如果程式^至It出重面II示结果 : _ 白| q e[曰闻圈|豹的电团]_国 Tra in ing Program Training Program This is iy first ABAP proeran System Date: 11/29/2002 System Tine: 16:58:51 Step10: Left Display Screen 按下 或F3回
16、Source Screen, 恭喜你!你已^完成彳第一偃I ABAP/4 Program. Dat Data Type SAP的H料型熊名耦最是:& 30他I字元,使用型熊可分成三H : Predefined Data Type 由SAP系统定兼的资料型熊,做悬程式中资料宣告及槽案楠位型熊 ,有下列黑槿: Type Length Range Initial Value Description C 1 1-65535Byte Space 字串资料,如Program F 8 8Byte 0 浮黑恻 P 8 1-16Byte 0 Packed数,用在
17、小数黑占数 I 4 -2人31 至 2A31-1 0 整数 N 1 1-65535Byte 00 …0 数值所^成的字串 D 8 8Byte Oooooooo 日期资料,格式潟1 YYYYMMDD T 6 6Byte 000000 日寺^资料,格式热HHMMSS X 1 1-65535Byte X’00 16迤位数 STRING Dynamic 1-65535Byte Space JI度不固定的字串 Local Data Type in Program 用在程式中宣告自定的资料型魅 ,使用TYPES指令宣告 TYPES
18、
19、ionary(Transaction code SE11) 定H , 冢 rans pa rmt" taliTe VBAK Active Short description Attributes Sales DocLiienc. Headei Eata Fitlds picM type Eaca Type 山. Chtc . Short rtAt GVLDT GffLDT _DATS 8 juarantee date SUEKI SUBHI SD CHAR 10 Collective number (5D)
20、 L1FSE LIFSK CHAR 2 TVLS Deliveiy block (document header) 1 F螳罪卡缺、一 2 TVFS Billing block in 5D dociuinent HETUR WETPR AK CURE J) 15 Net Value of the Sales Order in Duct皿ent Qjriency 叫 EEK_ 谕ERK _匚呼/ 5 Tme 5D document currency ?K0RG H VKORG CHAR 4 ITO
21、 Sales DrianisatiDii PTIEG H VTVEG CHAR 2 TVKQV Distribution channtl A — SPAR! ID SPART CHAR 2TVTA Division * 园寻同lg囱 New rows D& e element/Di red type fields \ CuTienc^quan:. fieldi 如上6I檄示资料型熊名耦悬 VBAK-NETWR, 是度及其它腐性在 Data Element NETWR_AK ”定兼 Data Objects Data Objects
22、存在於程式轨行期^ (run time),在程式中先宣告 Object Name,自U料康槽案或程式 ^算得到的结果都要先存入 Data Object中供程式其它指令轨行. 二 Literals 以下是合法的资料表示: Numeric Data 1000 -3500 125.56 12E2 ??? 小数黑占数及科擘符虢瓷料前彳爰必以 Text Data Neihu, Taipei Kenny "s Document 字串前彳爰必须以 ‘檄示. Text Symbols 在ABAP Editor中的 Text Elements指定,Symbol ID 篇3礁
23、,曾瞬上自001 始褊礁 Pros 整国 ZCIDV2002002 Active Tcjst ( 5rIrction trarg Li it hrgdtngi 团花画阚 国道 Text > 1 ti El cc tram c Inc JI diLen rn 0 (I n o- □LEH. 0 如上6I靶例,程式中使用悬 WRITE:/ text-001. 惭出结果左y : Delta Electronics Inc, Variables 名耦最是悬30 Character,第一偃I字元必悬英文字母 避免使用特殊符虢,使用DATA指令宣告: (
24、A-Z),由文数字及特殊字元成 (—)所<!成, Example: DATA: age TYPE I. Predefined data type 使用 TYPE Example: DATA: money LIKE VBAK-NETWR. Dictionary Object 使用 LIKE Example: DATA: BEGIN OF ADDRESS, CITY(20) TYPE C, STREET(30) TYPE C, TEL LIKE ADRC-TELFX, END OF ADDRESS. 宣告 Structure ADDRESS 包含 CITY
25、 ,STREET,TEL 楠位. * Constants Constants悬在程式中所指定的固定值 名^度最是30彳固字兀 Syntax: CONSTANTS [VALUE Example: CONSTANTS: Example: CONSTANTS
26、ta Objects 由SAP系统定兼的 Data Objects, 如: SPACE Data Type 篇C, <度1彳固字元,是T固Constant, 值悬空白字元 System Object SY-SUBRC 系统轨行傅回值,0表示成功 SY-UNAME logon 巧 SY-DATUM 系统日期 SY-UZEIT 系统畤 SY
27、-TCODE 目前的 transaction code
得知所有 System Object
可至 Dictionary 查Structure SYST
Processing Data
Assign Value
Syntax:
MOVE 28、c1>所有楠位内容存至 Structure 29、U , NAME-LASTNAME 建成 CHOU 而NAME-E_MAIL 即不燮
Syntax:
MOVE 30、N的内容建成 0
I 可 Numeric Operand
** 乘幕
* 乘
/ 除
+ 加
- 3成
DIV 整数除法
MOD 绘数除法
在^算符虢前彳爰至少需一偃I空白字元 .
Example:
Amount = Qty * Price.
「乡 Numeric Function
1.ABS( N ):停回数值N的触射值
2.SIGN( N ):
1 if N > 0
0 if N = 0
-1 if N < 0
3 .CEIL(N):傅回大於数值 N的最小整数
Example:
WRITE CEIL(-5.65) 印出 500
WRITE CELL 31、(4.54) 印出 5.00
4 .FLOOR(N):傅回小於数值 N的最大整数
Example:
WRITE FLOOR(-5.65) 印出 600
WRITE FLOOR(4.54)印出 4.00
5 .TRUNC(N):停回数值N的整数部分
Example:
WRITE TRUNC(5.65) 印出 5.00
6 .FRAC(N): 停回数值 N的小数部分
Example:
WRITE FRAC(5.65)印出 0.65
7 .COS(A),SIN(A),TAN(A): 停回三角函数 cos A, sin A, tan A 的值,A 悬蟀度量
8 .EXP(N): 32、停回 eAN 值
9 .LOG(N):停回 log eN 值
10 LOG10(N): 停回 log N 值
11 .SQRT(N):停回N的平方根值
Date and Time Data Calculation
1 .日期资料的^算
日期资料可以直接^算,如加法舆减法的^算
Example:
DATA: Mdata TYPE D.
Mdate = SY-DATUM. “如停回 19971015
Mdate+6(2) = 01 Mdate 建成 19971001
Mdate = Mdate - 1 “Mdate 建成 19970930
2 .日寺^资料的^算
日寺^ 33、格式悬 hhmmss,如 212030 表’21:20:30
Example:
DATA: HOURS TYPE I,
MINUTES TYPE I,
T2 TYPE T VALUE 200000
T1 TYPE T VALUE 183000 HOURS = (T2 - T1) / 3600. 算有黑小日寺
MINUTES = (T2 T1) / 60. 算黑分金童
T2 T1得到结果的军位悬秒
String Object Calculation
「Shifting field contents
Syntax:
SHIFT 34、 35、月等字串 36、 LOWER CASE. 傅成小嘉
4.Searching character string
Syntax:
SEARCH 37、
得到6
LEN = STRLEN( ABC ). 得至 U 3
6.Substring
38、en Tea! ’.
LEN = STRLEN(NAME). “得到 20
CONDENSE NAME.
LEN = STRLEN(NAME). “得到 10
CONDENSE NAME NO-GAPS.
WRITE:/ NAME. 得到的结果是 GreenTea! 是度建成 9
8 .Concatenating character fields
Syntax:
CONCATENATE 39、i>] 可以 40、字元 41、.
AND
:且
8.
OR
:或
9.
NOT
:非
Branch Coi
ntrolling
1.
IF述叙
Syntax:
IF 42、ntax:
CASE 〈燮数 f>.
WHEN〈Value1>.
〈Statement。
WHEN 43、g is A
包
L Loop Controlling
Syntax:
WHILE 〈Condition〉.
〈Statement Block〉
ENDWHILE
Example:
I = 1.
S=0.
WHILE I <= 10.
S = S+I.
I=I+1.
ENDWHILE.
WRITE: / 1+2+3+ …+10= ,S
轨行结果悬:1+2+3+…+10=55
1. SY-INDEX
SY-INDEX 悬言己金氮1圈次数的 System Object. Data type 悬整数型魅
2. Skip to next loop
CONTIN 44、UE
跳至迥圈的下一次
Example:
I = 1.
WHILE I <= 3.
IF SY-INDEX = 2.
CONTINUE.
WRITE: / SY-INDEX.
ENDIF.
I = I + 1.
ENDWHILE.
轨行结果:
1
3
3. Condition check for next loop
CHECK 45、DWHILE.
轨行结果:
2
3
4
4. Terminated from loop
EXIT
跳雕迥圈叙述
Example:
I = 1.
WHILE I <= 10.
IF SY-INDEX = 4.
EXIT.
ENDIF
WRITE / SY-INDEX.
ENDWHILE.
轨行结果:
1
Output and Input Commands
WRITE command
蛰幕上ft出 Data Object内容
Syntax::
WRITE [ / ] 46、mple:
WRITE This is sample
WRITE: COMPANY: :STFL-CARRID.
Represent position
Syntax:
WRITE [ / ] [ 47、ITE: /(5) NUMBER.
WRITE: /(6) TEXT.
输出结果:
*7890 aaa
ABCDEF 字串资料由左至右取出 5偃I字元
Output Formatting
Syntax:
WRITE 48、位小数位数
F(浮黑占矍攵)exponent的值
四拾五人至小数位数下 r位
整别II示
日期示格式
RIGHT-JUSTIFIED
UNDER 49、E 112030, A(5) VALUE ABCDE .
WRITE X USING EDIT MASK
It出结果悬 11:20:30
WRITE X USING EDIT MASK $,
It出结果悬 $112,030
SKIP command
Syntax:
SKIP [ 50、e> AS SYMBOL
WRITE 51、
Asscnib lc a WRITE Sts /I
I can s
in 1 i q M
—
◎ Copy 赦 Display Initialize
Icon
Name
Prints bl
Ontput froca
ICOH_NEXr_VALUE ICON PREVIOUS VALUE
y
y
Fid
iconIejecute.object
V
Wol |5YM_*
ICO]f_SELECT_SrUL
ICOK_PRINT
ICOH_CDPy_比犯口1
ICOW_t
l/
52、1/
3 Line LINE *
ICOH SORT DOW
V
Checkbsx
1COM S3RTJP
IOT SEARCH
ICON INSERT ROW
11/
Ol tpiu t to
II/
X
Struct-
t口 naw J ine
_| Ttii thcut liai 1 ing blank
ICOlf_DELETE_RO1 ICO]f_OiAUGE_TEXr IC01T_CREiTE_IEXr icoujisplayjekt ICOK.ANNOTATION ICOJ.CREiTEJIOTE ICOlf.DISPLAY 53、 HOTE ICOlf ADDRESS
8
1/
/
1/
1/
undtr fid
1/
a
K
Color HcOL_*
I COILGRAPH ICS ICOIJNFDRSATIOW ICON_CALCULATIOW
it/
| Intcnsi f icd display
1 Invtrse display
Di splay Es inpu t fi =!d
/ l/
.
*
L
Di splay . hotsuDt
/ aoose M ffl
nm>n
多 Display data as check box
54、
以字串资料内容的第一偃|字元悬 CHECK BOX的输出,如果是空白,CHECK BOX 示
悬空白,相反HUil示X ,可用在暹辑判H检查
Syntax:
WRITE 55、
Flag 2:
一 PARAMETERS command
基本的输入命令,^似如BASIC的INPUT命令,It入 Data object内容,但瓢法使用 F(Floating)
资料格式
Syntax:
PARAMETERS [LIKE 56、l.lLtf
AGE 32
BIRTH USfVn/19f>6
在日期的 It 入格式上悬 MM/DD/YY , MM/DD/YYYY , MMDDYY
或 MMDDYYYY , 如It入 020165 表 1965 年 02 月 01 日,舆 02/01/65
的输入是一檬的,日期输入靶圉悬西元 1950年至2049年
LIKE
指定输入箭逗逗撵悬 57、 DELTA ,
BIRTH TYPE D DEFAULT 19650201 .
LOWER CASE
ABAP/4 J1骰:是符字串输入值自勤醇换卷大K ,加上此参数曾符输入的资料
醇成小K ,
OBLIGATORY
弓金制要求输入,螯幕上曾出现一彳固 ?,使用者必要输入值.
AS CHECKBOX
输入CHECKBOX的格式
Example: PARAMETERS: TAX AS CHECKBOX DEFAULT X, NTD AS CHECKBOX.
轨行结果:
g : TAX |— IM TO
RADIOBUTTON GROUP 58、O BUTTON GROUP 的方式
Example:
PARAMETERS: BOY RADIOBUTTON GROUP SEX DEFAULT X,
GIRL RADIOBUTTON GROUP SEX.
轨行结果:
BOY [ff]
GIRL C
SELECT-OPTIONS command
修件甄圉输入重面指令,
Syntax:
SELEC-OPTIONS 59、CONNID.
符修件的It入值存放入 AIRLINE,箭国圜载^ SPFLI中的CONNID楠位
轨行结果:
Selediora options
如 RUNE
可直接输入起始靶圉或按下逗择重面 ,输入完彳爰按下左上角的轨行H
From search help
按下输入]1的右遏往下箭H ,叫出育德量巽择楠位 Table中资料XK ,逗取^始和结束的甄圉
Selection Options
轨行日寺按下 Edit”-> Selection options ”输入Option及Sign 11数内容,蛰幕如下
M ID
Description
Single value
60、
Greatei than ci equal to
Lt5 5 tWn 口 i rquml to
Greatei than
Lr5 5 tlian
Nat equal to
_ I k「,.
105Elec1: | ■ Ek elude frcim 弓2 1,2匚 tiu ►
Multi-Options
按下最右遏的 4 H,输入僚件逗取的甄圉,重面如下
O Single s OO QO Sinfile a I s , Rarges
可输多彳固不速^值或修件靶圉,修件输入完彳爰按下 口
DEFAULT
^定^始结束甄圉输入51^值
Example:
61、SELECT-OPTIONS: AIRLINE FOR SPFLI-CONNID
DEFAULT 2042 TO 4555
NO-EXTENSION
骰:定不要Multi-Option ft入重面
NO INTERVALS
定不要甄圉输入重面
LOWER CASE
输入醇换成大瘾
OBLIGATORY
弓金制要求输入
SELECTION-SCREEN command
如外框等.
SKIP [ 62、ck> FRAME [TITLE 63、ION-SCREEN
[WITH
SELECTION-SCREEN
Example:
SELECTION-SCREEN
PARAMETER R1
PARAMETER R2
PARAMETER R3
SELECTION-SCREEN
RADIOBUTTON
GROUP
GR1.
RADIOBUTTON
GROUP
GR1.
RADIOBUTTON
GROUP
GR1.
END OF BLOCK
RADIO.
int Internal Tables
ABAP/4的Internal 64、Table如同其它言吾言的 Array资料结情,由言午多具有相同楠位的言己金泉所仙成 ,
在程式孰行中存於系统制随ft ,在虑理上可以有^^,删除,新增插入等功能.
自 SAP R/3 4.0 彳菱 Table type 可分成:
Standard Table
Standard table 具有 internal linea门ndex ,在U料H取日f可藉由 index 或 key field 至U料位置,key field可指定悬可重覆值(non-unique)或不可重覆值,所以在增加新言己金翱寺速度较快,但H取U料祝 table4图肇数而定,Mtm愈多,速度愈慢.
Sorted 65、Table
同檬也具有internal linear index ,在U料H取日f可藉由 index或key field 至U料位置,在key field 可指定悬可重覆值(non-unique)或不可重覆值,U料取速度相封 standard table较快,新增加言己金录 日寺由於key field ^故较慢.
Hashed Table
没有internal linear index , U料取日寺藉由 key field 做二元搜尊(binary search),搜尊速度不受4 1sli 数影!!是固定的,key field 一定要指定悬不可重覆 (unique),较遹合用在大量肇数 66、的 internal table M
理.
sapDB table 分为三种类型:
1 .透明表(Transp table ),这个表中的字段是与数据库里的字段一一对应,是最常用,最多的表
例如:Mara
2 .共享表Pooled Table 在数据库里的存储是存储到一个表中,存储是多对一的关系,可能多个
Pooled Table 存储到一个数据库表。
例如:A004,A005
Cluster Table 存
3 .聚集表 Cluster Table 和Pooled Table 一样,存储也是多对一的关系,区别是
Cluster Table
储关键字段(键),其中有一个字段存储了 Cluster Table的其它字段。注意一点:
除主键其它字段不能写其它表进行连接( join )。
例如:BSEG(BSEG于一般的透明表不同,它是一个簇表。对于一个簇表来说,除了 主键项目外,其他项目都被编辑到一个长文本项目
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。