- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SAP模块化技术与异常处理
模块化技术与异常处理
模块化:
好处有三:
使程序更加的清晰,易读,易于维护。
实现代码的复用。
实现数据封装,数据或功能仅通过接口与模块外部发生联系,这也相应地增加了程序的可读写和可维护性。
分类:
子程序
功能模块
子程序:
子程序的定义方式:
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
您可能关注的文档
- mysql一主多从.doc
- 涌现与自生性游戏性.doc
- 初二看图填空练习.doc
- 2014年兰州市初中毕业生学业考试英语试题.docx
- 工程谅解备忘录范文.doc
- 2003年MBA联考英语真题及答案.docx
- 2015年6月英语六级听力第一套.docx
- DFMEA讲解.doc
- 2012春(预备2)7月期末考前辅导.doc
- 1-3-0-实验指导-GTK+界面设计实验.docx
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
文档评论(0)