SAP ABAP 函数CS_BOM_EXPL_MAT_V2获取CS03的bom 列表
DATA: ls_matnr TYPE tp_matnr. LOOP AT it_matnr INTO is_matnr. REFRESH it_stb. * Get bom item CALL FUNCTION 'CS_BOM_EXPL_MAT_V2' EXPORTING capid = 'PP01' datuv = sy-datum mtnrv = is_matnr-matnr emeng = 10000 "成品数量 svwvo = '' rndkz = '1' mktls = 'X' mbwls = 'X' mehrs = 'X' * stlal = p_stlal * stlan = p_stlan stlal = is_matnr-stlal stlan = is_matnr-stlan werks = is_matnr-werks IMPORTING topmat = is_topmat TABLES stb = it_stb EXCEPTIONS alt_not_found = 1 call_invalid = 2 material_not_found = 3 missing_authorization = 4 no_bom_found = 5 no_plant_data = 6 no_suitable_bom_found = 7 conversion_error = 8 OTHERS = 9. IF sy-subrc = 0. LOOP AT it_stb INTO is_stb WHERE vwegx <> 0. "上阶不存或上价为 LOEKZ = 'X' ,则当前行及上阶所包含的下一层子阶都设为 LOEKZ = 'X' READ TABLE it_stb INTO is_stb2 WITH KEY xtlnr = is_stb-stlnr . IF sy-subrc = 0 . IF is_stb2-loekz = 'X'. is_stb-loekz = 'X'. MODIFY it_stb FROM is_stb. MODIFY it_stb FROM is_stb3 TRANSPORTING loekz WHERE stlnr = is_stb2-xtlnr. ENDIF. ELSE. is_stb-loekz = 'X'. MODIFY it_stb FROM is_stb. ENDIF. ENDLOOP. DELETE it_stb WHERE loekz = 'X'. ENDIF. ENDLOOP.
如上图代码,一个函数就可以搞定了,很方便
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号