《2022年sap开发者指导之九十 .pdf》由会员分享,可在线阅读,更多相关《2022年sap开发者指导之九十 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SAP 开发者指导56 AnBoS 第九章 事务开发概述在 SAP 系统中做开发,除了ABAP 报表之外,还有一个很重要的内容就是事务程序(对话程序)开发。事务( Transaction) ,即企业的各种业务应用,用于实现某些特定功能,而且往往特指涉及到数据库更新操作的功能。根据对事务的定义,报表程序也是事务程序。只是,因为SAP Help 这么区分,我们还是沿用这种叫法吧。所以,需要声明一点,这几章中讲述的是“带有屏幕的对话程序”。事务程序的开发就像我们利用Visual Studio 开发一样,通过创建一些窗体和一些事件代码,完成某样功能。SAP 开发环境与VS 环境相比, 无论控件的种类还
2、是控件的事件,SAP 开发环境都要弱很多。当然,它也不是一无是处, 因为屏幕元素与程序变量一一对应的特性,在程序的开发过程中,又能带来一些方便。另外,自动产生的搜索帮助也能给你一些惊喜。一、SAP 屏幕类型a.通常 (normal screen) : 正常屏幕,大部分的屏幕属于这个类型。调用语句为“Call Screen.” 。b.子屏幕( Sub Screen) :作为正常屏幕的一部分,一个正常屏幕能包括多个子屏幕。调用语句为“ Call SubScreen.” 。c.方式对话框(modal dialog box) :含有按钮和标题的对话框。调用语句为“Call Screen Startin
3、g At Ending At” 。d.选择屏幕和分组屏幕:由系统产生。例如,ABAP 报表中的选择屏幕。二、OK 代码在进行屏幕设计、菜单设计、工具按钮设置时,我们会指定一个Function Code ,用户点击某一按钮或菜单, 系统就会将触发PAI (Process After Input ) 事件,并且,会将该 Function Code保存在系统字段SY-UCOMM 中。OK 代码是随屏幕创建而自动创建的一个屏幕元素,其数据类型同SY-UCOMM ,虽然系统自动创建了该屏幕元素,但是没有对它命名。屏幕设计的第一件事就是在程序中声明一个OK 代码变量,并在屏幕元素中将该变量指定给该屏幕元素
4、。例如: DATA: ok_code LIKE sy-ucomm。 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - SAP 开发者指导57 AnBoS 经过上面的设置,程序运行时,系统便会自动将Function Code 放到 OK_CODE 变量。不过,千万要注意,PAI 事件处理结束后,系统并不会自动清除OK_CODE 。如果不手动清除 OK_CODE ,则后续屏幕的OK_CODE 被预设。三、流逻辑每一个屏幕都有一个流逻辑
5、,屏幕流逻辑有四个事件:Process Before output. * PBO 事件:屏幕输出之前触发。通常进行屏幕初始化的工作 Process After Input. *PAI 事件:用户在屏幕中执行某些功能后被触发。启动后需屏幕。 Process On Help-Request. *POH 事件:用户查看帮助信息(按下F1)时被触发。 Process On Value-Request. *POV 事件:用户查询帮助按钮(按下F4)时被触发。 流逻辑中不能使用ABAP 语句(即:不能直接在流逻辑中写代码),它有自身的设计语言。通常,我们将ABAP 代码块包含在MODULE中,然后,在流逻
6、辑中利用关键字MODULE调用 ABAP 代码块。流逻辑语言有如下几个关键字:Process 流逻辑事件块关键字Module 调用 ABAP 程序中定义的模块Field 定义屏幕字段赋给程序中相应字段的逻辑点Chain 开始一个处理链Endchain 结束一个处理链Call 调用子屏幕Loop 开始处理屏幕表格四、屏幕调用在屏幕属性定义界面,会要求你输入“Next Screen” ,默认值为本身。利用SAP 屏幕序列的功能,我们能够将一系列的屏幕串起来,系统执行完一个屏幕后,会自动转入 “Next Screen” 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
7、- - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - SAP 开发者指导58 AnBoS 除了根据屏幕序列依次执行屏幕,还能够通过如下语句,改变屏幕执行流程:Set Screen next_screen_number. 为当前屏幕指定后续屏幕Call Screen screen_number. Call Transaction TCode. 挂起当前屏幕序列,进入新的屏幕或事务Leave Screen. 离开当前屏幕控制流,进入后续屏幕Leave to Screen screen_number. Leave t
8、o Transaction Tcode. 离开当前屏幕,转入后续屏幕或事务= 本章完成于20060630= 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - - SAP 开发者指导59 AnBoS 第十章 事务程序实例一、开发需求为了提高生产线的管理水平,防止生产线的物料堆积,我们的仓库需要根据生管的生产计划、分班次、分拉线、成套的分发物料。在我们的 SAP 系统中,工作中心是整个装配车间,所以 SAP 系统不能满足我们的发料要求。业
9、务部门希望我们能开发套料产生程序,并结合现有库存产生欠料表。二、运行结果1、 进入事务程序。2、 输入成品料号和数量。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - SAP 开发者指导60 AnBoS 3、 点“生成”按钮,系统依据成品和料号结合BOM 生成套料单。4、 点击保存按钮,保存第一拉的生产安排和套料数。5、 点击“生成领料单”按钮,系统根据发料仓库分成多张领料单。单号在左下角。名师资料总结 - - -精品资料欢迎下载
10、 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 7 页 - - - - - - - - - SAP 开发者指导61 AnBoS 6、 点击“ L3”按钮,开始第二拉的生产安排。7、 所有生产安排输入完毕,并对套料数量作出调整后,点击“欠料表”。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 7 页 - - - - - - - - - SAP 开发者指导62 AnBoS 8、 点击“生成欠料表”按钮。9、最后,完成单据的打印和转换。(详细的开发过程,下一章再见。)= 本章完成于20060630= 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 7 页 - - - - - - - - -