zoukankan      html  css  js  c++  java
  • 如何取SO中的特性

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

    image

    但是如果数据量大,那么程序效率会有影响;另外一个问题,这种方法只能获取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.

    image

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

    image

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

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

  • 相关阅读:
    tomcat安装
    hadoop相关
    kafka Windows安装
    linux安装mysql
    linux安装redis
    linux安装jdk
    netcore kafka操作
    windows文件上传到linux服务器上
    SqlServer索引的原理与应用(转载)
    mssql表分区
  • 原文地址:https://www.cnblogs.com/chrisrockdl/p/13156491.html
Copyright © 2011-2022 走看看