您的位置:首页 > 其它

BOM相关函数

2015-07-14 14:39 393 查看
1

15 .函数CS_WHERE_USED_MAT(逆查BOM)

   说明﹕取的物料的上层物料

                CALL FUNCTION 'CS_WHERE_USED_MAT'  

             EXPORTING

               datub                      = sy-datum

               datuv                      = sy-datum

               matnr                      = t_afru-matnr

*             POSTP                       = ' '

*             RETCODE_ONLY                = ' '

*             STLAN                       = ' '

               werks                      = '1000'

*        IMPORTING

*             TOPMAT                      =

             TABLES

                  wultb                   = ltb

                  equicat                 = equicat

                  kndcat                  = kndcat

                  matcat                  = matcat

                  stdcat                  = stdcat

                  tplcat                  = tplcat

             EXCEPTIONS

                  call_invalid                = 1

                  material_not_found          = 2

                  no_where_used_rec_found     = 3

                  no_where_used_rec_selected  = 4

                  no_where_used_rec_valid     = 5

                  OTHERS                      = 6.

         参数﹕datub:  当前日期

               datuv:  当前日期

               matnr:  要找回上层BOM物料的物料

               werks:  工厂通常取’1000’ 

               wultb:  所有的上层BOM物料存放在该表中(该表结构固定)

               equicat:  固定结构﹐一定要

               kndcat :  固定结构﹐一定要

               matcat:  固定结构﹐一定要 

               stdcat : 固定结构﹐一定要

               tplcat : 固定结构﹐一定要

  示例:   ZBAK_ZPP000222_LSL

BOM 展开函数(顺查BOM)

16 .只展开 BOM 的函数

  CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'

   EXPORTING

      capid = pm_capid   “应用程序 一般为 PP01 

      datuv = pm_datuv   “通常为系统的当前日期 

      mtnrv = pm_mtnrv   “要展开BOM 的物料

      mehrs = 'X'        “ x 表示多层展开﹐space 表示只展开第一层

      werks = pm_werks   “ 通常为 1000

   IMPORTING

      topmat = selpool

      dstst  = dstst_flg

   TABLES

      stb = stb          “展开的 BOM 存放在该内表

      matcat = matcat    “下面含有组件的物料存放在该内表

17 .展开与特性相关的特定款号的 BOM 

   CALL FUNCTION 'CS_BOM_EXPL_ KND_V1'

   EXPORTING

      capid = pm_capid   “应用程序 一般为 PP01 

      datuv = pm_datuv   “通常为系统的当前日期 

      mtnrv = pm_mtnrv   “要展开BOM 的物料

      cuobj = vbap_wa-cuobj “与特性相关的组态

      mehrs = 'X'        “ x 表示多层展开﹐space 表示只展开第一层

      werks = pm_werks   “ 通常为 1000

   IMPORTING

      topmat = selpool

      dstst  = dstst_flg

   TABLES

      stb = stb          “展开的 BOM 存放在该内表

      matcat = matcat    “下面含有组件的物料存放在该内表

范例见系统报表程序 RCS12001

1 说明﹕内表 stb, matcat 结构固定, 输出参数 selpool , dstst_flg 固定,

      其固定结构如下:

 内表:

   DATA: BEGIN OF stb OCCURS 1000.

         INCLUDE STRUCTURE stpox.

   DATA: END OF stb.

   DATA: BEGIN OF matcat OCCURS 50.

         INCLUDE STRUCTURE cscmat.

   DATA: END OF matcat.

  输出参数:

     DATA: BEGIN OF selpool.

           INCLUDE STRUCTURE cstmat.

      DATA: END OF selpool.

      DATA: dstst_flg LIKE csdata-xfeld.

  2 说明﹕内表 stb 中的数据按第一层顺序号排序﹐如第一层组件下还有BOM, 

          则其BOM显示在其下面﹐并依次分层(下面BOM 也按顺序号排列) 

           stb 下的重要字段说明如下﹕

           stufe : 在整个 BOM 中的层次 

           tdidx : 对应 matcat-index ﹐标志直属哪个物料下的 BOM

           ojtxb : 上层物料的物料说明

           ojtxp : 本身物料说明

           idnrk : 组件名(即物料)

           stlkn : 在各自 BOM 中的顺序号

           matkl : 该物料群组

           mtart : 物料类型 (成品﹐半成品﹐原料)

           matcat 下的重要字段 (表matcat 存放下面还有BOM 的物料)

           matnr : 物料号

           index : 顺序号

BOM是有“有效期”的,用CS12查询时输入不同的valid from,则得出的BOM结果就有可能不同。用FM:CS_BOM_EXPL_MAT_V2取BOM也是一样的道理。 

一般情况下,将以上的参数datuv 赋予当前日期sy-datum,即可得到当前最新的有效BOM。

对于capid参数,一般情况下,我们所取的都生产用BOM,所以必须指定为"PP01" 。如果是其它类型的BOM应用,则可以按需要选择:
PP01------ Production - general
BEST------ Inventory management
INST ------ Plant maintenance
PC01 ------ Costing
PI01 ------ Process manufacturing
SD01------ Sales and distribution
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  BOM SAP ABAP