您的位置:首页 > 其它

ABAP总结之十一,Enhancement(2)--Dictionary Elements

2008-07-29 08:03 232 查看
对于透明表及结构的增强,主要两种。一种是Append Structure,还有一种就是Include形式。
Append Structure可以扩展原来的表结构,但是并不是在原来的表上加字段,而是再建一个附加的结构,物理上,数据是存在两处的。而且,一个Append Structure只能有一张表结构。如果把有Append Structure结构的表进行复制的话,那么在新的表中,原有的Append Structure就变成了固定字段,物理表也变成了一张。
Include格式,多见于由于增强而自动生成的表字段,比如做屏幕增强的时候。当然,你也可以自己定义。相比Append Structure, Include就可以包含多张表结构(Include的Data Elements可以Append Structure)。它不具有Append Structure的‘复制’性能,即使复制,还是会以原结构存在于新表中。
当你做完增强后,如果想所加字段在SM30表维护中也出现,那么需要通过以下路径生成表维护程序:
SE11->进入相应表,并做完增强->Utilities->Table Maintenance Generator
如果你要反复地更改增强,比如改变某一字段的长度。那么在减少字段时,需用SE14进行物理表的修改,否则无法激活。
有一种情况要注意,原有数据表中存在数据时,Append Structure或Include增强,不会影响原有数据,只会在原有的数据中加上相应的空白字段。如果,将字段的长度减少时,数据的就会丢失,一般是从尾部开始丢失。所以不建议,在已有数据的情况下,减少字段长度。
下面将以下我碰到的一个实际例子。
由于业务的需要,一个标准表的标准字段长度不够,这时候就要增强字段长度。我那时候想了3套方案。
1.直接增加字段长度。
(由于这个字段有一定的命名规则,程序会截取字符进行进行判断,直接增加字段长度,直接修改代价比较大)
2.Apend一个附加字段,在逻辑判断的时候,将附加字段和原有字段综合起来进行判断。
(要修改相应的程序)
3.由于这个字段是用来Mapping的,有它一定的命名规则。改变原有的命名规则,延长这个字段的使用寿命。
现在还没定出来使用哪个。不过个人感觉,如果一开始架构的时候能对业务增长有一个比较可靠的估计,那么碰到这种情况的概率也会大大减少。毕竟,上线后再做修改和增强,已经属于费力的工程了。

对于字典文档的增强,可以在以下路径中做:
CMOD->GoTo->Text enhancements->Data elements/Keywords
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: