文档详情

SAP模块化技术与异常处理.doc

发布:2017-12-12约1.45万字共14页下载文档
文本预览下载声明
模块化技术与异常处理 模块化: 好处有三: 使程序更加的清晰,易读,易于维护。 实现代码的复用。 实现数据封装,数据或功能仅通过接口与模块外部发生联系,这也相应地增加了程序的可读写和可维护性。 分类: 子程序 功能模块 子程序: 子程序的定义方式: Form (子程序名) [ using 参数名 type 类型] Form (子程序名) [ using 参数名] Form (子程序名) [ using 参数名 changing 参数名] ………… subr codes ………… 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 时的方式为: CALL?FUNCTION?Z_SAP4_TEST_YY ??EXPORTING ????INPUT_1????????= ????INPUT_2????????= *?IMPORTING *???OUTPUT_1???????= 变量的生存周期: 在程序中可以定义全局变量和局部变量。当全局变量和局部变量同名时,局部变量起作用,而全局变量的值不改变。还有一点就是如果当调用一个form并且传入其参数时,而form中对其值进行修改,那么在另一个form中调用全局变量时,其值不变。也就是说,在form中对全局变量进行修改以后,其修改的值值存在于此form中。 还可以建立静态变量,建立的方式为: Static 变量名 type 类型。 在程序中建立一个静态变量以后。无论时在程序中任何一个位置对其进行修改,那么其值会直接更新为修改以后的值。 代码的复用: 代码的复用可以大量的降低程序的耦合度,也可以让程序更加的清晰,易于维护,在开发的代码量也会相应的减少。 主要使用的方式有include程序、宏程序、function group等方式。主要说一下宏程序。 宏程序的建立方式: Define 宏的名字. statements End-of-definition. 在一个宏中可以调用多个宏,方式为。 Define 宏名字 statements. 调用宏的名字 并给他所需要的占位符的个数 End-of-definition. Define 之前调用的宏名字 statements. End-of-definition. 注意:在一个宏中最多可以定义9个占位符。而占位符的方式是1,2……9. 不可以递归调用,可以调用其他宏。 异常处理: 静态异常 这种异常引起的原因基本上是语法的错误,因此比较容易更改。 运行时异常 运行时异常的捕获与处理: 将需要处理异常的语句块放在,非类异常如下: 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_TEX
显示全部
相似文档