查询BOM相关性值方法

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

查询BOM相关性值方法_第1张图片

查询BOM相关性值方法_第2张图片


直接从表中取值逻辑:

通过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中存储相关性值

通过如下方法读取


查询BOM相关性值方法_第3张图片

DATAlv_knnum TYPE csdep_sorc-dep_intern,

     lv_str   TYPE string.

FIELD-SYMBOLS: 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 
                WHERE item_node gt_stb-stlkn
                AND   item_count gt_stb-stpoz
                AND   dep_intern lv_knnum.
      IF lv_str IS INITIAL.
        lv_str -line.
      ELSE.
        CONCATENATE lv_str -line INTO lv_str SEPARATED BY space.
      ENDIF.
    ENDLOOP.

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

查询BOM相关性值方法_第4张图片




你可能感兴趣的:(SAP,PP,BAPI,+,FUNCTION)