【ABAP系列】SAP BOM反查

前言部分
大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。
正文部分
TCODE::CS15
或者函数::CS_WHERE_USED_MAT
tables : stpo,stas,mara,makt. data : begin of itab occurs ,
matnr like mast-matnr,
menge like stpo-menge,
end of itab. data : begin of alttab occurs ,
matnr like mast-matnr,
menge like stpo-menge,
end of alttab. data : begin of top_code occurs ,
matnr(),
maktx(),
meins(),
menge like stpo-menge,
matkl(),
wrkst(),
end of top_code. data : begin of makr occurs ,
maker(),
idnlf(),
end of makr. data : begin of usedtab occurs .
include structure stpov.
data : end of usedtab. data : begin of equicat occurs .
include structure cscequi.
data : end of equicat. data : begin of kndcat occurs .
include structure cscknd.
data : end of kndcat. data : begin of matcat occurs .
include structure cscmat.
data : end of matcat. data : begin of stdcat occurs .
include structure cscstd.
data : end of stdcat. data : begin of tplcat occurs .
include structure csctpl.
data : end of tplcat. data : top_cnt() type n,
m_cnt() type n,
lin() type n,
line_cnt() type n. selection-screen begin of block blk1 with frame.
selection-screen : comment () text-,
skip.
parameters : matnr like marc-matnr obligatory,
werks like marc-werks obligatory default 'PQ50'.
select-options : bdate for sy-datum default sy-datum to sy-datum
no-extension obligatory.
selection-screen end of block blk1. start-of-selection.
itab-matnr = matnr.
itab-menge = .
append itab.
clear itab. perform get_top_code. ************************************
*&---------------------------------------------------------------------*
*& Form GET_TOP_CODE
*&---------------------------------------------------------------------*
form get_top_code. clear lin.
describe table itab lines lin.
if lin = .
exit.
endif. loop at itab.
call function 'CS_WHERE_USED_MAT'
exporting
datub = bdate-high
datuv = bdate-low
matnr = itab-matnr
werks = werks
tables
wultb = usedtab
equicat = equicat
kndcat = kndcat
matcat = matcat
stdcat = stdcat
tplcat = tplcat
exceptions
call_invalid =
material_not_found =
no_where_used_rec_found =
no_where_used_rec_selected =
no_where_used_rec_valid =
others = . clear line_cnt.
describe table usedtab lines line_cnt.
if line_cnt = .
move itab-matnr to top_code-matnr.
top_code-menge = itab-menge.
collect top_code.
clear top_code.
else.
loop at usedtab where postp ne 'F' and datuv le bdate-high
and ( sumfg = ' ' or sumfg = 'x' ).
select single lkenz into stas-lkenz from stas
where stlty = 'M'
and stlnr = usedtab-stlnr
and stlal = ''
and stlkn = usedtab-stlkn
and datuv le bdate-low
and lkenz = 'X'.
if sy-subrc ne .
move usedtab-matnr to alttab-matnr.
alttab-menge = usedtab-menge * itab-menge.
collect alttab.
endif.
clear alttab.
endloop.
endif.
refresh : usedtab,equicat,kndcat,matcat,stdcat,tplcat. endloop. refresh itab.
itab[] = alttab[].
refresh alttab.
perform get_top_code. endform. " GET_TOP_CODE
【ABAP系列】SAP BOM反查的更多相关文章
- SAP函数 CS_WHERE_USED_MAT 反查上层BOM
遇到用户要根据下层物料反查最上层BOM物料是什么. 试了一下,通过函数 CS_WHERE_USED_MAT 来查询,但是只能往上查询一层,类似事务码CS15的效果.如果要找最上层物料,需要自己写迭代进 ...
- 【ABAP系列】SAP GUI740 PATCH5出现弹窗BUG
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP GUI740 PATCH ...
- SAP MM 根据采购订单反查采购申请?
SAP MM 根据采购订单反查采购申请? 前日微信上某同行发来一个message,说是想知道如何通过采购订单号查询到其前端的采购申请号. 笔者首先想到去检查采购订单相关的常用报表ME2L/ME2M/M ...
- 单层反查BOM
*&---------------------------------------------------------------------* *& Report YCX_001 * ...
- 【ABAP系列】SAP ABAP BAPI_REQUISITION_CREATE创建采购申请
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP BAPI_RE ...
- 【ABAP系列】SAP ABAP 字符编码与解码、Unicode
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 字符编码与解码 ...
- 【ABAP系列】SAP ABAP下载带密码的Excel文件
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP下载带密码的Ex ...
- 【ABAP系列】SAP ABAP 高级业务应用程序编程(ABAP)
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 高级业务应用程 ...
- 【ABAP系列】SAP ABAP Break Point
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP Break P ...
随机推荐
- jmeter解析response里的json对象和数组
1.解析提取json对象 2.解析提取json数组 注意,标红这里是从0开始计数 提取最后一个数组
- Linux修改mysql配置文件
1.首先需要知道mysql数据库安装在什么位置 2.查找配置文件位置 然后在根据这个目录,查看配置文件在哪里了(路径后面加上 --verbose --help|grep -A 1 'Default o ...
- Linux双网口配置时重复配置DEFROUTE和GATEWAY
配置一台机器时,沿袭了原有网口配置,修改网口名,把em1全部修改改为eth0 mv ifcfg-em1 ifcfg-eth0 mv ifcfg-em2 ifcfg-eth1 改完以后,机器变得不稳定, ...
- Spring整合Hibernate实现Spring Data JPA (简单使用)
直接上代码: pom.xml <!-- hibernate start --> <!-- spring data jpa --> <dependency> < ...
- WTL项目各种error的解决方法
error RC1015: cannot open include file 'atlres.h' 解决办法: 向“VC项目属性->资源->附加包含目录” 添加WTL的Include目录( ...
- LINUX笔记之二常用命令(文件处理命令)
一.概述 1. “.”开头的文件是隐藏文件,大小写敏感是因为用C语言编写 2. DOS中 cd..可回到父目录 在LINUX中要用cd ..(用空格) 3. 4.LINUX命令有两种:仅root可执行 ...
- 计算机网络(六),UDP报文段详解
目录 1.UDP作用 2.UDP报文段详解 六.UDP报文段详解 1.UDP作用 (1)面向非连接 (2)不维护连接状态,支持同时向多个客户端传送相同的消息 (3)报文段报头只有8个字节,格外开销较小 ...
- 计算机网络(二),TCP/IP四层模型常见协议
目录 1.应用层协议 2.传输层协议 3.网络层协议 4.链路层协议 二.TCP/IP四层模型常见协议 1.应用层协议 (1)POP3 (2)FTP (3)HTTP (4)Telnet (5)SMTP ...
- 51 Nod 1242 矩阵快速幂求斐波那契数列
#include<bits/stdc++.h> #define mod 1000000009 using namespace std; typedef long long ll; type ...
- java 获取文本一行一行读
直接上代码: 如果出现乱码:请改一下编码:我这里使用utf-8是会乱码的,改GBK就好了 // 读取文件内容 public static String readFile(String path) {/ ...