SAP变量用法.docx

上传人:b****1 文档编号:1589195 上传时间:2022-10-23 格式:DOCX 页数:20 大小:25.02KB
下载 相关 举报
SAP变量用法.docx_第1页
第1页 / 共20页
SAP变量用法.docx_第2页
第2页 / 共20页
SAP变量用法.docx_第3页
第3页 / 共20页
SAP变量用法.docx_第4页
第4页 / 共20页
SAP变量用法.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

SAP变量用法.docx

《SAP变量用法.docx》由会员分享,可在线阅读,更多相关《SAP变量用法.docx(20页珍藏版)》请在冰豆网上搜索。

SAP变量用法.docx

SAP变量用法

SAP系统变量用法----ABAP程序系统字段中英文详解SY-SUBRC:

系统执行某指令后,表示执行成功与否的变量,’0’表示成功

SY-DBLNT:

被处理过的记录的笔数

SY-UNAME:

当前使用者登入SAP的USERNAME;

SY-DATUM:

当前系统日期;

SY-UZEIT:

当前系统时间;

SY-TCODE:

当前执行程序的Transactioncode

SY-INDEX:

当前LOOP循环过的次数

SY-TABIX:

当前处理的是internaltable的第几笔

SY-TMAXL:

Internaltable的总笔数

SY-SROWS:

屏幕总行数;

SY-SCOLS:

屏幕总列数;

SY-MANDT:

當前系統編號(CLIENTNUMBER)

SY-VLINE:

画竖线

SY-ULINE:

画横线

SY-PAGNO:

当前页号

SY-LINSZ:

当前报表宽度

SY-LINCT:

当前报表长度

SPACE:

空字符串

SY-LSIND:

列表索引页

SY-LISTI:

上一个列表的索引

SY-LILLI:

绝对列表中选定行的行号

SY-CUROW:

屏幕上的行

SY-CUCOL:

光标列

SY-CPAGE:

列表的当前显示页

SY-STARO:

真实行号

SY-LISEL:

选择行的内容,长度为255

SY-LINNO:

当前行

系统内部有一个专门存放系统变量的结构SYST,其中最常用的系统变量有:

SY-SUBRC:

系统执行某指令后,表示执行成功与否的变量,’0’表示成功

SY-UNAME:

当前使用者登入SAP的USERNAME;

SY-DATUM:

当前系统日期;

SY-UZEIT:

当前系统时间;

SY-TCODE:

当前执行程序的Transactioncode

SY-REPID:

ABAP程式名,目前的主程式

SY-CPROG:

ABAP程式名

SY-SYSID:

R/3系統,R/3系統名稱

SY-UCOMM:

畫面,PAI驅動的功能代碼,一般用來參照定義變量

SY-INDEX:

当前LOOP循环过的次数READTABLEit_poINDEX1此時變量值1

SY-TABIX:

当前处理的是internaltable的第几笔

下面說下sy-index和sy-tabix的區別

sy-index和sy-tabix都是系统字段,用来记录循环的次数。

sy-index在DO....ENDDO循环里有效,而sy-tabix在loopat......endloop里有效。

運行下面的例子能更好的理解:

DATA:

BEGINOFline,

col1TYPEi,

col2TYPEi,

ENDOFline.

DATAitabLIKETABLEOFlineWITHHEADERLINE.

DO30TIMES.

line-col1=sy-index.

line-col2=sy-index*sy-index.

APPENDlineTOitab.

ENDDO.

LOOPATitab.

DO2TIMES.

WRITE:

/'sy-tabix:

',sy-tabix,itab-col1,

'sy-index:

',sy-index,itab-col2.

ENDDO.

ENDLOOP.

sy-dbcnt:

Sy-dbcnt代表有多少条记录被处理了

例如:

當我們查詢記錄放入內表,判斷內表中是否有數據就可以用 ifsy-dbcnt=0MESSAGEs000.

STOP.ENDIF.

sy-tfill:

返回当前内表(InternalTable)内的记录数。

但是要小心,那些字段随各自的内表(InternalTable)改变。

例:

如果你循环(Loopat)(读取)itab,sy-tfill返回itab的记录数。

如果你在循环(Loopat)(读取)内表(InternalTable)itab的内部嵌套循环(Loopat)(读取)内表(InternalTable)jtab,sy-tfill返回的不再是itab

的记录数,而是jtab的!

所以如果你需要使用itab的记录数,请先把sy-tfill的值传递给其它变量。

无论如何,sy-tfill永远保存当前的记录数。

例如記錄內表記錄條數:

DESCRIBETABLEitabLINESsy-tfill.

SY-TMAXL:

Internaltable的总笔数

SY-SROWS:

屏幕总行数;

SY-SCOLS:

屏幕总列数;

SY-MANDT:

当前系统编号(CLIENTNUMBER)

SY-VLINE:

画竖线

SY-ULINE:

画横线

sy-pagno当前页号

sy-lsind列表索引页

sy-listi上一个列表的索引

sy-linsz当前报表宽度

sy-lilli绝对列表中选定的行号

sy-linct当前报表长度

sy-curow屏幕上的行

space空字符

sy-cucol光标列

sy-cpage列表的当前显示页

sy-staro真实行号

sy-lisel选择行的内容,长度为255

sy-linno当前行

SY-MANDT:

當前系統編號(CLIENTNUMBER)

SY-SLSET:

SY-SUBRC的含义

=================FUNCTIONMODULE(或RFC中)SY-SUBRC的含义================

使用SELECT语句选择查询:

SY-SUBRC=0:

至少有一行数据,当ENDSELECT语句执行完,SY-DBCNT中保存着记录的个数。

SY-SUBRC=4:

没有数据。

SY-SUBRC=8:

只有使用“SELECTSINGLEFORUPDATE”时才会有,

表示:

WHERE条件指定的记录不止一行,结果是没有记录被选中。

使用INSERT语句,向表中插入一行,必须注意INSERT的顺序与表中字段的顺序一致:

SY-SUBRC=0:

插入成功,SY-DBCNT包含了插入的行数,0或1。

SY-SUBRC=4:

由于有相同的KEY存在,所以插入失败。

使用LOOP语句来遍历一个内表:

SY-SUBRC=0:

循环至少被执行一次。

SY-SUBRC=4:

循环没有被执行,可能是没有数据,也可能是没有符合条件的记录。

使用DELETE语句来删除一条记录:

SY-SUBRC=0:

找到一行并删除之,如果该表有不唯一主键,也就是有多条重复的记录,则只删除第一条记录。

SY-SUBRC=4:

没有找到符合条件的记录,也没有删除。

使用UPDATE语句来更新一条记录:

SY-SUBRC=0:

找到记录并更新,(如果有多条记录呢?

SY-SUBRC=4:

没有找到符合条件的记录,也没有更新。

ABAP程序系统字段中英文详解

-注_华亭慧剑译

系统字段由ABAP运行时环境填写,并且可以用来在ABAP程序中查询系统状态。

除了一个例外(sy-repid),系统字段都是变量,但是它们都是只读的。

此外,更多程序执行的重要信息通常都被丢弃。

ABAP程序中的系统字段只在极少需要控制系统行为的时候才能被重写。

SystemfieldsarefilledbytheABAPruntimeenvironmentandcanbeusedinanABAPprogramtoquerysystemstatuses.Withoneexception(sy-repid),systemfieldsarevariables,buttheyshouldonlybeaccessedonaread-onlybasis.Otherwise,importantinformationforfurtherprogramexecutionoftengetslost.SystemfieldsinABAPprogramscanonlybeoverwritteninafewcasestocontrolsystembehavior.

对于例外的sy-repid,这个系统字段的数据类型在ABAP字典的SYST结构(6.10版以后)中定义,作为sy结构(也可以用SYST来定位)的组件在ABAP程序中有示例。

sy结构在一个内部会话期间内只存在一次,并且在这个内部会话期间内被所有程序使用。

下表列出了在ABAP程序中可以使用的系统字段。

所有sy结构的其他组件则或者在ABAP运行时环境内部使用或者已经废弃。

Withtheexceptionofsy-repid,thedatatypesofthesystemfieldsaredefinedintheABAPDictionaryinthestructureSYST(asofrelease6.10),andareinstantiatedinABAPprogramsascomponentsofthepredefinedstructuresy,whichcanalsobeaddressedusingSYST.Thestructuresyexistsonlyonceinaninternalsessionandisusedbyallprogramsofaninternalsessionatthesametime.ThefollowingtableshowsthesystemfieldsthatcanbeusedinABAPprograms.AllothercomponentsofthestructuresyareeitherintendedforinternalusebytheABAPruntimeenvironmentorareobsolete.

名称

Name

类型

Type

说明

Content

sy-abcde

c(26)

包含了字母表。

可以用来通过指定偏移/长度直接访问独立的字母,而无需考虑代码页。

Containsthealphabet.Canbeusedtoaccessindividuallettersdirectlybyspecifyingtheoffset/length,regardlessofthecodepage.

sy-batch

c

(1)

在一个后台运行的ABAP程序中设置为“X”,否则就是初始值。

Setto"X"inanABAPprogramthatrunsinthebackground,otherwiseinitial.

sy-binpt

c

(1)

在批处理输入会话中设置为“X”,在ABAP程序中调用usingCALLTRANSACTIONUSING。

否则就是初始值。

Setto"X"duringprocessingofbatchinputsessions,andinABAPprogramscalledusingCALLTRANSACTION

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1