ABAP-Message-操作手册使用书_第1页
ABAP-Message-操作手册使用书_第2页
ABAP-Message-操作手册使用书_第3页
ABAP-Message-操作手册使用书_第4页
ABAP-Message-操作手册使用书_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ABAP开发技术指南-消息(Message)2012年02月01日修改记录制定日期生效日期制定 /修订内容摘要页数版本拟稿审查批准引言目的及范围本文档主要介绍SAP ABAP程序中有关MESSAGE的类型及使用方法,可适用于ABAP开发人员,分析人员使用。参考资料定义消息是SAP系统中常见单行简短信息,也可以视为是系统对程序的一种交互过程,用于在应用程序运行过程中向用户说明程序流程、提供错误信息或者结束提示。消息一般出现在弹出对话框或者屏幕的状态栏中。文档结构文档的各章节介绍的内容如下:第2节 消息类型第3节 消息创建第4节 消息调用格式第5节 消息的显示方式及对程序的影响第6节 消息涉及到的

2、表和系统变量消息类型消息类型决定了消息在运行时的表现形式(例如状态栏信息、对话框信息和运行时错误等)和对程序流的影响方式(例如据需运行程序或中止程序等)。每一个消息都能够以各种不同形式出现在报表程序中(因为消息类型不是预先定义的,而是使用时指定的)。消息类型共有六种(必须为大写):I:Information message(提示消息)Information messages are normally displayed in a HYPERLINK SAPEVENT:%22ABENDIALOG_BOX_GLOSRY%22 dialog box.S:Status message(成功消息)Sta

3、tus messages are displayed in the HYPERLINK SAPEVENT:%22ABENWINDOW_GLOSRY%22 window of the subsequent HYPERLINK SAPEVENT:%22ABENDYNPRO_GLOSRY%22 dynpro in the HYPERLINK SAPEVENT:%22ABENSTATUS_BAR_GLOSRY%22 status bar.E:Error message(错误消息)“E”类型的消息出现在屏幕PAI处理中,从而确保屏幕上的输入字段准备输入。Error messages during the

4、 HYPERLINK SAPEVENT:%22ABENPAI_GLOSRY%22 PAI processing of HYPERLINK SAPEVENT:%22ABENDYNPRO_GLOSRY%22 screens make HYPERLINK SAPEVENT:%22ABENINPUT_OUTPUT_FIELD_GLOSRY%22 input fields on HYPERLINK SAPEVENT:%22ABENSCREEN_GLOSRY%22 screens ready for input.W:Warning(警告消息)“W”类型的消息出现在屏幕PAI处理中,从而确保屏幕字段再次输入

5、。Warnings during HYPERLINK SAPEVENT:%22ABENPAI_GLOSRY%22 PAI processing of HYPERLINK SAPEVENT:%22ABENDYNPRO_GLOSRY%22 screens make screen fields ready for input again.A:Termination message(中止消息)“A”类型的消息会中断程序的处理过程。Termination messages are displayed in a HYPERLINK SAPEVENT:%22ABENDIALOG_BOX_GLOSRY%22

6、dialog box and terminate processing.X:Exit message(退出消息)“X”类型的消息中止正在运行的程序,并且产生一个short dump(即错误日志,可用TCode:st22查看)。Exit messages terminate the running program and create a HYPERLINK SAPEVENT:%22ABENSHORT_DUMP_GLOSRY%22 short dump.消息创建se80创建方法1:如上图,鼠标右键单击Package名,选择菜单Create - More - Message Class,弹出如下对

7、话框:填写对应的Message Class名,点击确定,进入如下窗口:输入相关属性信息,再点击Messages选项卡,在对应的消息编号后输入相应的消息文本,保存后就成功创建了一条信息。方法2:如上图,选择菜单Workbench-Edit Object或点击工具按钮,弹出如下窗口:在More选项卡中选择Message Class或Message number,点击创建按钮,弹出如下窗口:后续操作同“se80 创建”中的方法1。se91创建输入事务码:se91进入消息管理初始化屏幕,如下图:在Message class后输入相应的消息类名,点击创建按钮,进入如下屏幕窗口:后续操作同本文档中“se8

8、0 创建”一节中的方法1。消息调用格式在程序源代码中,使用MESSAGE语句,并制定消息类和其序列号,则可以显示一个系统消息。消息调用语句的语法如下:MESSAGE msg | txt message_options参数msg本节中t和mtype代表message type,即消息类型;n和num代表message number,即消息编号;id和mid表示message class,即消息类名;oref代表系统接口IF_T100_MESSAGE的一个实现类的实例对象,大写蓝色单词为关键字。msg的取值如下:msg取值1:tn你可以在一行中直接指定1位的消息类型和3位的消息编号(消息的短格式)

9、,前提是你必须事先在程序开始的声明语句中添加“MESSAGE-ID + 消息类名”的附加信息。另外,这种格式时,消息类型、消息编号、消息类都是静态指定的。例(消息类为SABAPDOCU,消息类型为I,消息编号014):REPORTrepMESSAGE-IDsabapdocu.MESSAGEi014.msg取值2:tn(id)类似于“4.1.1 msg取值1:tn”的情况,只是这里直接指定了消息类,即id,因此不需要事先在程序开始的声明语句中添加“MESSAGE-ID + 消息类名”的附加信息;若添加了“MESSAGE-ID + 消息类名”的附加信息,该条消息的消息类名为括号中的id,而非mes

10、sage-id后的消息类名。例:REPORT.MESSAGEi014(sabapdocu).msg取值3:ID mid TYPE mtype NUMBER num这种格式时,消息类型、消息编号、消息类可以在程序中动态指定。其中消息类名mid和消息类型mtype的数据类型为c,且必须存在,同时要用大写字母;而消息编号num的数据类型为n,长度为3。无效的消息类型会产生一个不可捕捉的异常。例:DATA:midTYPEsy-msgidVALUESABAPDOCU,mtypeTYPEsy-msgtyVALUEI,numTYPEsy-msgnoVALUE014.MESSAGEIDmidTYPEmtype

11、NUMBERnum.msg取值4:oref TYPE mtypeoref是系统接口IF_T100_MESSAGE的一个实现类的实例对象,而IF_T100_MESSAGE中有包含了接口组件IF_MESSAGE。消息类型、消息编号、消息类以及消息中的占位符&1到&4的参数的传递都通过接口参数T100KEY实现。注意:这种格式的msg,后边对应的message_options不能为with和into附加语句,它主要用于异常对象,如果一个异常类实现了接口IF_T100_MESSAGE,那么当一个异常抛出时,接口结构类型参数T100KEY会根据各自定义的异常文本被自动填充。例:CLASSc1DEFINI

12、TION.PUBLICSECTION.INTERFACESif_t100_message.DATAtextTYPEcLENGTH10VALUEHello!.METHODSconstructor.ENDCLASS.CLASSc1IMPLEMENTATION.METHODconstructor.if_messageget_text().ENDMETHOD.METHODif_messageget_text.if_t100_messaget100key-msgid=SABAPDOCU.if_t100_messaget100key-msgno=888.if_t100_messaget100key-att

13、r1=TEXT.ENDMETHOD.METHODif_messageget_longtext.ENDMETHOD.ENDCLASS.DATAorefTYPEREFTOc1.START-OF-SELECTION.CREATEOBJECToref.MESSAGEorefTYPEI.参数txtmessage语句可以直接用一个字符串作为消息的文本,后边跟上消息类型,作为一条消息。字符串过长时,它的前300个字符会被使用。格式如下:Message txt TYPE mtype message_options其中,txt为消息文本,mtype为消息类型,这种格式的消息,一般很少使用,且messag_opt

14、ions不能用WITH和INTO关键字的附加语句。参数message_optionsmessage_options取值1:DISPLAY LIKE dtypedtype为6中消息类型中的一种,该消息附加项只把消息显示时的图标改为消息类型为dtype时的图标,并不影响实际消息类型对程序后续处理的影响。由于X消息类型无图标,因而dtype为“X”时,无图标,只有消息文本。message_options取值2:RAISING exceptionRAISING exception用于Function Module或Methods中的消息处理,当运行到该条消息时,返回到调用程序,调用程序可以通过sy-s

15、ubrc的值判断是什么异常发生,并捕获该异常,将异常中的消息放入对应的消息系统变量中,供后续程序逻辑使用。例:CLASSc1DEFINITION.PUBLICSECTION.CLASS-METHODSm1EXCEPTIONSexc1.ENDCLASS.c1DEFINITIONCLASSc1IMPLEMENTATION.METHODm1.MESSAGEMessageinaMethodTYPEIRAISINGexc1.ENDMETHOD.m1ENDCLASS.c1IMPLEMENTATION.c1=m1().c1=m1(EXCEPTIONSexc1=4).IFsy-subrc=4.ENDIF.me

16、ssage_options取值3:INTO text附加项INTO text是将消息的短文本放入一个字符类型的变量text中,从而使该条消息失去作用,不会改变程序的执行逻辑。例:DATAmtextTYPEstring.CALLFUNCTION.exceptionserror_message=4.IFsy-subrc=4.MESSAGEIDsy-msgidTYPEsy-msgtyNUMBERsy-msgnoINTOmtextWITHsy-msgv1sy-msgv2sy-msgv3sy-msgv4.ENDIF.message_options取值4:WITH dobj1 . dobj4该附加项用来替

17、换消息创建时在消息文本中预留的占位符“&1”到“&4”,占位符最多4个,从而决定WITH后的参数最多也4个。WITH后的参数dobj1 . dobj4,从左到右依次对应&1 . &4。例(消息类SABAPDOCU的888条消息文本为&1&2&3&4):MESSAGEs888(SABAPDOCU)WITH消息占位符练习.输出结果为一条成功消息,消息内容为“消息占位符练习”。消息的显示方式及对程序的影响消息的显示方式和系统运行时环境的后续处理过程取决于在调用语句中指定的消息类型。对应某些消息类型,消息的处理还与当前程序环境上下文(即调用该消息的处理块)相关,下面的表格是各种消息类型的显示方式及对系

18、统运行时环境的后续处理过程的一个简要概括。A消息以对话框的形式出现,程序中断执行,当用户确认该条消息(即点击对话框退出按钮),系统退出到用户登录系统后的初始屏幕窗口E消息显示方式依赖程序环境上下文,程序中断I消息显示方式依赖程序环境上下文,当消息以对话框的形式出现时,一旦用户确认该条消息,程序继续执行调用该条消息后的语句S消息在下一屏幕的状态栏出现,程序继续执行调用该条消息后的语句W消息显示方式依赖程序环境上下文,程序中断X没有消息出现,程序以short dump(运行时错误)的方式中断,这种消息类型允许用户强制中断程序。A类型消息A类型消息是上下文无关的,该消息以对话框的形式出现,当用户确定

19、该条消息(即点击退出按钮)后,程序中止,系统退出到用户登录系统后的初始屏幕窗口。I类型消息I类型消息用于给出用户程序当前状态的提示信息,例如文字“Action completed”或者“Data saved”。类型I的消息很大程序上是上下文相关的,在一般报表事件块中调用I类型消息,将弹出一个消息对话框:报表用户确定或者关闭对话框后,系统控制返回改事件块消息所在的语句。如果在对话程序的PBO中调用I类型消息,则系统处理与S类型消息一致,消息显示在状态栏,如下所示:S类型消息S类型消息同I类型,也是用于给出用户程序当前状态的提示信息,不过S类型的消息处理形式与程序上下文无关,系统继续执行消息后续语

20、句,并将消息在状态栏中进行输出:X类型消息X类型消息不仅是上下文无关的,而且消息也不能被显示,程序以short dump(运行时错误,见下图)的形式中止,如果没有特殊的需要,该类型的消息是不能在实际系统应用程序中出现的。E和W类型消息E和W类型的消息和程序上下文环境(即调用该消息的处理块)密切相关,有关的处理块有以下几种:处理块1. LOAD-OF-PROGRAM处理块处理块2. PBO modules (PBO of screens)处理块3. PAI modules (PAI of screens)处理块4. 选择屏幕(selection-screen)事件:AT SELECTION-SC

21、REEN OUTPUT(选择屏幕的PBO)处理块5. 与选择屏幕AT SELECTION-SCREEN处理块类似,不过后面没有OUTPUT附加项处理块6. 报表事件START-OF-SELECTION, GET和END-OF-SELECTION处理块7. 列表事件TOP-OF和END-OF处理块8. 列表事件AT LINE-SELECTION处理块9. 列表事件AT USER-COMMAND处理块10. 列表事件AT PF#处理块11. 列表事件TOP-OFDURING LINE-SELECTION处理块12. 报表事件INITIALIZATION为了描述方便,将上面的处理块分成以下几组:组1

22、:处理块1、2、4组2:处理块6、7组3:处理块3组4:处理快5组5:处理块8、9、10、11组6:处理块12E和W类型的消息显示方式和程序的后续处理如下表:组消息类型显示方式处理组1E对话框同A类型消息处理W在下一屏幕状态栏显示同S类型消息处理组2E状态栏程序中断,显示一个GUI status为空的空白屏幕,在用户回车后,返回到程序的调用位置W组3E状态栏当前屏幕处理被中止,并再次被输出(没有PBO过程),消息的文字将出现在状态栏中,并且只有在FIELD或者CHAIN语句中提及的字段可以被重新输入。用户更改其输入之后,再次触发PAI事件,系统将从模块中第一个FIELD或者CHAIN语句之后继

23、续执行。这是在程序中进行自定义输入检查的标准步骤。W状态栏W类型的消息处理与E类型消息处理类似,不同之处在于用户可以直接在当前消息输出屏幕进行回车,系统将继续执行消息语句后的代码组4E无消息显示选择屏幕处理中断,同时选择屏幕重新显示,通过AT SELECTION-SCREEN 声明指定的屏幕字段准备输入,用户必须输入新值。W无消息显示W类型的消息处理与E类型消息处理类似,不同之处在于用户可以直接在当前消息输出屏幕进行回车,系统将继续执行消息语句后的代码组5E状态栏处理块中断W状态栏处理块中断组6E对话框同A类型消息处理W状态栏同S类型消息处理各种类型错误在function module和met

24、hods中的处理在功能模块或方法中,如果使用RAISING选项,则只有没有对错误消息等异常进行处理时,消息才会在其内部被显示并处理。消息被处理之后,期类型、标识以及文本等具体信息将被放置于系统变量SY-MSGID、SY-MSGNR、SY-MSGTY和SY-MSGV1 SY-MSGV4中。因而,只有当出现错误信息时,才应该对其进行捕获,其他情况可以由系统消息进行默认的处理。在功能模块的接口中,包含一个预定义的异常ERROR_MESSAGE,允许调用者影响功能模块中的消息。如果该异常被列入CALL FUNCTION语句中的EXCEPTION列表,将对没有RAISING选项的消息产生下列影响:系统不

25、对类型S、I、W的消息进行任何处理,如果在后台模式允许,将相关信息写入系统日志。对于E类型或A类型到的消息,将触发ERROR_MESSAGE异常。对于X类型的消息,将中止程序并产生运行时错误。异常ERROR_MESSAGE同RAISING选项类似,其目的是为了避免程序运行过程中因为调用功能模块而引起的不正常中断。消息涉及到的表和系统变量消息涉及的表常用的表如下:表名描述T100消息表,所有的消息都存储在该表中T100A信息的最后修改人、修改时间等T100T消息的文本描述信息T100U消息的最后修改人其中表T100为最重要的表,该表包括四个字段:SPRSL(Language Key)语言代码AR

26、BGB 消息类,用于将消息按应用分类储存MSGNR 消息编号,长度为3TEXT 消息文本,是显示在屏幕中的信息文字,最多可以有73个字符。消息涉及的系统变量系统变量名描述sy-msgid当产生一条消息后,其值为当前消息的消息类,若未使用消息类,则其值为“00”sy-msgno当产生一条消息后,其值为当前消息的消息编号,若未使用消息类,则其值为“001”sy-msgty当产生一条消息后,其值为当前消息的消息类型(消息类型取值必须为“A”、“E”、“X”、“S”、“I”、“W”这六个中的一个,否则会出现MESSAGE_TYPE_UNKNOWN的运行时错误)sy-msgv1到sy-msgv4若消息中

27、使用WITH附加语句,WITH后的参数按sy-msgv1到sy-msgv4的次序依次赋值(WITH后的参数最多4个)消息使用实例参见SAP系统程序:DEMO_MESSAGES,运行界面如下:附文:Message ProcessingMessage processing depends on the message type specified in the MESSAGE statement, and the program context in which the statement occurs.Message TypesATermination MessageThe message ap

28、pears in a dialog box, and the program terminates. When the user has confirmed the message, control returns to the next-highest area menu.EError MessageDepending on the program context, an error dialog appears or the program terminates.IInformationThe message appears in a dialog box. Once the user h

29、as confirmed the message, the program continues immediately after the MESSAGE statement.SStatus MessageThe program continues normally after the MESSAGE statement, and the message is displayed in the status bar of the next screen.WWarningDepending on the program context, an error dialog appears or th

30、e program terminates.XExitNo message is displayed, and the program terminates with a short dump. Program terminations with a short dump normally only occur when a runtime error occurs. Message type X allows you to force a program termination. The short dump contains the message ID.ContextsMessages,

31、especially those with type E or W, are processed according to the context in which they occur. The following sections summarize the most important context rules:Messages Without Screen ReferenceMessages on ScreensMessages on Selection ScreensMessages in ListsMessages in Function Modules and MethodsT

32、he program DEMO_MESSAGES demonstrates how the different message types are processed in different contexts. Messages Without Screens这种上下文应用于不属于任何屏幕处理块的位置。This context applies to all situations that do not belong to any screen processing. In ABAP programs, this includes the following processing blocks

33、:The program constructor LOAD-OF-PROGRAMPBO modules (PBO of screens)The selection screen event AT SELECTION-SCREEN OUTPUT (PBO of a selection screen)The reporting events INITIALIZATION, START-OF-SELECTION, GET, and END-OF-SELECTIONThe list events TOP-OFand END-OFAll other processing blocks are assoc

34、iated with screen processing (reacting to user input). In order to make the following table more concise, the above mentioned processing blocks are structured into two groups.Group 1: LOAD-OF-PROGRAM, PBO module of screens, AT SELECTION-SCREEN OUTPUTGroup 2: Reporting- and list events (INITIALIZATIO

35、N, START-OF-SELECTION, GET, END-OF-SELECTION, TOP-OFand END-OF)Message ProcessingTypeDisplayProcessingADialog boxProgram terminates, and control returns to last area menuEGroup 1: Dialog boxGroup 2: Status line of current windowGroup 1: as type A. Group 2: Program termination and display of an empty

36、 screen with empty GUI status. After the user action: Return to the calling position of the program.IGroup 1: Status line of thenext screenGroup 2: Dialog boxProgram continues processing after the MESSAGE statementSStatus line of next screenProgram continues processing after the MESSAGE statementWGr

37、oup 1: Status line of thenext screenGroup 2: Status line of thecurrent windowGroup 1: as type S. Group 2: Program termination and display of an empty screen with empty GUI status. After the user action: Return to the calling position of the program.XNoneTriggers a runtime error with short dumpMessag

38、es on ScreensThis context includes all situations where a screen is being processed, that is, the program is reacting to user input. In ABAP programs, this means all PAI modules. Message ProcessingTypeDisplayProcessingADialog boxProgram terminates, and control returns to last area menuEStatus barPAI

39、 processing is terminated, and control returns to the current screen. All of the screen fields for which there is a FIELD or CHAIN statement are ready for input. The user must enter a new value. The system then restarts PAI processing for the screen using the new values. Error messages are not possi

40、ble in POH or POV processing. Instead, a runtime error occurs.IDialog boxProgram continues processing after the MESSAGE statementSStatus bar of next screenProgram continues processing after the MESSAGE statementWStatus barLike type E, but the user can confirm the message by pressing ENTER without ha

41、ving to enter new values. The system then resumes PAI processing directly after the MESSAGE statement. Warning messages are not possible in POH or POV processing. Instead, a runtime error occurs.XNoneTriggers a runtime error with short dumpFor further information about processing error messages and

42、warnings in the PAI event, refer to Input Checks in Dialog Modules.Messages on Selection ScreensThis context includes all situations where a selection screen is being processed, that is, the program is reacting to user input. In ABAP programs, this corresponds to the AT SELECTION-SCREEN processing b

43、locks, except those with the OUTPUT addition. Message ProcessingTypeDisplayProcessingADialog boxProgram terminates, and control returns to last area menuEStatus lineSelection screen processing terminates, and the selection screen is redisplayed. The screen fields specified through the additions to t

44、he AT SELECTION-SCREEN statement are ready for input. The user must enter a new value. The system then restarts the selection screen processing using the new values. You cannot use error messages with the ON HELP-REQUEST , ON VALUE-REQUEST and ON EXIT additions. Instead, a runtime error occurs.IDial

45、og boxProgram continues processing after the MESSAGE statementSStatus line of next screenProgram continues processing after the MESSAGE statementWStatus lineLike type E, but the user can confirm the message by pressing Enter without having to enter new values. The system then resumes selection scree

46、n processing directly after the MESSAGE statement. You cannot use warnings with the ON HELP-REQUEST , ON VALUE-REQUEST and ON EXIT additions. Instead, a runtime error occurs.XNoneTriggers a runtime error with short dumpFor further information about processing error messages and warnings, refer to th

47、e Selection Screen Processing section.Messages in ListsThis context includes all situations where a list is being processed, that is, the program is reacting to user interaction with lists. In ABAP programs, this includes the following processing blocks:AT LINE-SELECTIONAT USER-COMMANDAT PFnnTOP-OFD

48、URING LINE-SELECTIONMessage ProcessingTypeDisplayProcessingADialog boxProgram terminates, and control returns to last area menuEStatus barProcessing block terminates. Previous list levels remain displayed. IDialog boxProgram continues processing after the MESSAGE statementSStatus bar of next screenP

49、rogram continues processing after the MESSAGE statementWStatus barLike type EXNoneTriggers a runtime error with short dumpFor information about processing messages in lists, refer to User Actions and Detail Lists.Messages in Function Modules and MethodsMessages have two different functions in function modules and methods:Normal MessagesIf you use me

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论