ABAP内表按对象引用属性排序的可行性及实现原理问询
关于ABAP内表按对象属性排序的问题
语句是否可行?
完全可以用你给出的语句实现需求:
SORT gt_table BY instance->atribute_1 instance->atribute_2 instance->atribute_3.
实现原理
- ABAP从7.40 SP05版本开始,
SORT语句支持直接通过对象引用访问实例属性作为排序关键字,无需提前将属性值导出到内表字段中。 - 排序执行时,系统会逐行遍历内表,通过每行的
instance对象引用,直接读取对应实例的atribute_1、atribute_2、atribute_3属性值。 - 排序优先级严格遵循你指定的顺序:优先按
atribute_1的值排序,值相同的行再比较atribute_2,前两个属性均一致的情况下最后比较atribute_3,默认采用升序规则,若需降序可在对应属性后追加DESCENDING关键字。 - 有两个关键前提:一是所有对象的这三个属性类型必须一致(保证值比较的合法性);二是属性的访问权限需满足当前程序的访问要求(比如属性为
PUBLIC,或者当前类拥有访问权限),否则会触发语法或运行时错误。
内容的提问来源于stack exchange,提问作者sisi
相关产品推荐
相关产品推荐

