查询BOM相关性值方法

来源:互联网 发布:基础地理信息数据下载 编辑:程序博客网 时间:2024/06/04 00:24

查询BOM相关性值,如下图所示




直接从表中取值逻辑:

通过BAPI:CS_BOM_EXPL_MAT_V2抓取出来BOM结构stb  gt_stb,

 gt_stb-KNOBJ关联CUOB-KNOBJ取到CUOB-KNNUM,再通过CUOB-KNNUM关联CUKN-KNNUM取到CUKN-KNBLK的值作为相关性字段的值。

这个方式有个问题:当相关性值是多行的时候,只能抓取一行

————————————————————————————————————————

通过BAPI:CSAP_MAT_BOM_READ实现

***相关性
  CALL FUNCTION 'CSAP_MAT_BOM_READ'
    EXPORTING
      material     p_stdpd
      plant        p_werks
      bom_usage    '1'
    TABLES
      t_dep_source gt_dep_source
    EXCEPTIONS
      error        1
      OTHERS       2.

  DELETE gt_dep_source WHERE line space.


其中GT_DEP_SOURCE中存储相关性值

通过如下方法读取



DATAlv_knnum TYPE csdep_sorc-dep_intern,

     lv_str   TYPE string.

FIELD-SYMBOLS:<gw_dep_source> TYPE csdep_sorc.

    SELECT SINGLE knnum
      INTO lv_knnum
      FROM cuob AS a
      WHERE a~kntab 'STPO'
      AND   a~knobj gt_stb-knobj.

    "lv_knnum = '82'

    LOOP AT gt_dep_source ASSIGNING <gw_dep_source>
                WHERE item_node gt_stb-stlkn
                AND   item_count gt_stb-stpoz
                AND   dep_intern lv_knnum.
      IF lv_str IS INITIAL.
        lv_str <gw_dep_source>-line.
      ELSE.
        CONCATENATE lv_str <gw_dep_source>-line INTO lv_str SEPARATED BY space.
      ENDIF.
    ENDLOOP.

获取的LV_STR即是 完整的相关性值