ADSUBCON创建交货单时,扩充库存地点增强
业务背景:ADSUBCON创建交货单时,由于库存地点没有扩充,导致系统报错,用户希望再创建交货单时,系统自动扩充库存地点。
解决办法:找到合适的隐式增强点,先将库存地点扩充,然后进行交货单创建。
风险:由于扩充库存地点BAPI需要用到COMMIT,可能会导致单据流不一致的情况。请大家各自评估。
增强位置:DI_SUBCON_1_I041

*&--- ADSUBCON创建交货单时,扩充库存地点 DATA IT_KOMDLGN TYPE STANDARD TABLE OF KOMDLGN. IT_KOMDLGN = CORRESPONDING #( XKOMDLGN[] ). CALL FUNCTION 'ZFM_MM_EN_ADSUBCON' TABLES IT_KOMDLGN = IT_KOMDLGN.

FUNCTION ZFM_MM_EN_ADSUBCON. *"---------------------------------------------------------------------- *"*"本地接口: *" TABLES *" IT_KOMDLGN STRUCTURE KOMDLGN *"---------------------------------------------------------------------- DATA: LS_HEAD TYPE BAPIMATHEAD, LS_STLD TYPE BAPI_MARD, LS_STLDX TYPE BAPI_MARDX, LS_RETURN TYPE BAPIRET2. LOOP AT IT_KOMDLGN INTO DATA(IS_KOMDLGN). SELECT COUNT(*) FROM MARD WHERE WERKS = IS_KOMDLGN-WERKS AND MATNR = IS_KOMDLGN-MATNR AND LGORT = IS_KOMDLGN-LGORT. IF SY-SUBRC <> 0. CLEAR:LS_HEAD,LS_STLD,LS_STLDX. LS_HEAD-MATERIAL = IS_KOMDLGN-MATNR. " 物料编号 LS_HEAD-STORAGE_VIEW = 'X'. " 存储视图 " LS_STLD-PLANT = IS_KOMDLGN-WERKS. " 工厂 LS_STLD-STGE_LOC = IS_KOMDLGN-LGORT. " 存储地点 LS_STLDX-PLANT = IS_KOMDLGN-WERKS. " 工厂 LS_STLDX-STGE_LOC = IS_KOMDLGN-LGORT. " 存储地点 CLEAR LS_RETURN. CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA' EXPORTING HEADDATA = LS_HEAD " 物料 STORAGELOCATIONDATA = LS_STLD " 工厂&存储地点 STORAGELOCATIONDATAX = LS_STLDX " 工厂&存储地点 IMPORTING RETURN = LS_RETURN. IF LS_RETURN-TYPE CA 'AEX'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X'. ENDIF. ENDIF. ENDLOOP. ENDFUNCTION.
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号