文档库 最新最全的文档下载
当前位置:文档库 › SAP bom展开例程

SAP bom展开例程

众多BOM组件一次性导出系统的处理


由于工作需要现需要将导入系统的所有BOM组件导出系统进行核对,但是由于组件数据量太多不能
成功导出,会因为时间过长造成处理错误.另外EXCEL表格最大容量为65536,在处理导出的数据时也
存在不能正常打开文件的情况,请问各仁兄有何高见解决这两个问题.
可以写段调用 BAPI 的 VB 程序,把 BOM 读到任何数据库里去。
You can develop one simple program to finish this task, in this program, you should
use BOM explore function (or logical table) to store components of BOM to internal
table, and use download function to save content of internal table to local file
(txt format), open this local file use other tools, e.g. Microsoft Access, in
access, you can import your original BOM and create new query to compare them.
我有一段导出程序,如果你有开发权限可以用一下。
REPORT ZPPBOMDOWN NO STANDARD PAGE HEADING line-size 213 line-count 65.
TABLEs: MAST,STKO,STpo,STAS,MAKT,zusr03.
data: begin of imast occurs 0,
matnr like mast-matnr,
maktx like makt-maktx,
stlnr like mast-stlnr,
stlal like mast-stlal,
stlan like mast-stlan,
end of imast.
data: begin of istko occurs 0,
stlnr like stko-stlnr,
stlty like stko-stlty,
stlal like stko-stlal,
bmeng like stko-bmeng,
bmein like stko-bmein,
datuv like stko-datuv,
end of istko.
data: begin of istas occurs 0,
stlnr like stas-stlnr,
stlty like stas-stlty,
stlal like stas-stlal,
stlkn like stas-stlkn,
end of istas.
data: begin of istpo occurs 0,
stlnr like stpo-stlnr,
menge like stpo-menge,
meins like stpo-meins,
idnrk like stpo-idnrk,
maktx like makt-maktx,
stlkn like stpo-stlkn,
ausch like stpo-ausch,
posnr like stpo-posnr,
stlty like stpo-stlty,
end of istpo.
SELECTION-SCREEN: BEGIN OF BLOCK INPUT.
PARAMETERS: IWERKS LIKE MAST-WERKS OBLIGATORY.
SELECT-OPTIONS: IMATNR FOR MAST-MATNR.
PARAMETERS: ISTLAN LIKE MAST-STLAN OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK INPUT.

AT SELECTION-SCREEN ON BLOCK input.
INCLUDE ZSDIAUTH.
CALL FUNCTION 'Z_PP_AUTH_CHECK'
EXPORTING
WERKS = IWERKS
tables
zwerks = duozhi.

top-of-page.
write:/02 '工厂:',iwerks.
write: 80 '*********************'.
write: 180 '列印日期:',sy-datum.
write:/02 'BOM用途:',istlan.
write: 80 '* BOM资料下载明细表 *'.
select single * from zusr03 where bname = sy-uname.
write: 180 '列印者:',zusr03-name1+0(10).
if imatnr-low <> ' '.
write:/02 '物料号码:',imatnr-low.
if imatnr-high <> ' '.
write: '-',imatnr-high.
endif.
else.
write:/02 '物料号码:'.
endif.
write: 80 '*********************'.
write: 180 '页数:',sy-pagno.
uline.
write:/00 'BOM表头物料',19 'BOM表头物料名称',60 '组件数量',
79 '单位',83 'BOM组件料号',102 'BOM组件名称',
143 '部件废品(%)',154 '项目',159 'BOM套数',166 '表头基本数

量',
184 '表头单位',192 '有效期始于',203 'BOM用途'.
uline.

START-OF-SELECTION.
SELECT * FROM MAST WHERE WERKS = IWERKS
AND MATNR IN IMATNR
AND STLAN = ISTLAN.
IMAST-MATNR = MAST-MATNR.
SELECT SINGLE * FROM MAKT WHERE MATNR = MAST-MATNR.
IF SY-SUBRC = 0.
IMAST-MAKTX = MAKT-MAKTX.
ENDIF.
IMAST-STLNR = MAST-STLNR.
IMAST-STLAL = MAST-STLAL.
imast-stlan = mast-stlan.
APPEND IMAST.
CLEAR IMAST.
endselect.
LOOP AT IMAST.
SELECT SINGLE * FROM STKO WHERE STLNR = IMAST-STLNR
AND STLAL = IMAST-STLAL
AND LOEKZ NE 'X'.
ISTKO-STLNR = STKO-STLNR.
ISTKO-STLTY = STKO-STLTY.
ISTKO-STLAL = STKO-STLAL.
istko-datuv = stko-datuv.
istko-bmeng = stko-bmeng.
istko-bmein = stko-bmein.
APPEND ISTKO.
CLEAR ISTKO.
* ENDSELECT.
ENDLOOP.
LOOP AT ISTKO.
SELECT * FROM STAS WHERE STLNR = ISTKO-STLNR
AND STLTY = ISTKO-STLTY
AND STLAL = ISTKO-STLAL.
ISTAS-STLNR = STAS-STLNR.
ISTAS-STlTY = STAS-STlTY.
ISTAS-STLKN = STAS-STLKN.
istas-stlal = stas-stlal.
APPEND ISTAS.
CLEAR ISTAS.
ENDSELECT.
ENDLOOP.
LOOP AT ISTAS.
SELECT * FROM STPO WHERE STLNR = ISTAS-STLNR
AND STLTY = ISTAS-STlTY
AND STLKN = ISTAS-STLKN.
istpo-stlnr = stpo-stlnr.
istpo-menge = stpo-menge.
istpo-meins = stpo-meins.
istpo-stlkn = stpo-stlkn.
istpo-idnrk = stpo-idnrk.
select single * from makt where matnr = stpo-idnrk.
if sy-subrc = 0.
istpo-maktx = makt-maktx.
endif.
istpo-ausch = stpo-ausch.
istpo-posnr = stpo-posnr.
istpo-stlty = stpo-stlty.
append istpo.
clear istpo.
ENDSELECT.
ENDLOOP.
loop at imast.
loop at istko where stlnr = imast-stlnr
and stlal = imast-stlal.
* and loekz <> 'X'.
write:/00 imast-matnr,
19 imast-maktx,
159 istko-stlal,
166 istko-bmeng,
184 istko-bmein,
192 istko-datuv,
203 imast-stlan.
loop at istas where stlnr = istko-stlnr
and stlal = istko-stlal
and stlty = istko-stlty.
loop at istpo where stlnr = istas-stlnr
and stlkn = istas-stlkn
and stlty = istas-stlty.
write:/60 istpo-menge,79 istpo-meins,83 istpo-idnrk,
102 istpo-maktx,143 istpo-ausch,
154 istpo-posnr.
endloop.
endloop.
endloop.
uline.
endloop.

系统报没有:ZSDIAUTH
那一部分是我们自己的权限检查,你把它‘*’掉就可以了
众多BOM组件一次性导出系统的处理

相关文档
相关文档 最新文档