转:SAP学习笔记(from 神话blog)

SAP学习笔记
作者:神话 日期:2006-01-03


SAP学习笔记
1.如何进行Client的Copy?
 用户(sap*)登录已经存在的Client(如:000),然后用T—CODE(SCC4)或菜单(Tools->Administration-> Administration-> Client Administration->Client Maintenance)进行新Client的创建(如:创建一个新的Client《008》);
 用SAP*登录已经创建的新的Client《008》,然后进行Client Copy,即用T—CODE(SCCL)或者菜单(Tools->Administration-> Administration-> Client Admin->Client Copy->Local Copy/Remote Copy) 进行Copy。[参数文件选择:SAP_ALL]

2.SAP的数据库是如何划分的?
SAP的数据库分为两部份,即Cross-Client和Client-Specific。Cross-Client包括Repository和其他一些东西,其中,Repository这部分组成数据字典;在Client-specific部分,包括应用程序和客户化的表。由于有了Client-specific部分,才使得各个用户的数据得以区分。

3.如何才能在Mini SAP中自由的进行软件开发?
 需要打补丁
 将补丁文件《MBSCORR01042000》拷贝到目录《transtmp》下;
 cd 和执行dbenv.cmd
 cd transtmp和执行....R3trans.exe -i MBSCORR01042000
 Program generate:
Logon on MBS as BCUSER;
execute Transaction SE38;
generate SAPLSTRD and SAPDBF1S
 DDIC不能进行软件开发,需要用BCUSER或者增加新的用户(通过su01)进行软件开发。
新增加的用户,需要进行Access Key才能进行开发;
BCUSER的Access Key:29671482393151224771

4.如何进入开发界面?
通过T—CODE(SE38)或者菜单(Tools->ABAP Workbench->Development->ABAP Editor就可以进入开发界面了。

5.ABAP4的命名程序规则是怎样的?
 使用至少1个但不超过8个字符。
 不要使用下列字符:句点(.);逗号(,);空格( );括号'('')';单引号(');双引号(");等号(=);星号(*);元音变音( , , , , , )和' ';百分号(%)和下划线(_):
 报表程序(以列表格式输出数据分析):Yaxxxxxx或Zaxxxxxx。用应用程序区的分类字母替换a。任何有效字符替换x。注意SAP报表程序遵守相似的命名约定:Raxxxxxx。
 任何其它ABAP/4程序(培训程序或事务程序):SAPMYxxx或SAPMZxxx。用有效字符替换x。注意标准SAPABAP/4程序遵守相似的命名约定:SAPMaxxx,其中a代表某应用程序区。

换行输出,用/就可以了,WRITE / ‘I am star.’


6.指定程序属性的一些关键内容?
进入程序开发界面,输入program名字后,进入程序属性界面(Program Attributes):
 Title(标题):必须输入项;
 Type(类型):包括Executable program(1:如同报表的独立程序)、INCLUDE program(I:包含程序)、Module pool(M:模块存储)
 Application(应用程序):该项能够使系统将程序分配给适当的业务区,如:选择Financial Accounting(F:财务会计)。
 Logical database(逻辑数据库):仅仅应用于应用程序中的报表程序。这个属性决定报表使用哪个逻辑数据库来检索数据,以及逻辑数据库属于哪个应用程序。应用程序中数据库名称必须是唯一的。但是,整个系统可以包括数个同名数据库,因此指定应用程序很重要。如果报表程序直接读取数据,而未使用逻辑数据库,则应该像通常一样指定应用程序,而将“逻辑数据库”字段置空。
 Selection screen(选择屏幕版本):仅仅应用于应用程序中的报表程序。如果没有指定选择屏幕版本,则系统在逻辑数据库选择标准、报表特定参数选项的基础上自动创建选择屏幕;如果想使用自己的选择屏幕,请输入号码同时该号码必须小于1000。
 Editor lock(编辑器锁定):如果设置此属性,则其他用户则不能修改、改名或删除程序。只有创建用户可以更改程序、维护属性、文本摘要及文档或者解除锁定。
 Fixed point arithmetic(定点算术):如果设置此属性,系统则根据小数点位数将类型P字段四舍五入,或用零填补。这种情况下,无论在用户主记录中指定了什么,小数点字符总是句点(.)。
 Start using variant(通过变式启动): 仅仅应用于应用程序中的报表程序。如果设置该属性,则用户只能通过使用变式启动报表程序。在启动程序之前,必须创建至少一个报表变式。

7.如何将事务代码分配给程序?
可以将事务代码分配给类型为Executable program(1)的单独程序,以后就将程序作为事务代码处理。通过T—CODE(SE38)或者菜单(Tools->ABAP Workbench->Development->other Tools->Transactions就可以了。

8.如何进行注释?
可以在程序的任意处插入注释行。在程序中有两种方法表明注释:
 如果要将整行变为注释,则在行开始处输入星号(*)。
 如果要将某行一部分注释,则在注释之前输入双引号(")。系统将由双引号标明的注释解释为空格。

9.预定义的数据类型有哪几种?
C(文本和字符):文本文字最长可达254个字符。如果需要非整型数值或较长的数字(如:'12345678901234567890'、'+0.58498'、'-8473.67'),则必须使用文本文字,该文本文字自动转换到正确的类型。同样,请使用文本文字表示浮点数值。
D:(日期):
F(浮点数): 对于正数和负数,类型F数值范围是1x10**-307到1x10**308,包括0(零)。精确范围近似为15位十进制数,这取决于硬件平台的浮点算法;由于是在内部将类型F数据转换为二进制系统,因此可能出现舍入误差。尽管ABAP/4处理器试图将这些影响减至最小,但是如果要求高精度,则不应该使用类型F数据。而应代之以类型P数据;如果需要大的数值范围,而且舍入误差不重要,则可以使用类型F数据。
I(整型):数值范围是-2**31到2**31-1并且仅包括整数;对算术运算的非整型结果(如分数)进行四舍五入,而不是截断;可用于计数器、项目号、索引和时间期段等。
N(数字文本):虽然由数字组成,但不包含数值,,但这些数字不用于计算。科目号和邮编是典型的类型。
P(压缩号):允许在小数点后有数字;类型P数据的数值范围取决于大小和小数点后的位数,有效大小可以是从1到16字节的任何值,将两个十进制数字压缩到一个字节,而最后一个字节包含一个数字和符号,在小数点后最多允许14个数字;使用类型P数据时,最好将程序属性设置为“定点算法”,否则,将类型P数字作为整型对待;类型P数据可用于如距离、重量和钱数等数值。
T(时间):
X(十六进制):

10.下面是系统字段示例:
SY-SUBRC返回代码值(0,如果操作成功)
SY-UNAME用户的登录名
SY-DATUM当前日期
SY-UZEIT当前时间
SY-TCODE当前事务

11.如何定义内部变量?
 DATA [()] [] [].
注:对于C和N型,如果length不输入,则默认长度为1;对于N型变量,如果值中包括字符,则字符不起作用,只输出数字。如果length大于实际内容的长度,则对于C型来讲,以空字符来填充,对于N型来说,对0来填充。如果指定长度,但未指定类型,则创建给定长度的字符字段。
 例子:Str=’ab123’,NStr = ‘1245ab3’,Int = 100
write 'This is star''s computer.'. 输出:This is star’s computer.
DATA Str type C. 输出:a
DATA Str(5) type C. 输出:ab123
DATA NStr type N. 输出:3
DATA NStr(7) type N. 输出:12453
DATA NStr1 like NStr value ’1234567’. 输出:1234567
DATA Int type I. 输出:100
DATA Pdat(10) type p value '9.876543210' decimals 9. 输出:9.876543210
CONSTANTS PI TYPE P DECIMALS 10 VALUE '3.1415926536'. 输出:3.1415926536
DATA MYNAME LIKE SY-UNAME. 与系统定义的对象SY-UNAME有一样的数据类型
 DATA SUM1 TYPE I.
DATA SUM2 TYPE I.
DATA SUM3 TYPE I.

DATA: SUM1 TYPE I,
SUM2 TYPE I,
SUM3 TYPE I,
是一样的,这就是链语句。

12.如何设置字段串和使用字段串?
DATA: BEGIN OF ADDRESS,
NAME(20) TYPE C,
STREET(20) TYPE C,
NUMBER TYPE P,
POSTCODE(5) TYPE N,
CITY(20) TYPE C,
END OF ADDRESS.
该示例定义了一个长度为73的字段串ADDRESS。可以通过ADDRESS-NAME、ADDRESS-STREET等定址组件。可以将长字段串的声明收集在包括程序中。但是,如果频繁使用该数据结构,则最好将它们保存在ABAP/4词典中。

13.LIKE参数,语法如下:DATA LIKE .
利用LIKE参数,可以将已定义数据对象的数据类型分配给变量。
LIKE参数常用于附属字段以临时保存数据库字段的内容。如果更改数据库字段的属性,则系统自动改写备份字段的属性。
可将任何数据对象用于。利用LIKE参数,可以引用在ABAP/4词典中声明的数据对象的数据类型。
如: DATA NUMBER_1 TYPE P.
DATA NUMBER_2 LIKE NUMBER_1.
DATA MYNAME LIKE SY-UNAME.

14.STATICS 语句:
如果要在过程的运行时间之外仍保留某变量的数值,可以在该过程中利用STATICS语句定义该变量。STATICS语句是DATA语句的变异。语法如下: STATICS [] [] [].
要在过程中将字段串定义为静态有效,请写:
STATICS: BEGIN OF ,
,
..............
END OF .

15.TABLES语句:TABLES
利用TABLES语句,可以创建称为表工作区的数据对象。表工作区是参考ABAP/4词典对象的字段串。
是ABAP/4词典对象的名称,同时也是创建的表工作区的名称。表工作区组件的顺序和名称与在ABAP/4词典中声明的对象相同。
要在ABAP/4词典中创建对象,步骤:Tools->ABAP Workbench->Development->ABAP Dictionary。
表工作区提供一个接口,通过该接口可以将数据从数据库表加载到程序,或利用开放式SQL语句修改数据库表的内容。
要显示表的组件及其数据类型的列表,请在ABAP/4编辑器的命令行中(选择“编辑->其它功能->命令输入”)键入“SHOW”。
要定址表工作区的组件,可以将表名作为前缀,然后用连字符添加组件:dbtab>-
例子:TABLES: SPFLI.
Select * FROM SPFLI.
WRITE: SPFLI-MANDT, SPFLI-CARRID, SPFLI-CONNID, ......
ENDSelect.
示例中,TABLES语句创建表工作区SPFLI。SPFLI与ABAP/4词典中声明的数据库表SPFLI结构相同。在Select循环中,用属于数据库表SPFLI的行填充表工作区SPFLI。


15.TYPES语句:使用TYPES语句创建用户定义的基本数据类型和结构化数据类型。
TYPES: SURNAME(20) TYPE C,
BEGIN OF ADDRESS,
NAME TYPE SURNAME,
....
END OF ADDRESS.
通过TYPES定义的类型不能直接使用,需要通过DATA进行定义其对应的变量后,使用其变量。

DATA: ADDRESS_1 TYPE ADDRESS,
ADDRESS_2 TYPE ADDRESS.

16.内表示例:下列程序是有关如何将结构化数据对象声明为内表的示例。
PROGRAM SAPMZTST.
TYPES: BEGIN OF MYSTRING,
NUMBER TYPE I,
NAME(10) TYPE C,
END OF MYSTRING.
TYPES MYTAB TYPE MYSTRING OCCURS 5.
DATA STRING TYPE MYSTRING.
DATA ITAB TYPE MYTAB.
STRING-NUMBER = 1. STRING-NAME = 'John'.
APPEND STRING TO ITAB.
STRING-NUMBER = 2. STRING-NAME = 'Paul'.
APPEND STRING TO ITAB.
STRING-NUMBER = 3. STRING-NAME = 'Ringo'.
APPEND STRING TO ITAB.
STRING-NUMBER = 4. STRING-NAME = 'George'.
APPEND STRING TO ITAB.
LOOP AT ITAB INTO STRING.
WRITE: / STRING-NUMBER,STRING-NAME.
ENDLOOP.
该程序在屏幕上产生下列输出:
1 John
2 Paul
3 Ringo
4 George
示例中,首先将数据类型MYSTRING定义为字段串。然后,根据字段串MYSTRING,用TYPES语句的OCCURS参数将数据类型MYTAB定义为内表。利用数据类型MYSTRING和MYTAB声明数据对象STRING和ITAB。然后逐行填充内表ITAB的字段。通过使用字段串STRING,在屏幕上显示ITAB的内容。

17.TYPE或TYPES所定义的变量不能直接赋值,只能通过DATA针对TYPE所定义的用户类型进行定义变量,然后使用这个变量。


18.如何确定数据对象的长度?
Data: text(8),len type i. //定义了两个变量
Describe field text length len. //将变量text的长度存放于变量len中
Write len. //打印变量text的长度值

19.如何确定数据对象的类型?
DATA: TEXT(8) TYPE N, TYP. //定义了两个变量TEXT和TYP
DESCRIBE FIELD TEXT TYPE TYP. //将变量TEXT的类型存放于变量TYP中 
WRITE TYP. //打印变量TEXT的类型

19.如何确定数据对象的输出长度?
Data: text type f, len type I, out-len type i. //定义了三个变量
Describe field text length len output-length out-len. //将变量text的长度存放于变量中
Write: len,out-len. //打印变量text的长度值

20.如何确定数据对象的小数位数?
Data: text type p decimals 2,dec. //定义了两个变量
Describe field text decimals dec. //将变量text的长度存放于变量中
Write: dec . //打印变量text的长度值

21.如何确定转换例程?
Data: text type n, exam type i. //定义了两个变量
Describe field text edit mask i. //将变量text的长度存放于变量中
Write: i . //打印变量text的长度值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值