*********************************************************************** * ABAP Name : ZPP272 * Created by : Suchon Poomcharoen. * Created on : 28 July 2009 * Version : 1.0 * Transport : * Task ID : *---------------------------------------------------------------------- * Description: This program is used for BOM SAP to SFC *---------------------------------------------------------------------- * Modification Log: * 1) Changed by : * Changed on : * Transport : * Correction-No : * Description : 1) *---------------------------------------------------------------------- report zpp272. ********************************************* * Tables ********************************************* TABLES: MAST,CSAP_MBOM,ZSFCBOM. ********************************************* * select screen ********************************************* SELECT-OPTIONS: S_MATNR FOR CSAP_MBOM-MATNR. PARAMETER: P_Case(1) TYPE C DEFAULT 'A'. ********************************************* * Data Declaration ********************************************* data: t_stpo like stpo_api02 occurs 0 with header line, "BOM items t_stko like stko_api02 occurs 0 with header line, "BOM headers t_mara like MARA_MATNR occurs 0 with header line, T_ZSFCBOM LIKE ZSFCBOM OCCURS 0 WITH HEADER LINE, v_MATNR like CSAP_MBOM-MATNR, v_maktx like makt-maktx.
*&---------------------------------------------------------------------* *& Form get_material_bom *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form get_material_bom.
perform alternative_bom_01 using '01' . perform alternative_bom_01 using '02' .
endform. " get_material_bom *&---------------------------------------------------------------------* *& Form get_material_mast *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM get_material_mast.
*delete from ZSFCBOM where MATNR <> 1. CLEAR T_mara. clear t_mara. REFRESH t_mara.
CASE P_Case. WHEN 'A'. * เลือก Bom ทีมีการเปลี่ยนค่าระดับ Item SELECT mast~matnr FROM mast INNER JOIN MARA ON MAST~MATNR = MARA~MATNR INNER JOIN STKO ON STKO~STLAL = MAST~STLAL AND STKO~STLNR = MAST~STLNR INNER JOIN STPO ON STPO~DATUV = STKO~DATUV AND STPO~STLNR = STKO~STLNR AND STPO~STLTY = STKO~STLTY INTO t_mara-matnr WHERE MARA~MATNR in s_matnr and LVORM <> 'X' and MTART in ('ZFIN','ZSFI') and ZZPRODU eq 'PLP' and STPO~AEDAT = SY-DATUM. * append t_mara. *Collect ใช้สำหรับ นำค่าที่ duplicate ออกไป collect t_mara. ENDSELECT.
* เลือก Bom ทีมีการเปลี่ยนค่าระดับ Header SELECT mast~matnr FROM mast INNER JOIN MARA ON MAST~MATNR = MARA~MATNR INNER JOIN STKO ON STKO~STLAL = MAST~STLAL AND STKO~STLNR = MAST~STLNR INTO t_mara-matnr WHERE MARA~MATNR in s_matnr and LVORM <> 'X' and MTART in ('ZFIN','ZSFI') and ZZPRODU eq 'PLP' and STKO~AEDAT = SY-DATUM. append t_mara. ENDSELECT.
* เลือก Bom ทีมีการสร้างใหม่ SELECT mast~matnr FROM mast INNER JOIN MARA ON MAST~MATNR = MARA~MATNR INNER JOIN STKO ON STKO~STLAL = MAST~STLAL AND STKO~STLNR = MAST~STLNR INTO t_mara-matnr WHERE MARA~MATNR in s_matnr and LVORM <> 'X' and MTART in ('ZFIN','ZSFI') and ZZPRODU eq 'PLP' and STKO~ANDAT = SY-DATUM. append t_mara. ENDSELECT.
WHEN 'S'.
SELECT matnr FROM mara INTO t_mara-matnr WHERE MATNR in s_matnr and LVORM <> 'X' and MTART in ('ZFIN','ZSFI') and ZZPRODU eq 'PLP'. append t_mara. ENDSELECT.
WHEN OTHERS. Exit. ENDCASE.
ENDFORM. " get_material_mast *&---------------------------------------------------------------------* *& Form read_mat_desc *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* form read_mat_desc using p_matnr. clear: v_maktx. select single maktx into (v_maktx) from makt where matnr = p_matnr and spras = 'E'.
ENDFORM. " read_mat_desc *&---------------------------------------------------------------------* *& Form alternative_bom_01 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM alternative_bom_01 using p_alter. CLEAR: T_STKO, T_STPO. REFRESH: T_STKO, T_STPO.