首页 > 其他 > 详细

如何取SO中的特性

时间:2020-06-18 11:24:42      阅读:69      评论:0      收藏:0      [点我收藏+]

方法一、从VBAP中取得cuobj,然后调用FM:VC_I_GET_CONFIGURATION;

技术分享图片

但是如果数据量大,那么程序效率会有影响;另外一个问题,这种方法只能获取SO现在的特性值,看不到特性修改的状态;

方法二、

经过上网查资料和反复验证,终于找到了相关的数据库表了。如下表可以使用:

IBIN:中间转换表,主要通过INSTANCE转换。

IBINVALUES:记录所维护的特性清单。

IBSYMBOL:存储具体特性值的表(类似于AUSP)。

相关取值代码的片段:

SELECT VBAP-EBELN, VBAP-POSNR,

CABN~ATINN"内部特性

CABN

~ATNAM"特性名称

IBSYMBOL

~ATWRT"特性值APPENDING CORRESPONDING FIELDS OF TABLE ITAB_TX

FROM VBAP

INNER

JOIN IBIN ON IBIN~INSTANCE = VBAP~CUOBJ

INNER

JOIN IBINVALUES ON IBINVALUES~IN_RECNO = IBIN~IN_RECNO

INNER

JOIN IBSYMBOL ON IBSYMBOL~SYMBOL_ID = IBINVALUES~SYMBOL_ID

INNER

JOIN CABN ON CABN~ATINN = IBSYMBOL~ATINN

WHERE VBAP-CUOBJ = cuobj_list.

通过SE16N看,先从VBAP中得到CUOBJ,然后 = INSTANCE 得到IN_RECNO.

技术分享图片

进入表IBINVALUES根据IN_RECNO = IBIN-IN_RECNO;可以得到SYMBOL_ID.

技术分享图片

再进表IBSYMBOL根据SYMBOL_ID = 上面的,得到ATWRT ;

这样不必反复调用FM,实际上这个FM也是要去查询相关的数据库表,经过计算后返回特性值。即是减少了大大的数据库查询交互次数,性能当然能得到提升了。

如何取SO中的特性

原文:https://www.cnblogs.com/chrisrockdl/p/13156491.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!