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. Java学习day20

    一个简单的鼠标点击在窗口画点的程序 今天学习了键盘监听和Swing窗口 Swing可以理解为是AWT的升级版本,方法名字等大都相似,例如Frame和JFrame AWT如果要关闭窗口,需要使用窗口监听 ...

  2. 原生的ajax请求

    原生ajax请求的步骤: get 请求: 1,创建一个xhr变量 var xhr=new XMhttpRequest(); 2,设置请求方式和请求地址 xhr.open('url','http//19 ...

  3. Java实现负载均衡算法--轮询和加权轮询

    1.普通轮询算法 轮询(Round Robin,RR)是依次将用户的访问请求,按循环顺序分配到web服务节点上,从1开始到最后一台服务器节点结束,然后再开始新一轮的循环.这种算法简单,但是没有考虑到每 ...

  4. python基础练习题(题目 求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制)

    day11 --------------------------------------------------------------- 实例018:复读机相加 题目 求s=a+aa+aaa+aaa ...

  5. Go语言 时间函数

    @ 目录 引言 1. 时间格式化 2. 示例 引言 1946年2月14日,人类历史上公认的第一台现代电子计算机"埃尼阿克"(ENIAC)诞生. 计算机语言时间戳是以1970年1月1 ...

  6. ABP应用开发(Step by Step)-下篇

    测试 ProductAppService 类 启动模板附带测试基础架构,包括xUnit.Shouldly和NSubstitute库.它使用SQLite 内存数据库来模拟数据库,并为每个测试创建一个单独 ...

  7. Java 语言实现简易版扫码登录

    基本介绍 相信大家对二维码都不陌生,生活中到处充斥着扫码登录的场景,如登录网页版微信.支付宝等.最近学习了一下扫码登录的原理,感觉蛮有趣的,于是自己实现了一个简易版扫码登录的 Demo,以此记录一下学 ...

  8. 1.ArrayList和LinkedList区别

    说⼀下ArrayList和LinkedList区别 具体区别 1.1. ⾸先,他们的底层数据结构不同,ArrayList底层是基于数组实现的,LinkedList底层是基于链表实现的 1.2. 由于底 ...

  9. windbg的时间旅行实现对 C# 程序的终极调试

    一:什么是时间旅行 简而言之就是把程序的执行流拍成vlog,这样就可以对 vlog 快进或者倒退,还可以分享给别人做进一步的分析,是不是想都不敢想. 很开心的是 windbg preview 版本中已 ...

  10. Vulnhub-earth

    1.信息收集 1.1找到目标主机ip vulnhub靶场通用的技巧 这里我们靶场是nat模式的 所以肯定就是在我们自己设置的一个网段范围内,我这里nat本机的地址是10.1.1.1 所处的网段就是10 ...