SAP模块化技术与异常处理_第1页
SAP模块化技术与异常处理_第2页
SAP模块化技术与异常处理_第3页
SAP模块化技术与异常处理_第4页
SAP模块化技术与异常处理_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、模块化技术与异常处理模块化:a)好处有三:使程序更加的清晰,易读,易于维护。实现代码的复用。实现数据封装,数据或功能仅通过接口与模块外部发生联系,这也相应地增加了程序的可读写和可维护性。b)分类:i.子程序ii.功能模块子程序:子程序的定义方式:using参数名type类型using参数名using参数名changing参数名Form(子程序名)Form(子程序名)Form(子程序名)Endform.在调用此form时,调用的方式为:Perform子程序名.注意:当定义的子程序有输入和输出参数的时候。一定要保持调用时传入的参数和在定义子程序的参数的类型要一致。功能模块:功能模块建立的方法与过程

2、:进入功能函数的界面(t-code:se37或者se80一下以se80为准)先将建立的类型选择为一个函数组:3.如果在以有的函数组下建立functiongroup的话。直接输入所要建立的函数组名或者是已有的名字。函数组Z_TEST_SAP4输入短文本,保存到本地对象。保存以后直接active本函数组。错误提示:REPORT/PROGRAMstatementmissing,orprogramtypeisI_(INCLUDE).如果出现此错误。那么函数组肯定是没有active,进入se80对函数组active一下。就可以了。4.进入se37建立functiongroup。输入已有的函数组。保存到本

3、地对象。进行对functiongroup的import、export、changing、tablelen进行设置。最后进入sourcecode标签进行对此functiongroup进行代码的编辑。编码结束,active后回执行程序进行调试。在se38程序中调用此functiongroup时的方式为CALLFUNCTIONZ_SAP4_TEST_YYEXPORTINGINPUT_1=INPUT_2=*IMPORTINGOUTPUT变量的生存周期:在程序中可以定义全局变量和局部变量。当全局变量和局部变量同名时,局部变量起作用,而全局变量的值不改变。还有一点就是如果当调用一个form并且传入其参数时

4、,而form中对其值进行修改,那么在另一个form中调用全局变量时,其值不变。也就是说,在form中对全局变量进行修改以后,其修改的值值存在于此form中。还可以建立静态变量,建立的方式为:Static变量名type类型。在程序中建立一个静态变量以后。无论时在程序中任何一个位置对其进行修改,那么其值会直接更新为修改以后的值。代码的复用:代码的复用可以大量的降低程序的耦合度,也可以让程序更加的清晰,易于维护,在开发的代码量也会相应的减少。主要使用的方式有include程序、宏程序、functiongroup等方式。主要说一下宏程序。宏程序的建立方式:Define宏的名字.statementsEn

5、d-of-definition.在一个宏中可以调用多个宏,方式为。Define宏名字statements.调用宏的名字并给他所需要的占位符的个数End-of-definition.Define之前调用的宏名字statements.End-of-definition.注意:在一个宏中最多可以定义9个占位符。而占位符的方式是&1,&2&9.不可以递归调用,可以调用其他宏。异常处理:1.静态异常这种异常引起的原因基本上是语法的错误,因此比较容易更改。2.运行时异常运行时异常的捕获与处理:将需要处理异常的语句块放在,非类异常如下:Catchsystem-exceptions非类异常的名字=数字.End

6、catch.ifsy-subrc=数字.进行异常处理.Endif.类的异常:dataMYREFtypereftoCX_SY_ARITHMETIC_ERROR.“定义一个异常类的对象dataERR_TEXTtypeSTRING.dataRESULTtypeI.try.RESULT=1/0.catchcx_sy_arithmetic_errorintoMYREF.ERR_TEXT=MYREF-GET_TEXT().endtry.类异常的异常类型与名字和从属的关系:(Associatedsuperclass:CXSYARITHMETIC_ERROR)BCDZERODIVIDECXSYZERODIVI

7、DECOMPUTE_FLOAT_ZERODIVIDECX_SY_ZERODIVIDECOMPUTEINTZERODIVIDECX_SY_ZERODIVIDEADDFINTOVERFLOWCX_SY_ARITHMETIC_OVERFLOWBCDOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEBCDOVERFLOWCXSYARITHMETICOVERFLOWCOMPUTECOSHOVERFLOWCXSYARITHMETICOVERFLOWCOMPUTEEXPRANGECXSYARITHMETICOVERFLOWC0MPUTEFL0ATDIV0VERFL0WCX_SY

8、_ARITHMETIC_OVERFLOWCOMPUTEFLOATMINUSOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEFLOATPLUSOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEFLOATTIMESOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEINTABSOVERFLOWCXSYARITHMETICOVERFLOWCOMPUTEINTDIVOVERFLOWCXSYARITHMETICOVERFLOWCOMPUTEINTMINUSOVERFLOWCX_SY_ARITHMETIC_OVERF

9、LOWCOMPUTEINTPLUSOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEINTTIMESOVERFLOWCX_SY_ARITHMETIC_OVERFLOWC0MPUTE_L0G10_ERR0RCX_SY_ARITHMETIC_OVERFLOW,CXSYARGOUTOFDOMAINC0MPUTE_L0G_ERR0RCX_SY_ARITHMETIC_OVERFLOW,CXSYARGOUTOFDOMAINCOMPUTEMATHOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEPOWRANGECX_SY_ARITHMETIC_OV

10、ERFLOWCOMPUTESINHOVERFLOWCX_SY_ARITHMETIC_OVERFLOWC0MPUTEAC0SD0MAINCXSYARGOUTOFDOMAINCOMPUTEASINDOMAINCXSYARGOUTOFDOMAINCOMPUTEATANDOMAINCXSYARGOUTOFDOMAINC0MPUTEC0SHD0MAINCXSYARGOUTOFDOMAINC0MPUTEC0SD0MAINCXSYARGOUTOFDOMAINCOMPUTEEXPDOMAINCXSYARGOUTOFDOMAINCOMPUTEMATHDOMAINCXSYARGOUTOFDOMAINC0MPUTE

11、P0WD0MAINCXSYARGOUTOFDOMAINCOMPUTESINHDOMAINCXSYARGOUTOFDOMAINCOMPUTESINDOMAINCXSYARGOUTOFDOMAINCOMPUTE_SQRT_DOMAINCXSYARGOUTOFDOMAINCOMPUTE_TANH_DOMAINCXSYARGOUTOFDOMAINCOMPUTECOSLOSSCX_SY_PRECISION_LOSSCOMPUTEMATHLOSSCX_SY_PRECISION_LOSSCOMPUTESINLOSSCXSYPRECISIONLOSSCOMPUTETANLOSSCXSYPRECISIONLOS

12、SBCDFIELDOVERFLOWCX_SY_CONVERSION_OVERFLOWExceptiongroup:CONVERSION_ERRORS(Associatedsuperclass:CX_SY_CONVERSION_ERROR)BCDFIELDOVERFLOWCX_SY_CONVERSION_OVERFLOWCONVTOVERFLOWCX_SY_CONVERSION_OVERFLOWCONVTCODEPAGECXSYCONVERSIONCODEPAGECONVTNONUMBERCXSYCONVERSIONNONUMBERBCD_OVERFLOWCX_SY_ARITHMETIC_OVE

13、RFLOWExceptiongroup:CREATE_DATA_ERRORS(Associatedsuperclass:CX_SY_CREATE_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduringthecreationofdataobjects.CREATE_DATA_UNKNOWN_TYPECX_SY_CREATE_DATA_ERRORCREATE_DATA_NOT_ALLOWED_TYPECX_SY_CREATE_DATA_ERRORCREATEDATALENNOTALLOWEDCX_SY_CREATE_DATA_ERRORCREA

14、TEDATAILLEGALLENGTHCX_SY_CREATE_DATA_ERRORCREATEDATAILLEGALDECIMALSCXSYCREATEDATAERRORCREATEDATAILLEGALINITSIZECXSYCREATEDATAERRORExceptiongroup:CREATE_OBJECT_ERRORS(Associatedsuperclass:CX_SY_CREATE_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduringthecreationofobjects.CREATEOBJECTCLASSNOTFOUND

15、CXSYCREATEOBJECTERRORCREATEOBJECTCLASSABSTRACTCX_SY_CREATE_OBJECT_ERRORCREATEOBJECTCREATEPRIVATECX_SY_CREATE_OBJECT_ERRORCREATEOBJECTCREATEPROTECTEDCX_SY_CREATE_OBJECT_ERRORExceptiongroup:DATA_ACCESS_ERRORS(Associatedsuperclass:CX_SY_DATA_ACCESS_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduring

16、subfieldaccess(withoffset/length)todataobjects.DATAOFFSETNEGATIVECX_SY_RANGE_OUT_OF_BOUNDSDATALENGTHNEGATIVECXSYRANGEOUTOFBOUNDSDATALENGTH0CXSYRANGEOUTOFBOUNDSDATALENGTHTOOLARGECX_SY_RANGE_OUT_OF_BOUNDSDATA_OFFSET_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDSREFIWRONGSECTIONCX_SY_RANGE_OUT_OF_BOUNDSSTRI

17、NGOFFSETNEGATIVECX_SY_RANGE_OUT_OF_BOUNDSSTRINGOFFSETTOOLARGECXSYRANGEOUTOFBOUNDSSTRINGLENGTHNEGATIVECXSYRANGEOUTOFBOUNDSSTRINGLENGTHTOOLARGECX_SY_RANGE_OUT_OF_BOUNDSSTRINGOFFSETLENGTHTOOLARGECXSYRANGEOUTOFBOUNDSDATAOFFSETLENGTHNOTALLOWEDCXSYOFFSETNOTALLOWEDSinceasubfieldaccesscanoccurinalmostallsta

18、tements,nokeywordscanbeassigned.Exceptiongroup:DYNAMIC_CALL_METHOD_ERRORS(Associatedsuperclass:CX_SY_DYN_CALL_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduringadynamicmethodcall.Thesearenormallyerrorsthattriggerasyntaxerrorifthecallisstatic.DYNCALLMETHCLASSABSTRACTCXSYDYNCALLILLEGALCLASSDYNCALL

19、METHCLASSNOTFOUNDCXSYDYNCALLILLEGALCLASSDYNCALLMETHCLASSCONSTRUCTORCX_SY_DYN_CALL_ILLEGAL_METHODDYNCALLMETHCONSTRUCTORCX_SY_DYN_CALL_ILLEGAL_METHODDYNCALLMETHNOTFOUNDCX_SY_DYN_CALL_ILLEGAL_METHODDYNCALLMETHNOCLASSMETHODCX_SY_DYN_CALL_ILLEGAL_METHODDYNCALLMETHPRIVATECX_SY_DYN_CALL_ILLEGAL_METHODDYNCA

20、LLMETHPROTECTEDCXSYDYNCALLILLEGALMETHODDYNCALLMETHEXCPNOTFOUNDCXSYDYNCALLEXCPNOTFOUNDDYNCALLMETHPARAMKINDCX_SY_DYN_CALL_ILLEGAL_TYPEDYNCALLMETHPARAMLITLMOVECXSYDYNCALLILLEGALTYPEDYNCALLMETHPARAMTABTYPECXSYDYNCALLILLEGALTYPEDYNCALLMETHPARAMTYPECXSYDYNCALLILLEGALTYPEDYNCALLMETHPARAMMISSINGCXSYDYNCALLP

21、ARAMMISSINGDYN_CALL_METH_PARREF_INITIALCX_SY_DYN_CALL_PARAM_MISSINGDYNCALLMETHPARAMNOTFOUNDCXSYDYNCALLPARAMNOTFOUNDDYNCALLMETHREFISINITIALCX_SY_REF_IS_INITIALThefollowingkeywordsareassignedtothisexceptiongroup:CALLMETHODExceptiongroup:FILE_ACCESS_ERRORS(Associatedsuperclass:CX_SY_FILE_ACCESS_ERROR)T

22、hisgroupcontainsruntimeerrorsthatmayoccurduringfileaccess.Typicalexamplesareifthesystemcannotfindthefile,ifnomorespaceisavailabletowriteorcreatethefile,oriftheauthorizationtoaccessthefileismissing.DATASETCANTCLOSECX_SY_FILE_CLOSEDATASETCANTOPENCX_SY_FILE_OPENEXPORTDATASETCANNOTOPENCX_SY_FILE_OPENDAT

23、ASETWRITEERRORCX_SY_FILE_IODATASETREADERRORCXSYFILEIOEXPORTDATASETWRITEERRORCXSYFILEIODATASETSEEKERRORCX_SY_FILE_POSITIONDATASETNOPOSITIONCX_SY_FILE_POSITIONDATASETREADONLYCX_SY_FILE_OPEN_MODEDATASETNOTOPENCX_SY_FILE_OPEN_MODEOPENDATASETNOAUTHORITYCXSYFILE_AUTHORITYOPENPIPENOAUTHORITYCXSYFILE_AUTHOR

24、ITYDATASET_TOO_MANY_FILESCX_SY_TOO_MANY_FILESDATASET_NO_PIPECX_SY_PIPES_NOT_SUPPORTEDExceptiongroup:IMPORT_MISMATCH_ERRORS(Commonclass:CXSIMPORTMISMATCHERROR)ThisgroupcontainsruntimeerrorsthatmayoccurduringtheimportofdatafromtheABAPmemory,fromthedatabase,fromtheSHAREDBUFFER,orfromafileifthetypeorthe

25、lengthofthedatastoredisnotidenticalwiththatofthetargettype.CONNEIMPORTWRONGCOMPDECSCXSYIMPORTMISMATCHERRORCONNEIMPORTWRONGCOMPLENGCX_SY_IMPORT_MISMATCH_ERRORCONNEIMPORTWRONGCOMPTYPECX_SY_IMPORT_MISMATCH_ERRORCONNEIMPORTWRONGFIELDDECSCX_SY_IMPORT_MISMATCH_ERRORCONNEIMPORTWRONGFIELDLENGCX_SY_IMPORT_MI

26、SMATCH_ERRORCONNEIMPORTWRONGFIELDTYPECXSYIMPORTMISMATCHERRORCONNEIMPORTWRONGOBJECTTYPECXSYIMPORTMISMATCHERRORCONNE_IMPORT_WRONG_STRUCTURECX_SY_IMPORT_MISMATCH_ERRORIMPORT_ALIGNMENT_MISMATCHCX_SY_IMPORT_MISMATCH_ERRORIMPORTWRONGENDPOSCX_SY_IMPORT_MISMATCH_ERRORExceptiongroup:LOCALIZATION_ERRORS(Commo

27、nclass:CX_SY_LOCALIZATION_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurwhenyouswitchtoanothertextenvironment.Typicalexamplesareiftherequiredlanguageisnotallowedorifthesystemwantstoswitchtoacharactersetwhichhasnotbeenreleased.TEXTENVCODEPAGENOTALLOWEDCX_SY_LOCALIZATION_ERRORTEXTENVINVALIDCX_SY_LOC

28、ALIZATION_ERRORTEXTENVKEYINVALIDCXSYLOCALIZATIONERRORExceptiongroup:REMOTE_CALL_ERRORS(Associatedsuperclass:CX_SY_REMOTE_CALL_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduringcallsinremotesystems(currentlyonlyCALLMETHOD).Typicalexamplesarenetworkerrorsortheunexpectedterminationoftheconnection.R

29、MCCOMMUNICATIONFAILURECX_SY_RMC_COMM_FAILURERMCINVALIDSTATUSCX_SY_RMC_INVALID_STATUSRMCSYSTEMFAILURECXSYRMCSYSTEMFAILURECALLMETHODNotassignedtoanexceptiongroup:ASSIGNCASTINGILLEGALCASTCXSYASSIGNCASTILLEGALCASTASSIGNCASTINGUNKNOWNTYPECXSYASSIGNCASTUNKNOWNTYPEASSIGNFIELDNOTINRANGECX_SY_ASSIGN_OUT_OF_R

30、ANGEDATASETOFFSETTOOLARGECX_SY_FILE_POSITIONDYNCALLMETHNOTIMPLEMENTEDCX_SY_DYN_CALL_ILLEGAL_METHODEXPORTBUFFERNOMEMORYCX_SY_EXPORT_BUFFER_NO_MEMORYGENERATESUBPOOLDIRFULLCXSYGENERATESUBPOOLFULLMOVECASTERRORCXSYMOVECASTERRORPERFORMPROGRAMNAMETOOLONGCXSYPROGRAMNOTFOUNDREPLACEINFINITELOOPCX_SY_REPLACE_I

31、NFINITE_LOOPI|-CX_SY_GEN_SOURCE_TOO_WIDEI|-CX_SY_GEN_SOURCE_TOO_WIDE|-CX_SY_CREATE_ERROR6、类异常类树CX_SY_ROOT|-cx_static_check|-CX_DYNAMIC_CHECK|-CX_SY_ARITHMETIC_ERROR|-CX_SY_ZERODIVIDE|-CX_SY_ARITHMETIC_OVERFLOW|CXSYARGOUTOFDOMAJN|-CX_SY_PRECISION_LOSS|I-cx_sy_assign_errorTOC o 1-5 h z|-CX_SY_ASSIGN_C

32、AST_ERROR|-CX_SY_ASSIGN_CAST_ILLEGAL_CAST|-CX_SY_ASSIGN_CAST_UNKNOWN_TYPE|-CX_SY_ASSIGN_OUT_OF_RANGE|-CX_SY_CODEPAGE_CONVERTER_INIT|-CX_SY_CONVERSION_ERROR|-CX_SY_CONVERSION_OVERFLOW|-CX_SY_CONVERSION_NO_NUMBER|-CX_SY_CONVERSION_CODEPAGE|-CX_SY_CONVERSION_BASE64|-CX_SY_CONV_ILLEGAL_DATE_TIME|TOC o 1-5 h z|-CX_SY_CREATE_OBJECT_ERROR|-CX_SY_CREATE_DATA_ERROR|-CX_SY_DATA_ACCESS_ERROR|-CX_SY_RANGE_OUT_OF_BOUNDS|-CX_SY_OFFSET_NOT_ALLOWED|-CX_SY_DYN_CALL_ERROR|-CX_SY_DYN_CALL_ILLEGAL_CLASS|-CX_SY_DYN_CALL_ILLEGAL_FUNC|-cx_sy_dyn_call_illegal_method|-CX_SY_DYN_CALL_PA

温馨提示

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

最新文档

评论

0/150

提交评论