分类:
2010-08-05 10:03:27
本架构借鉴change document的更新机制,在更新前通过change document函数changedocument_prepare_tables 比较新旧数据之间的差异,即比较本文中所称的X结构(xdata)和Y结构(ydata),X结构存储的是老的数据,Y结构存储着进行更新后的数据。在比较之前我们需要准备这两个结构的数据,本框架首先基于该机制构建两个结构,在SE11中构建X结构和Y结构,所有待更新的表结构都挂这两个结构下。
使用该框架的程序执行时首先取到已有的旧数据到X、Y结构中,界面上所有待更新的字段都参考Y结构创建,界面字段更新时Y结构中的内容同步更新。保存前通过前文提到的function module逐个表判断X结构和Y结构中数据的差异,该FM会自动标识哪些记录是新增、修改、删除的记录,然后根据标识分别存放到三个内表中,最后通过判断三个内表是否为空分别进行更新,共同提交事务完成更新。
本框架的优点在于:当需要添加表字段时,我们只需要在SE11中修改相应表结构,然后在程序界面上参考Y结构添加相应的字段即可,更新逻辑会自动完成,无需做其他任何程序上的修改。当然如果需要添加检查逻辑的话,还是需要添加相应的程序逻辑的。另外,无需我们开发人员来判断是新增还是修改亦或删除,通过复用change document的FM来完成。第三,本框架使用起来简单,我们只需要明白X结构、Y结构的功用,基本可以构建自己的程序结构,完成易于阅读、易于修改的程序。