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

下载本文档

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

文档简介

模块化技术与异常处理模块化:a) 好处有三:i. 使程序更加的清晰,易读,易于维护。ii. 实现代码的复用。iii. 实现数据封装,数据或功能仅通过接口与模块外部发生联系,这也相应地增加了程序的可读写和可维护性。b) 分类:i. 子程序ii. 功能模块子程序:子程序的定义方式:Form (子程序名) using 参数名 type 类型Form (子程序名) using 参数名Form (子程序名) using 参数名 changing 参数名Endform.在调用此form时,调用的方式为:Perform 子程序名. 注意:当定义的子程序有输入和输出参数的时候。一定要保持调用时传入的参数和在定义子程序的参数的类型要一致。功能模块:功能模块建立的方法与过程:1. 进入功能函数的界面(t-code: se37 或者 se80 一下以se80为准)2. 先将建立的类型选择为一个函数组:3. 如果在以有的函数组下建立function group的话。直接输入所要建立的函数组名或者是已有的名字。输入短文本,保存到本地对象。保存以后直接active本函数组。错误提示:REPORT/PROGRAM statement missing, or program type is I (INCLUDE).如果出现此错误。那么函数组肯定是没有active,进入se80对函数组active一下。就可以了。4. 进入se37建立function group。输入已有的函数组。保存到本地对象。5. 进行对function group 的import 、export、changing 、tablelen进行设置。最后进入source code标签进行对此function group 进行代码的编辑。6. 编码结束,active后执行程序进行调试。7. 在se38程序中调用此function group 时的方式为:CALLFUNCTIONZ_SAP4_TEST_YYEXPORTINGINPUT_1=INPUT_2=*IMPORTING*OUTPUT_1=变量的生存周期:在程序中可以定义全局变量和局部变量。当全局变量和局部变量同名时,局部变量起作用,而全局变量的值不改变。还有一点就是如果当调用一个form并且传入其参数时,而form中对其值进行修改,那么在另一个form中调用全局变量时,其值不变。也就是说,在form中对全局变量进行修改以后,其修改的值值存在于此form中。还可以建立静态变量,建立的方式为:Static 变量名 type 类型。在程序中建立一个静态变量以后。无论时在程序中任何一个位置对其进行修改,那么其值会直接更新为修改以后的值。代码的复用:代码的复用可以大量的降低程序的耦合度,也可以让程序更加的清晰,易于维护,在开发的代码量也会相应的减少。主要使用的方式有include程序、宏程序、function group等方式。主要说一下宏程序。宏程序的建立方式:Define .End-of-definition.在一个宏中可以调用多个宏,方式为。Define . End-of-definition.Define .End-of-definition.注意:在一个宏中最多可以定义9个占位符。而占位符的方式是&1,&2&9.不可以递归调用,可以调用其他宏。异常处理:1. 静态异常这种异常引起的原因基本上是语法的错误,因此比较容易更改。2. 运行时异常运行时异常的捕获与处理:将需要处理异常的语句块放在,非类异常如下:Catch system-exceptions 非类异常的名字 = 数字.Endcatch.if sy-subrc = 数字.进行异常处理.Endif.类的异常:data MYREF type ref to CX_SY_ARITHMETIC_ERROR.“定义一个异常类的对象data ERR_TEXT type STRING.data RESULT type I.try.RESULT = 1 / 0.catch cx_sy_arithmetic_error into MYREF.ERR_TEXT = MYREF-GET_TEXT( ).endtry.类异常的异常类型与名字和从属的关系:(Associated superclass: CX_SY_ARITHMETIC_ERROR) BCD_ZERODIVIDECX_SY_ZERODIVIDECOMPUTE_FLOAT_ZERODIVIDECX_SY_ZERODIVIDECOMPUTE_INT_ZERODIVIDECX_SY_ZERODIVIDEADDF_INT_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWBCD_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_BCD_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_COSH_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_EXP_RANGECX_SY_ARITHMETIC_OVERFLOWCOMPUTE_FLOAT_DIV_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_FLOAT_MINUS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_FLOAT_PLUS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_FLOAT_TIMES_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_INT_ABS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_INT_DIV_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_INT_MINUS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_INT_PLUS_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_INT_TIMES_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_LOG10_ERRORCX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAINCOMPUTE_LOG_ERRORCX_SY_ARITHMETIC_OVERFLOW, CX_SY_ARG_OUT_OF_DOMAINCOMPUTE_MATH_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_POW_RANGECX_SY_ARITHMETIC_OVERFLOWCOMPUTE_SINH_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTE_ACOS_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_ASIN_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_ATAN_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_COSH_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_COS_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_EXP_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_MATH_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_POW_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_SINH_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_SIN_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_SQRT_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_TANH_DOMAINCX_SY_ARG_OUT_OF_DOMAINCOMPUTE_COS_LOSSCX_SY_PRECISION_LOSSCOMPUTE_MATH_LOSSCX_SY_PRECISION_LOSSCOMPUTE_SIN_LOSSCX_SY_PRECISION_LOSSCOMPUTE_TAN_LOSSCX_SY_PRECISION_LOSSBCD_FIELD_OVERFLOWCX_SY_CONVERSION_OVERFLOWException group: CONVERSION_ERRORS (Associated superclass: CX_SY_CONVERSION_ERROR) BCD_FIELD_OVERFLOWCX_SY_CONVERSION_OVERFLOWCONVT_OVERFLOWCX_SY_CONVERSION_OVERFLOWCONVT_CODEPAGECX_SY_CONVERSION_CODEPAGECONVT_NO_NUMBERCX_SY_CONVERSION_NO_NUMBERBCD_OVERFLOWCX_SY_ARITHMETIC_OVERFLOWException group: CREATE_DATA_ERRORS (Associated superclass: CX_SY_CREATE_ERROR) This group contains runtime errors that may occur during the creation of data objects. CREATE_DATA_UNKNOWN_TYPECX_SY_CREATE_DATA_ERRORCREATE_DATA_NOT_ALLOWED_TYPECX_SY_CREATE_DATA_ERRORCREATE_DATA_LEN_NOT_ALLOWEDCX_SY_CREATE_DATA_ERRORCREATE_DATA_ILLEGAL_LENGTHCX_SY_CREATE_DATA_ERRORCREATE_DATA_ILLEGAL_DECIMALSCX_SY_CREATE_DATA_ERRORCREATE_DATA_ILLEGAL_INIT_SIZECX_SY_CREATE_DATA_ERRORException group: CREATE_OBJECT_ERRORS (Associated superclass: CX_SY_CREATE_ERROR) This group contains runtime errors that may occur during the creation of objects. CREATE_OBJECT_CLASS_NOT_FOUNDCX_SY_CREATE_OBJECT_ERRORCREATE_OBJECT_CLASS_ABSTRACTCX_SY_CREATE_OBJECT_ERRORCREATE_OBJECT_CREATE_PRIVATECX_SY_CREATE_OBJECT_ERRORCREATE_OBJECT_CREATE_PROTECTEDCX_SY_CREATE_OBJECT_ERRORException group: DATA_ACCESS_ERRORS (Associated superclass: CX_SY_DATA_ACCESS_ERROR) This group contains runtime errors that may occur during subfield access (with offset/length) to data objects. DATA_OFFSET_NEGATIVECX_SY_RANGE_OUT_OF_BOUNDSDATA_LENGTH_NEGATIVECX_SY_RANGE_OUT_OF_BOUNDSDATA_LENGTH_0CX_SY_RANGE_OUT_OF_BOUNDSDATA_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDSDATA_OFFSET_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDSREFI_WRONG_SECTIONCX_SY_RANGE_OUT_OF_BOUNDSSTRING_OFFSET_NEGATIVECX_SY_RANGE_OUT_OF_BOUNDSSTRING_OFFSET_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDSSTRING_LENGTH_NEGATIVECX_SY_RANGE_OUT_OF_BOUNDSSTRING_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDSSTRING_OFFSET_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDSDATA_OFFSET_LENGTH_NOT_ALLOWEDCX_SY_OFFSET_NOT_ALLOWEDSince a subfield access can occur in almost all statements, no keywords can be assigned. Exception group: DYNAMIC_CALL_METHOD_ERRORS (Associated superclass: CX_SY_DYN_CALL_ERROR) This group contains runtime errors that may occur during a dynamic method call. These are normally errors that trigger a syntax error if the call is static. DYN_CALL_METH_CLASS_ABSTRACTCX_SY_DYN_CALL_ILLEGAL_CLASSDYN_CALL_METH_CLASS_NOT_FOUNDCX_SY_DYN_CALL_ILLEGAL_CLASSDYN_CALL_METH_CLASSCONSTRUCTORCX_SY_DYN_CALL_ILLEGAL_METHODDYN_CALL_METH_CONSTRUCTORCX_SY_DYN_CALL_ILLEGAL_METHODDYN_CALL_METH_NOT_FOUNDCX_SY_DYN_CALL_ILLEGAL_METHODDYN_CALL_METH_NO_CLASS_METHODCX_SY_DYN_CALL_ILLEGAL_METHODDYN_CALL_METH_PRIVATECX_SY_DYN_CALL_ILLEGAL_METHODDYN_CALL_METH_PROTECTEDCX_SY_DYN_CALL_ILLEGAL_METHODDYN_CALL_METH_EXCP_NOT_FOUNDCX_SY_DYN_CALL_EXCP_NOT_FOUNDDYN_CALL_METH_PARAM_KINDCX_SY_DYN_CALL_ILLEGAL_TYPEDYN_CALL_METH_PARAM_LITL_MOVECX_SY_DYN_CALL_ILLEGAL_TYPEDYN_CALL_METH_PARAM_TAB_TYPECX_SY_DYN_CALL_ILLEGAL_TYPEDYN_CALL_METH_PARAM_TYPECX_SY_DYN_CALL_ILLEGAL_TYPEDYN_CALL_METH_PARAM_MISSINGCX_SY_DYN_CALL_PARAM_MISSINGDYN_CALL_METH_PARREF_INITIALCX_SY_DYN_CALL_PARAM_MISSINGDYN_CALL_METH_PARAM_NOT_FOUNDCX_SY_DYN_CALL_PARAM_NOT_FOUNDDYN_CALL_METH_REF_IS_INITIALCX_SY_REF_IS_INITIALThe following keywords are assigned to this exception group: CALL METHOD Exception group: FILE_ACCESS_ERRORS (Associated superclass: CX_SY_FILE_ACCESS_ERROR) This group contains runtime errors that may occur during file access. Typical examples are if the system cannot find the file, if no more space is available to write or create the file, or if the authorization to access the file is missing. DATASET_CANT_CLOSECX_SY_FILE_CLOSEDATASET_CANT_OPENCX_SY_FILE_OPENEXPORT_DATASET_CANNOT_OPENCX_SY_FILE_OPENDATASET_WRITE_ERRORCX_SY_FILE_IODATASET_READ_ERRORCX_SY_FILE_IOEXPORT_DATASET_WRITE_ERRORCX_SY_FILE_IODATASET_SEEK_ERRORCX_SY_FILE_POSITIONDATASET_NO_POSITIONCX_SY_FILE_POSITIONDATASET_READ_ONLYCX_SY_FILE_OPEN_MODEDATASET_NOT_OPENCX_SY_FILE_OPEN_MODEOPEN_DATASET_NO_AUTHORITYCX_SY_FILE_AUTHORITYOPEN_PIPE_NO_AUTHORITYCX_SY_FILE_AUTHORITYDATASET_TOO_MANY_FILESCX_SY_TOO_MANY_FILESDATASET_NO_PIPECX_SY_PIPES_NOT_SUPPORTEDException group: IMPORT_MISMATCH_ERRORS (Common class: CX_SY_IMPORT_MISMATCH_ERROR) This group contains runtime errors that may occur during the import of data from the ABAP memory, from the database, from the SHARED BUFFER, or from a file if the type or the length of the data stored is not identical with that of the target type. CONNE_IMPORT_WRONG_COMP_DECSCX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_COMP_LENGCX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_COMP_TYPECX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_FIELD_DECSCX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_FIELD_LENGCX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_FIELD_TYPECX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_OBJECT_TYPECX_SY_IMPORT_MISMATCH_ERRORCONNE_IMPORT_WRONG_STRUCTURECX_SY_IMPORT_MISMATCH_ERRORIMPORT_ALIGNMENT_MISMATCHCX_SY_IMPORT_MISMATCH_ERRORIMPORT_WRONG_END_POSCX_SY_IMPORT_MISMATCH_ERRORException group: LOCALIZATION_ERRORS (Common class: CX_SY_LOCALIZATION_ERROR) This group contains runtime errors that may occur when you switch to another text environment. Typical examples are if the required language is not allowed or if the system wants to switch to a character set which has not been released. TEXTENV_CODEPAGE_NOT_ALLOWEDCX_SY_LOCALIZATION_ERRORTEXTENV_INVALIDCX_SY_LOCALIZATION_ERRORTEXTENV_KEY_INVALIDCX_SY_LOCALIZATION_ERRORException group: REMOTE_CALL_ERRORS (Associated superclass: CX_SY_REMOTE_CALL_ERROR) This group contains runtime errors that may occur during calls in remote systems (currently only CALL METHOD). Typical examples are network errors or the unexpected termination of the connection. RMC_COMMUNICATION_FAILURECX_SY_RMC_COMM_FAILURERMC_INVALID_STATUSCX_SY_RMC_INVALID_STATUSRMC_SYSTEM_FAILURECX_SY_RMC_SYSTEM_FAILURECALL METHOD Not assigned to an exception group: ASSIGN_CASTING_ILLEGAL_CASTCX_SY_ASSIGN_CAST_ILLEGAL_CASTASSIGN_CASTING_UNKNOWN_TYPECX_SY_ASSIGN_CAST_UNKNOWN_TYPEASSIGN_FIELD_NOT_IN_RANGECX_SY_ASSIGN_OUT_OF_RANGEDATASET_OFFSET_TOO_LARGECX_SY_FILE_POSITIONDYN_CALL_METH_NOT_IMPLEMENTEDCX_SY_DYN_CALL_ILLEGAL_METHODEXPORT_BUFFER_NO_MEMORYCX_SY_EXPORT_BUFFER_NO_MEMORYGENERATE_SUBPOOL_DIR_FULLCX_SY_GENERATE_SUBPOOL_FULLMOVE_CAST_ERRORCX_SY_MOVE_CAST_ERRORPERFORM_PROGRAM_NAME_TOO_LONGCX_SY_PROGRAM_NOT_FOUNDREPLACE_INFINITE_LOOPCX_SY_REPLACE_INFINITE_LOOP6、类异常类树CX_SY_ROOT | |-CX_STATIC_CHECK | |-CX_DYNAMIC_CHECK | |-CX_SY_ARITHMETIC_ERROR | |-CX_SY_ZERODIVIDE | |-CX_SY_ARITHMETIC_OVERFLOW | |-CX_SY_ARG_OUT_OF_DOMAIN | |-CX_SY_PRECISION_LOSS | |-CX_SY_ASSIGN_ERROR | |-CX_SY_ASSIGN_CAST_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 | |-CX_SY_CREATE_ERROR | |-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_PARAMETER_ERROR | | | |-CX_SY_DYN_CALL_EXCP_N

温馨提示

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

评论

0/150

提交评论