SAP 系统中,一些单据保存到数据库用的是 update mudule function。
命名是ME_UPDATE_* (业务说明)

例:PR save module: ME_UPDATE_REQUISITION
ME_UPDATE_INFORECORD   更新采购主记录数据

ME_UPDATE_AGREEMENT_PO更新采购凭证

ME_UPDATE_SCHEDULE_EKPO计划协议下达

ME_UPDATE_DELIVERY       更新采购凭证 ???

一些增强如果可以在单据保存时候做,在更新模块中加上隐式增强是一种方式:
不清楚是不是最好的,但是我的第一个
也是最大的项目的经历是使用了这种增强方式。

注意点:1,update module 不支持普通的调试模式,得在debug 模式下勾上'数据库更新'选项;

之前使用过 数据库更新选项,今天下午找了很久也没有找到,所以对于技术点的技术尤其重要。

2.此处增强后一定要非常细致的测试,我的体验,因为报错不明显,比不上SE38编辑器的检查,
而且不会出现abap dump,而是附件邮件形式通知错误,
所以A.一定确保没有影响标准更新,

B.保证达到了自己的业务目的

建议:(1)一般是隐式增强点,可以使用一个自建函数实现增强逻辑;
     (2)不用用 commit /
rollback 数据库提交语句;
      (3) 
尽量不要使用check, 避免检查失败
不运行其他业务逻辑。

UPDATE
MODULE的类型

FUCTION MODULE 的处理类型有三种:
(1)常规函数模块,
(2)远程启用的模块,

(3)更新模块,

每种下面又包含4种分类;
a,立即开始

b,立即启动,无重启(不可重启);

c,延迟启动;

d,集中运行;

collective run. 前两种属于V1类型,后两种属于V2类型。

UPDATE
MODULE 的类型决定了其处理的模式。多有dialog程序里的V1请求都会在单独的DB LUW 里执行。只有当V1执行成功之后才会处理V2请求,

V2也会在单独的LUWS 里执行。

V2类型的 UPDATE MODULE 处理的DB changes
一般都是紧接着V1 的CHANGES(MAIN CHANGES)之后进行。

V1
1 V1 类型的 UPDATE MODULE 分可重新启动不可重新启动两种。V2类型的当发生错误的时候总是可以重新启动,再次处理。

2V1
请求都会在一个V1类型的UPDATE WORK PROCESS(UPD)作为一个单独的DB LUW来处理。

如果V1更新成功,系统会删除V1的请求和所有在V1更新任务上的锁,并设置一个DB COMMIT,然后触发V2更新。

V2

1V2类型的COLLECTIVE RUNSAP内部使用。相应的V2请求并不是在V1执行之后直接执行,而仅仅是在程序RSM13005被调用之后才执行 

(2) V2请求也是在一个V2类型的UPDATE WORK PROCESS(UPD2)作为一个单独的DB LUW来处理。如果SAP系统没有设置V2类型的UPDATE WORK PROCESS,则V2请求会在一个V1类型的UPDATE WORK PROCESS里进行处理。如果V2请求处理成功,将会从VBLOG删除相关的请求,并设置一个DB COMMIT。V2请求一般都会运行在没有锁的情况下,因为这些锁在V1完成之后就被删除掉了。因此,V2更新总是运行在没有SAP LOCKS的情况下。

如果V1
UPDATE MODULE 用一个终止消息终止了V1更新,那么V1更新任务上的锁将被删除,数据库将ROLLBACK,一个E-MAIL会发送给创建这个LUW的用户,并且V1请求在VBLOG 表中被标记为不正确。V2更新也就是不会被触发。

当然如果V2
UPDATE MODULE 终止了V2更新,同样的,数据库ROLLBACK,属于这个SAP LUW 的V2更新都不会执行,V2请求在VBLOG 表中被标记为不正确。

DIALOG 程序用_SCOPE = 2创建的锁会被传递到V1 更新任务中,在V1更新的结束,不管V1更新是否成功或者终止,都会把这些锁自动删除。
因此,在DIALOG程序中不能显式的删除这些锁(太早),或者在UPDATE MODULE里删除(没必要)。

SAP系统更新模块的更多相关文章

  1. Java(JCo3)与SAP系统相互调用

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. Winform开发框架之通用自动更新模块(转)

    在网络化的环境中,特别是基于互联网发布的Winform程序,程序的自动更新功能是比较重要的操作,这样可以避免挨个给使用者打电话.发信息通知或者发送软件等,要求其对应用程序进行升级.实现程序的自动更新, ...

  3. 到底什么样的企业才适合实施SAP系统?

    SAP系统作为全宇宙第一的ERP,号称世界500强里面有80%的企业部署了SAP系统,总部位于德国沃尔多夫市,在全球拥有6万多名员工,遍布全球130个国家,并拥有覆盖全球11,500家企业的合作伙伴网 ...

  4. 终于将SAP系统完全配置通过了

    花了近10天的时间,每天晚上加班加点,终于将SAP S4 1610 IDES系统从零到有,从头到尾配置一遍.目前只启用了一家模拟公司,从基础数据的设置,到销售订单开立(含按单按库需求),跑MRP需求, ...

  5. RDIFramework.NET V3.3 Web版新增系统公告、系统新闻模块方便需要的客户

    1.系统新闻功能描述 在RDIFramework.NET V3.3版本中新增了系统新闻模块,用户可以根据实际情况做相应应用,如用在内部业务系统的展示中或网站上新闻的展示.新闻可以分类进行管理,非常的实 ...

  6. SAP ERP SD模块中维护销售人员

    SAP ERP SD模块中维护销售人员信息并分配销售组织   分类: SAPHCM用户指南   在SAP ERP系统,销售和分销(SD)模块中需要创建销售人员(Sales Personnels)消息, ...

  7. ansible笔记(8):常用模块之系统类模块(二)

    ansible笔记():常用模块之系统类模块(二) user模块 user模块可以帮助我们管理远程主机上的用户,比如创建用户.修改用户.删除用户.为用户创建密钥对等操作. 此处我们介绍一些user模块 ...

  8. SAP系统接口方式:

    SAP系统接口方式: 1.PI - 信使中间件 (大公司多选择) 数据: SAP- PI- U8 U8- PI- SAPPI 底层用的还是webservice 技术优点:实时性高: 可处理大数据(在调 ...

  9. BeagleBone Black Industrial系统更新设置一贴通

    前言 原创文章,转载引用务必注明链接.水平有限,欢迎指正. 本文使用markdown写成,为获得更好的阅读体验,推荐访问我的博客原文: http://www.omoikane.cn/2016/09/1 ...

随机推荐

  1. HDU——1195Open the Lock(双向BFS)

    Open the Lock Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  2. 刷题总结——bzoj1725(状压dp)

    题目: 题目描述 Farmer John 新买了一块长方形的牧场,这块牧场被划分成 N 行 M 列(1<=M<=12; 1<=N<=12),每一格都是一块正方形的土地. FJ  ...

  3. 洛谷 P 1119 灾后重建

    题目背景 B地区在地震过后,所有村庄都造成了一定的损毁,而这场地震却没对公路造成什么影响.但是在村庄重建好之前,所有与未重建完成的村庄的公路均无法通车.换句话说,只有连接着两个重建完成的村庄的公路才能 ...

  4. Laravel 表单及分页

    控制器代码 //列表 public function index(){ //不带分页// $student = Student::get(); //带分页 $student = Student::pa ...

  5. Codeforces Round #511 (Div. 2) C. Enlarge GCD

    题目链接 题目就是找每个数的最小素因子,然后递归除,本来没啥问题,结果今天又学习了个新坑点. 我交了题后,疯狂CE,我以为爆内存,结果是,我对全局数组赋值, 如果直接赋值,会直接在exe内产生内存,否 ...

  6. python 获取时间 存入文件

    1读文件: file_path_name = '/home/robot/bzrobot_ws/src/bzrobot/bzrobot_comm/led_show_data/'+file_name+'. ...

  7. codevs科技庄园

    /* 因为每一秒只能走一个单位长度,而每走一个单位长度又会消耗一个体力值,如果体力值没有了时间还有也只能按照体力值计算,反之一样,所以V对于时间和体力值取小 cnt记录有桃子的树的个数,node[cn ...

  8. Hadoop三种模的安装配置过程

    JDK+Hadoop安装配置.单机模式配置 以下操作在SecureCRT里面完成 1.关闭防火墙 firewall-cmd --state 显示防火墙状态running/not running sys ...

  9. Windows使用Telnet连接Linux服务器初探(待实践)

    在Windows下可以适用Telnet连接Linux服务器,但是前提是在Linux下需要安装Tlenet-Server.还要开启防火的23端口.搞定之后就可以用telnet IP进行连接. 但是,我发 ...

  10. gdb源码安装,指定使用的python版本

    gdb调试python的时候,需要根据不同的python版本2.6.2.7.3.x安装相应的gdb: 如何指定关联的python版本? 下面gdb源码,解压后,进入目录: ./configure -h ...