SAP的Update Module函数_第1页
SAP的Update Module函数_第2页
SAP的Update Module函数_第3页
SAP的Update Module函数_第4页
SAP的Update Module函数_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

Update Module函数功能简介1. 功能简介SAP函数存在三种类型:普通函数,RFC函数和Update Module函数三类。前面两类比较常见,但Update Module函数比较少用。Update Module函数(又称为更新函数)主要用于对话或报表中实现同步和异步更新数据库的功能。2. 实现方案简介在自定义对话程序、远程调用目标服务、报表设计过程中,存在需要单独调用函数实现更新数据库表;但又要求对程序的运行不产生影响(即更新成功与否不影响主程序的正常执行)。此时可以通过更新任务(Update Module函数)实现该功能。3. 详细实现方案3.1 更新函数概念Update Module函数(又称为更新函数)主要用于对话或报表中实现同步和异步更新数据库的功能。更新任务中运行的功能模块必须在函数库中注册,即在函数属性设置页卡中设定函数类型为 Update Module 。根据更新函数执行的先后顺序,将更新函数分为V1和V2两类;区别如下: 立即开始更新在共享更新事务(SAP LUW)中运行的高优先级(“V1”)功能设置该选项;出现错误时更新任务可以重新启动这些功能。 立即开始更新,不能重启在共享更新事务中运行的高优先级(“V1”)功能设置该选项;不能由更新任务重新启动这些功能。 延迟启动更新为在自身更新事务中运行的低优先级(“V2”)功能设置该选项;出现错误时更新任务可以重新启动这些功能。3.2 更新函数的参数设置更新函数在参数设置上有特定的要求:1. 因为更新任务功能模块不能报告其结果,因此不允许结果参数(EXPORTING,CHANGING)或例外(EXCEPTIONS);2. 必须指定输入参数(IMPORTING)和带有ABAP/4词典中所定义的参考字段和参考结构的表格(TABLES)。3.2.1 传入参数设置在更新函数中传入参数只允许使用值传递(IMPORTING)方式;对应的参数须使用参照字段进行定义。如果创建传出参数和指针传递参数(CHANGING)参数,程序将提醒并不允许保存。3.2.2 传出参数设置更新函数只允许有TABLE参数,并且该表格需要对应的参考结构。一般使用TABLE参数用于获取更新执行成功与否的反馈消息(RETURN表格);或者传入用于查询数据的参考内表(尽量不更改传入内表的数据)。3.3 调用更新函数方式将函数设置为更新模式后;调用时既可以将该函数定义到更新任务中,也可以作为普通函数进行调用。3.3.1 作为普通函数调用如果需要调用该函数时作为普通函数执行,不作为更新函数。则在调用该函数时,直接只用CALL FUNCTION的方式实现即可。CALL FUNCTION YYWANGT_UPDATAMODULE EXPORTING zcarrid = AZ zconnid = zconnid.3.3.2 作为更新函数调用如果需要将该函数设定为更新函数,则需要在调用该函数时注明 IN UPDATE TASK。将该函数写入LOG TABLE。当一个SAP LUW执行到COMMIT WORK处时,系统统一执行LOG TABLE中的更新函数。CALL FUNCTION YYWANGT_UPDATAMODULE IN UPDATE TASK EXPORTING zcarrid = AZ zconnid = zconnid.下面用一个图形详细描述普通函数和更新函数的执行顺序:要有效地编程异步更新 ,必须了解 R/3 系统中更新任务如何工作。典型的 SAP 系统配置包括对话任务和更新任务 。对话任务处理所有与其它联机用户的交互会话。更新任务专用于执行数据库更新。更新函数用于在对话任务和更新任务中执行更新。对话任务更新是同步更新。更新任务更新是异步更新。(例外:用 COMMIT WORK AND WAIT触发更新任务功能时,它是同步更新)在事务内部,对于每条COMMIT WORK语句可以调用一个或多个更新任务功能模块。在报表中,调用更新任务的地方,也可以通过COMMIT WORK语句显式提交更新任务功能模块。简单来说,更新函数只能在COMMIT WORK或ROLL BACK处才会被执行。而一般调用事务内部,在完成一个SAP LUW时都有一个隐式的COMMIT WORK功能,故不用再明确提交;而在报表事务中,需要显式使用COMMIT WORK功能进行更新函数的提交。3.4 更新函数的调试三类函数的调试存在很大的区别。普通函数需要通过内部断点( )进行调试,RFC函数需要登录链接账户(华中账户为CCGCRFC)通过外部断点( )进行调试。更新函数需要开启一个特殊功能后才能调试,现将具体调试方法分为三步进行说明。3.4.1 开启Update debugging功能更新函数测试需要开启Update debugging功能后才能实现。首先设置断点进入Debugging功能界面,选择Setting display/change debugging Settings 勾选 Update debugging 复选框,并点击保存( ) 按钮。(如果勾选提交按钮,只会在本次登录中有效。如果勾选保存按钮,下次登录后该调试功能依旧有效。)3.4.2 测试更新函数运行主函数,程序处理完COMMIT WORK语句后,自动进入更新任务表。以学习机程序 YYWANGT_UPDATAMODULE为例。1. 程序运行到更新函数处2. 直接跳过更新函数,执行COMMIT WORK3. 执行COMMIT WORK后,进入更新任务表中更新函数3.4.3 SM13监控更新任务表事务码SM13进入更新任务监控。选择TO BE UPDATED显示当前还未执行的更新列表;选择ALL显示当前尚未执行的更新列表和存在报错的更新列表。点击执行后存在两个更新任务。第一行的STATUS为INITIAL表明程序还未执行;第二行的STATUS为黄色,表明程序执行过程有错误。点击第一行可进入更新函数列表,其中包含两个更新函数:YYWANGT_UPDATAMODULE: 为V2类型的更新函数;YYWANGT_UPDATAMODULE2:为V1类型的更新函数。根据V1,V2类型的区别(优先执行V1,待全部执行后再执行V2)。程序首先执行V1类型的更新函数;V1函数执行成功后,更新函数列表如图所示:程序继续执行V2类型的更新函数;执行成功后,在更新任务列表中该记录消失。针对存在错误的更新函数,我们可通过点击更新任务列表详细查看报错的函数。双击弹出提示框,可点击ABAP SHORT DUMP( )按钮查看详细报错信息。同样我们也可通过ST22查看报错记录。4. 结束语更新函数的使用范围是很广泛的,尤其在ERP与其他系统的接口功能设计时使用很方便。举一个代表性的例子:当我们需要获取用户刚创建的固定资产信息,但是提供的增

温馨提示

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

最新文档

评论

0/150

提交评论