CO09可用性檢查
阿新 • • 發佈:2021-01-19
LOOP AT it_mard INTO wa_mard. MOVE-CORRESPONDING wa_mard TO wa_result. CALL FUNCTION 'ZFG_LOCAL_3' EXPORTING i_matnr = wa_mard-matnr i_werks = wa_mard-werks TABLES lt_atpdsx = lt_atpdsx. LOOP AT lt_atpdsx INTO ls_atpdsx WHERE atpnr+6(4) = wa_mard-lgort. IF ls_atpdsx-delkz = 'VJ' OR ls_atpdsx-delkz = 'VC'. "訂單、交貨單 wa_result-kbmeng = wa_result-kbmeng + ls_atpdsx-qty_o. "訂單、交貨單佔用 (計劃數量為負值) ENDIF. CLEAR:ls_atpdsx. ENDLOOP. LOOP AT lt_atpdsx INTO ls_atpdsx WHERE delkz = 'U1'. "UB轉儲單佔用 wa_ekpo-ebeln = ls_atpdsx-delnr. wa_ekpo-matnr = wa_mard-matnr. SELECT SINGLE reswk FROM ekko INTO wa_ekpo-werks WHERE ebeln = wa_ekpo-ebeln. wa_ekpo-menge = ls_atpdsx-qty_o. APPEND wa_ekpo TO it_ekpo. CLEAR: ls_atpdsx, wa_ekpo. ENDLOOP. APPEND wa_result TO it_result. CLEAR:wa_mard,wa_result. ENDLOOP.
FUNCTION zfg_local_3. *"---------------------------------------------------------------------- *"*"Local interface: *" IMPORTING *" VALUE(I_MATNR) TYPE MATNR *" VALUE(I_WERKS) TYPE WERKS_D *" TABLES *" LT_ATPDSX STRUCTURE ATPDS OPTIONAL *"---------------------------------------------------------------------- DATA: p_atpca TYPE atpca. DATA: lt_atpcsx TYPE STANDARD TABLE OF atpcs, ls_atpcsx TYPE atpcs. p_atpca-anwdg = '8'. p_atpca-anwdg_orig = 'A'. p_atpca-azerg = 'T'. p_atpca-rdmod = 'S'. " A→總計,S→單個 p_atpca-xenqmd = 'N'. p_atpca-force_r3 = 'X'. ls_atpcsx-matnr = i_matnr. ls_atpcsx-werks = i_werks. ls_atpcsx-prreg = '01'. ls_atpcsx-chmod = 'EXP'. ls_atpcsx-delkz = 'VC'. ls_atpcsx-bdter = sy-datum. ls_atpcsx-xline = '1'. ls_atpcsx-trtyp = 'A'. ls_atpcsx-IDXATP = '1'. ls_atpcsx-resmd = 'X'. ls_atpcsx-chkflg = 'X'. APPEND ls_atpcsx TO lt_atpcsx. CALL FUNCTION 'AVAILABILITY_CHECK' TABLES p_atpcsx = lt_atpcsx p_atpdsx = lt_atpdsx CHANGING p_atpca = p_atpca EXCEPTIONS error = 1 OTHERS = 2. IF sy-subrc <> 0. * Implement suitable error handling here ENDIF. ENDFUNCTION.