1.查找 物料号、工厂、物料描述。

表:MARA MARC MAKT

逻辑:  

输入物料(选择选项)中的物料编号(MARA-MATNR)和
                       输入工厂(选择选项)中的工厂(MARC-WERKS)和
                       输入物料类型(选择选项)中的物料类型(MARA-MTART)。
                       注意:继续执行步骤2或3或4取决于“生产”或“工程”或“所有物料清单”选项的输入单选按钮。

代码:

SELECT   A~MATNR,
B~WERKS,
A~MTART,
C~MAKTX
INTO TABLE @DATA(LT_MAT)
FROM MARA AS A
JOIN MARC AS B ON A~MATNR = B~MATNR
JOIN MAKT AS C ON B~MATNR = C~MATNR
WHERE A~MATNR IN @S_MATNR
AND B~WERKS IN @S_WERKS
AND A~MTART IN @S_MTART.

2.查找BOM  工程项目。

表:MAST.

代码:

SELECT MATNR,
WERKS,
STLAN, "BOM Usage
STLNR, "Bill of material
STLAL "Alternative BOM
INTO TABLE @DATA(LT_MAST)
FROM MAST
FOR ALL ENTRIES IN @LT_MAT
WHERE MATNR = @LT_MAT-MATNR
AND WERKS IN @S_WERKS
AND STLAN = '2'."engineering usage. IF LT_MAST IS NOT INITIAL.
"BOM HEADER DATA
SELECT STLTY, "BOM category
STLNR,
STLAL ,
STKOZ, "Internal counter
LOEKZ , "Deletion flag for BOMs
ANDAT, "Date record created on
BMEIN, "Base unit of measure for BOM
BMENG, "Base quantity
INTO TABLE @DATA(LT_STKO)
FROM STKO
FOR ALL ENTRIES IN @LT_MAST
WHERE STLNR = @LT_MAST-STLNR
AND STLAL = @LT_MAST-STLAL. "BOM ITEM DATA
SELECT STLNR,
STLKN,
STPOZ,
POSTP
INTO TABLE @DATA(LT_STPO)
FROM STPO
FOR ALL ENTRIES IN @LT_MAST
WHERE STLNR = @LT_MAST-STLNR. "PERMANENT BOM DATA
SELECT STLNR,
STLAN,
EXSTL,
ZTEXT
INTO TABLE @DATA(LT_STZU)
FROM STZU
FOR ALL ENTRIES IN @LT_MAST
WHERE STLNR = @LT_MAST-STLNR. ENDIF.

3、查找BOM  产品。

       SELECT MATNR,
WERKS,
STLAN, "BOM Usage
STLNR, "Bill of material
STLAL "Alternative BOM
INTO TABLE @DATA(LT_MAST)
FROM MAST
FOR ALL ENTRIES IN @LT_MAT
WHERE MATNR = @LT_MAT-MATNR
AND WERKS IN @S_WERKS
AND STLAN = '1'."Production usage "BOM HEADER STKO
"BOM ITEM STPO
"BOM TEXT STZU "使用以下条件从表MKAL中按照数据映射读取生产版本和资源: SELECT MATNR,
WERKS,
STLAL,
STLAN
INTO TABLE @DATA(LT_MKAL)
RROM MKAL
FOR ALL ENTRIES IN @LT_MAST
WHERE MATNR = @LT_MAST-MATNR
AND WERKS = @LT_MAST-WERKS.
"注意:
如果有多个工厂,则报告按工厂显示

4、物料BOM比较。

       SELECT MATNR,
WERKS,
STLAN, "BOM Usage
STLNR, "Bill of material
STLAL "Alternative BOM
INTO TABLE @DATA(LT_MAST)
FROM MAST
FOR ALL ENTRIES IN @LT_MAT
WHERE MATNR = @LT_MAT-MATNR
AND WERKS IN @S_WERKS。 "相关表列表:MAST Material BOM
"STKO BOM Header
"STPO BOM Positions (detail)
"MAPL Assignment fo Task Lists to Materials
"PLKO Routing Group Header
"PLSO Routing Group Sequence
"PLPO Routing Group Operations
"AFKO Production Order Header
"AFPO Production Order Position (details)
"MKAL Production Version

5.函数

1》APIs for BOMs: Display Material BOM

CSAP_MAT_BOM_READ

6、BOM 展开。

CALL FUNCTION 'CSAP_MAT_BOM_READ' "

  EXPORTING

    material =                  " csap_mbom-matnr  Material 物料编码

*   plant =                      " csap_mbom-werks  Plant    工厂

    bom_usage =                 " csap_mbom-stlan  BOM usage BOM用途

*   alternative =               " csap_mbom-stlal  Alternative BOM 可选的BOM

*   valid_from =                " csap_mbom-datuv  Valid-from date 开始日期

*   valid_to =                  " csap_mbom-datub  Valid-to date  截止日期

*   change_no =                 " csap_mbom-aennr  Change number  变更号

*   revision_level =            " csap_mbom-revlv  Revision level  版本级别

  IMPORTING

    fl_warning =                " capiflag-flwarning  Log contains warning messages

* TABLES

*   t_stpo =                    " stpo_api02    BOM items BOM明细

*   t_stko =                    " stko_api02    BOM headers BOM表头

*   t_dep_data =                " csdep_dat     Object dependencies: basic data

*   t_dep_descr =               " csdep_desc    Object dependencies: description

*   t_dep_order =               " csdep_ord     Object dependencies: sort sequence

*   t_dep_source =              " csdep_sorc    Object dependencies: source code

*   t_dep_doc =                 " csdep_doc     Object dependencies: documentation

  EXCEPTIONS

    ERROR = 1                   "               Terminate processing

 

You can use this function module to display simple material BOMs. You cannot display BOM groups (for example, all variants of a variant BOM). as in transaction CS03.
Current restrictions:
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'

        EXPORTING

*       ALEKZ                       = ' '              " 是否计算耗损

          capid                       = 'PP01'           " BOM应用

          datuv                       = sy-datum         " 有效起始日

          ehndl                       = '1'

          emeng                       = '1'              " 需求数量

          mehrs                       = 'X'              " 多层展开

          mmory                       = '1'              " 是否使用缓存

          mtnrv                       = itab_mast-matnr "'000000000090000199'     " 展开物料号

          stlan                       = '1'              " BOM用途

          werks                       = itab_mast-werks  "'1002'      " 物料所在工厂

*     IMPORTING

*       TOPMAT                      =

*       DSTST                       =

        TABLES

          stb                         = stb

*       MATCAT                      =

        EXCEPTIONS

          alt_not_found               = 1

          material_not_found          = 3

          missing_authorization       = 4

          no_bom_found                = 5

          OTHERS                      = 9

                .

  IF sy-subrc <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  ENDIF.

SAP BOM 读取的更多相关文章

  1. 【ABAP系列】SAP BOM反查

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP BOM反查   前言部分 ...

  2. SAP BOM 笔记(本文仅作笔记使用,非原创)

    SAP各种BOM汇总--含义解释(简洁易懂)-转载(原文连接:http://blog.sina.com.cn/s/blog_b9137f430102xpam.html)感谢作者分享     订单BOM ...

  3. .NET通过RFC读取SAP数据

    本篇文章中我主要讲的是.NET如何通过RFC从SAP中读取数据.为了功能的可复用性,我将调用RFC的代码从业务层中分离出来单独建立在一个namespace中. 当然除了需要我们自己编写代码以外,还需要 ...

  4. 物料BOM和生产订单BOM的区别

    物料BOM和生产订单BOM的区别[@more@] 一般企业生产部在SAP创建生产订单的时候,就会产生一个生产订单BOM,这里的生产订单BOM是读取的物料BOM. 由于其它原因,需要修改成品的某几个零部 ...

  5. Open SQL详解

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. php读取文件时多了个%uFEFF[bom字符],怎样去掉?

    今天从记事本文件中读取静态生成记录时,发现读出来的第一个链接打开的时候总是提示非法操作,把鼠标放到链接上发现链接的前面多了个%uFEFF, 百度一查,原来这是好多人都有遇到过的bom头问题,特地记录下 ...

  7. 读取含有BOM头的文件遇到的问题

    需求是读取一个csv文件,然后解析成对应的数据结构.csv必须包含指定的某些列,通过列名header来进行校验. 解析配置文件的方法. public List<QuestionData> ...

  8. Java读取Unicode文件(UTF-8等)时碰到的BOM首字符问题,及处理方法

    转载:https://blog.csdn.net/clementad/article/details/47168573 2015-18-01修改:增加 apache commons io 处理方法. ...

  9. Utf-8+Bom编码导致的读取数据部分异常问题

    项目中经常会有这种场景,在配置文件中配置对应关系,项目启动的时候从中读取数据存入map缓存起来,这样使用的时候就可以直接从map找到对应的映射关系. 然后遇到了这么一个诡异的问题,一个简单的映射关系如 ...

随机推荐

  1. Go xmas2020 学习笔记 06、Control Statements、Declarations & Types

    06-Control Statements. If-then-else. Loop. for. range array. range map. infinite loop. common mistak ...

  2. go interface{}使用

    先上代码 func In(haystack []interface{}, needle interface{}) (bool, error) { sVal := reflect.ValueOf(hay ...

  3. netty系列之:netty中的核心MessageToByte编码器

    目录 简介 MessageToByte框架简介 MessageToByteEncoder ByteToMessageDecoder ByteToMessageCodec 总结 简介 之前的文章中,我们 ...

  4. BootstrapBlazor实战 Menu 导航菜单使用(1)

    实战BootstrapBlazorMenu 导航菜单的使用, 以及整合Freesql orm快速制作菜单项数据库后台维护页面 demo演示的是Sqlite驱动,FreeSql支持多种数据库,MySql ...

  5. JAVA IDEA连接mysql遇到的问题

    Mysql-connector-java驱动问题 因为缺乏驱动而无法成功连接数据库 下载驱动(教程) 相关网址 安装驱动 简单图示

  6. 十分钟快速了解《你不知道的 JavaScript》(上卷)

    最近刚刚看完了<你不知道的 JavaScript>上卷,对 JavaScript 有了更进一步的了解. <你不知道的 JavaScript>上卷由两部分组成,第一部分是< ...

  7. 为 ASP.NET Core (6.0)服务应用添加ApiKey验证支持

    这个代码段演示了如何为一个ASP.NET Core项目中添加Apikey验证支持. 首先,通过下面的代码创建项目 dotnet new webapi -minimal -o yourwebapi 然后 ...

  8. 被迫开始学习Typescript —— interface

    一开始以为,需要使用 class 来定义呢,学习之后才发现,一般都是使用 interface 来定义的. 这个嘛,倒是挺适合 js 环境的. 参考:https://typescript.bootcss ...

  9. Dart 2.17 正式发布

    文/ Michael Thomsen, Google Dart 团队产品经理,2022 年 5 月 12 日发表于 Dart 官方博客 随着 Flutter 3 在本次 I/O 大会的发布,我们也同时 ...

  10. Install Ubuntu on Windows Subsystem for Linux

    安装参考 ubuntu.com/wsl microsoft/wsl/install-manual microsoft/terminal 错误解决方案 github/启动 WSL 2时警告"参 ...