Views 237
Visitors 118

ZIF_WM010_UPDATING_FINAL_ISSUE

Home 
| Top Page | Threads |
Previous  Next

 
REPORT ZIF_WM010_UPDATING_FINAL_ISSUE          .
TYPES: BEGIN OF GT_ZTA_WM_JOB_POST.
       INCLUDE STRUCTURE ZTA_WM_JOB_POST.
TYPES:
       TXTMD LIKE T001W_BIW-TXTMD,
       CH_TYPE,
      END OF GT_ZTA_WM_JOB_POST.
 
DATA: GI_ZTA_WM_JOB_POST TYPE TABLE OF GT_ZTA_WM_JOB_POST WITH HEADER LINE,
     GI_T001W_BIW LIKE STANDARD TABLE OF T001W_BIW WITH HEADER LINE,
     TI_RESB_NEW        LIKE STANDARD TABLE OF RESB WITH HEADER LINE,
     TI_RESB_OLD        LIKE STANDARD TABLE OF RESB WITH HEADER LINE.
 
TYPES: BEGIN OF GT_RSNUM,
       RSNUM LIKE RESB-RSNUM,
       RSPOS LIKE RESB-RSPOS,
       ERFMG LIKE RESB-ERFMG,
       ERFME LIKE RESB-ERFME,
       XLOEK LIKE RESB-XLOEK,
       MATNR LIKE RESB-MATNR,
 
      END OF GT_RSNUM.
DATA: GI_RSNUM1 TYPE TABLE OF GT_RSNUM WITH HEADER LINE,
     GI_RSNUM2 TYPE TABLE OF GT_RSNUM WITH HEADER LINE,
     GI_RSNUM3 TYPE TABLE OF GT_RSNUM WITH HEADER LINE.
 
TYPES: BEGIN OF LN_RSNUM,
        WERKS LIKE RESB-WERKS,
        LGORT LIKE RESB-LGORT,
        RSNUM LIKE RESB-RSNUM,
        RSPOS LIKE RESB-RSPOS,
      END OF LN_RSNUM.
DATA: OBJ_RSNUM TYPE STANDARD TABLE OF LN_RSNUM WITH HEADER LINE.
 
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 3(23) CM_GJAHR.
PARAMETERS: PA_TCODE TYPE SY-TCODE NO-DISPLAY.
PARAMETERS: PA_KOSTL TYPE RKPF-KOSTL NO-DISPLAY.
SELECTION-SCREEN END OF LINE.
 
START-OF-SELECTION.
DATA: LV_COUNT1 TYPE I,
       LV_COUNT2 TYPE I,
       LV_COUNT3 TYPE I,
       LV_DELETE TYPE I.
 
IMPORT OBJ_RSNUM FROM MEMORY ID 'M_ZXMBCU08'.
IMPORT TI_RESB_NEW FROM MEMORY ID 'M_ZXMBCU08_TI_RESB_NEW'.
IMPORT TI_RESB_OLD FROM MEMORY ID 'M_ZXMBCU08_TI_RESB_OLD'.
 
IF PA_TCODE = 'MB21' OR PA_TCODE = 'ZMB21'.
   PERFORM FM_RUN_BDC.
ENDIF.
IF PA_TCODE = 'MB22'.
   PERFORM FM_CEK_DATA_CHANGED.
   LV_COUNT1 = LINES( GI_RSNUM1 ).
   LV_COUNT2 = LINES( GI_RSNUM2 ).
   LV_COUNT3 = LINES( GI_RSNUM3 ).
   IF LV_COUNT1 > 0 OR LV_COUNT2 > 0 OR LV_COUNT3 > 0.
     PERFORM FM_WRITE_EMAIL2.
   ENDIF.
 
   PERFORM FM_CEK_DATA_DELETE USING LV_DELETE.
   IF LV_DELETE = 0.
     IF LV_COUNT2 > 0.
       PERFORM FM_WRITE_EMAIL3 USING TI_RESB_OLD-RSNUM.
 
     ENDIF.
   ENDIF.
ENDIF.
 
END-OF-SELECTION.
 
INCLUDE ZIN_BDC.
 
*&---------------------------------------------------------------------*
*&      Form  FM_RUN_BDC
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FM_RUN_BDC.
DATA: LV_RSNUM TYPE RESB-RSNUM,
       LV_POS(2) TYPE N,
       LV_XWAOK,
       LV_KZEAR,
       LV_XWAOK_TEXT TYPE STRING,
       LV_KZEAR_TEXT TYPE STRING,
       LV_COUNTER TYPE I.
 
READ TABLE OBJ_RSNUM INDEX 1.
IF OBJ_RSNUM IS NOT INITIAL.
   LV_RSNUM = OBJ_RSNUM-RSNUM.
   PERFORM F_BDC_DATA TABLES T_BDCDATA USING:
     'X'          'SAPMM07R'           '0560',
     ' '          'BDC_CURSOR'         'RM07M-RSNUM',
     ' '          'BDC_OKCODE'         '=KL',
     ' '          'RM07M-RSNUM'         LV_RSNUM,
 
     'X'          'SAPMM07R'           '0521',
     ' '          'BDC_CURSOR'         'RESB-KZEAR(01)',
     ' '          'BDC_OKCODE'         '=BU'.
 
   LOOP AT OBJ_RSNUM.
     PERFORM FM_CEK_JOB_POS USING LV_COUNTER SY-UNAME OBJ_RSNUM-WERKS OBJ_RSNUM-LGORT '0'.
     IF LV_COUNTER > 0.
       LV_XWAOK = ' '.
       LV_KZEAR = 'X'.
       LV_POS = OBJ_RSNUM-RSPOS.
 
       CONCATENATE 'RESB-XWAOK(' LV_POS ')' INTO LV_XWAOK_TEXT.
       CONCATENATE 'RESB-KZEAR(' LV_POS ')' INTO LV_KZEAR_TEXT.
       PERFORM F_BDC_DATA TABLES T_BDCDATA USING:
           ' '          LV_XWAOK_TEXT        LV_XWAOK,
           ' '          LV_KZEAR_TEXT        LV_KZEAR.
     ENDIF.
   ENDLOOP.
 
   PERFORM F_BDC_DATA TABLES T_BDCDATA USING:
       ' '          'BDC_SUBSCR'         'SAPLKACB                                0001BLOCK'.
 
   LOOP AT OBJ_RSNUM.
     PERFORM FM_CEK_JOB_POS USING LV_COUNTER SY-UNAME OBJ_RSNUM-WERKS OBJ_RSNUM-LGORT '0'.
     IF LV_COUNTER > 0.
       PERFORM F_BDC_DATA TABLES T_BDCDATA USING:
           'X'          'SAPLKACB'           '0002',
           ' '          'BDC_OKCODE'         '=ENTE',
           ' '          'BDC_SUBSCR'         'SAPLKACB                                0003BLOCK1',
 
           'X'          'SAPMM07R'           '0510',
           ' '          'BDC_CURSOR'         'RESB-ERFMG',
           ' '          'BDC_OKCODE'         '=BU',
           ' '          'BDC_SUBSCR'         'SAPLKACB                                0001BLOCK'.
 
     ENDIF.
   ENDLOOP.
 
   PERFORM F_BDC_DATA TABLES T_BDCDATA USING:
 
     'X'          'SAPLKACB'           '0002',
     ' '          'BDC_OKCODE'         '=ENTE',
     ' '          'BDC_SUBSCR'         'SAPLKACB                                0003BLOCK1'.
 
 
   PERFORM F_BDC_CALL_TCODE TABLES T_BDCDATA
                             T_BDCMSG
                 USING 'MB22' 'N' 'Progress'.
   CLEAR T_BDCMSG.
*    READ TABLE T_BDCMSG WITH KEY MSGTYP = 'E'.
*    IF SY-SUBRC NE 0.
   PERFORM FM_WRITE_EMAIL USING OBJ_RSNUM-RSNUM.
*    ENDIF.
 
ENDIF.
 
 
ENDFORM.                    "FM_RUN_BDC
 
*&---------------------------------------------------------------------*
*&      Form  fm_cek_job_pos
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PV_XWAOK   text
*      -->PV_KZEAR   text
*----------------------------------------------------------------------*
FORM FM_CEK_JOB_POS USING PV_COUNTER PV_UNAME PV_WERKS PV_LGORT PV_TYPE.
DATA: LI_ZTA_WM_JOB_POST LIKE STANDARD TABLE OF GI_ZTA_WM_JOB_POST WITH HEADER LINE.
SELECT *
   INTO CORRESPONDING FIELDS OF TABLE LI_ZTA_WM_JOB_POST
FROM ZTA_WM_JOB_POST
WHERE
   STAFF EQ PV_UNAME AND
   WERKS EQ PV_WERKS AND
   LGORT EQ PV_LGORT.
 
PV_COUNTER = LINES( LI_ZTA_WM_JOB_POST ).
SELECT *
   INTO CORRESPONDING FIELDS OF TABLE GI_T001W_BIW
FROM
   T001W_BIW
   FOR ALL ENTRIES IN LI_ZTA_WM_JOB_POST
WHERE
   WERKS = LI_ZTA_WM_JOB_POST-WERKS AND
   SPRAS = 'E'.
 
LOOP AT GI_ZTA_WM_JOB_POST.
   READ TABLE GI_T001W_BIW WITH KEY WERKS = LI_ZTA_WM_JOB_POST-WERKS.
   IF SY-SUBRC = 0.
     LI_ZTA_WM_JOB_POST-TXTMD = GI_T001W_BIW-TXTMD.
     MODIFY LI_ZTA_WM_JOB_POST.
   ENDIF.
ENDLOOP.
 
LOOP AT LI_ZTA_WM_JOB_POST.
   MOVE-CORRESPONDING LI_ZTA_WM_JOB_POST TO GI_ZTA_WM_JOB_POST.
   GI_ZTA_WM_JOB_POST-CH_TYPE = PV_TYPE.
   APPEND GI_ZTA_WM_JOB_POST.
ENDLOOP.
ENDFORM.                    "fm_cek_job_pos
 
*&---------------------------------------------------------------------*
*&      Form  fm_write_email
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FM_WRITE_EMAIL USING PV_RSNUM.
DATA: LV_SUBJECT LIKE SODOCCHGI1-OBJ_DESCR.
DATA: LI_RECEIVER LIKE STANDARD TABLE OF SOMLRECI1 WITH HEADER LINE,
       LI_MESSAGE LIKE STANDARD TABLE OF SOLISTI1 WITH HEADER LINE,
       LV_KTEXT LIKE CSKT-KTEXT,
       LV_EMAIL_ADDRESS LIKE SZA5_D0700-SMTP_ADDR.
 
*  Cari Informasi utk Cost Center
SELECT SINGLE KTEXT INTO LV_KTEXT
FROM CSKT
WHERE
   KOSTL = PA_KOSTL.
*  Tulis Subject
CONCATENATE 'Permintaan Barang dari' LV_KTEXT INTO LV_SUBJECT SEPARATED BY SPACE.
 
*  Tulis Penerima Message
SORT GI_ZTA_WM_JOB_POST BY WERKS LGORT SUPERVISOR STAFF CH_TYPE.
DELETE ADJACENT DUPLICATES FROM GI_ZTA_WM_JOB_POST
COMPARING WERKS LGORT SUPERVISOR STAFF CH_TYPE.
LOOP AT GI_ZTA_WM_JOB_POST WHERE CH_TYPE = '0'.
   FREE LV_EMAIL_ADDRESS.
   PERFORM FM_GET_EMAIL_BY_USERID USING GI_ZTA_WM_JOB_POST-SUPERVISOR LV_EMAIL_ADDRESS.
   LI_RECEIVER-RECEIVER = LV_EMAIL_ADDRESS.
   LI_RECEIVER-REC_TYPE = 'U'.
   LI_RECEIVER-EXPRESS = 'X'.
   LI_RECEIVER-COM_TYPE = 'INT'.
   LI_RECEIVER-NOTIF_DEL = 'X'.
   LI_RECEIVER-NOTIF_NDEL = 'X'.
   APPEND LI_RECEIVER.
*    LI_RECEIVER-RECEIVER = GI_ZTA_WM_JOB_POST-SUPERVISOR.
*    LI_RECEIVER-REC_TYPE = 'B'.
*    LI_RECEIVER-EXPRESS = 'X'.
*    APPEND LI_RECEIVER.
ENDLOOP.
LI_MESSAGE-LINE = ''.
APPEND LI_MESSAGE.
 
*  Tulis Message
LI_MESSAGE-LINE = 'Kepada Yth'.
APPEND LI_MESSAGE.
LI_MESSAGE-LINE = 'Bapak/Ibu'.
APPEND LI_MESSAGE.
LI_MESSAGE-LINE = 'di tempat'.
APPEND LI_MESSAGE.
 
LI_MESSAGE-LINE = ''.
APPEND LI_MESSAGE.
 
CONCATENATE 'Tolong di-approve-kan nomer reservasi' PV_RSNUM 'yang di dalamnya terdapat barang-barang yang kami butuhkan.' INTO LI_MESSAGE-LINE SEPARATED BY SPACE.
APPEND LI_MESSAGE.
 
LI_MESSAGE-LINE = 'Terima kasih atas kerja samanya'.
APPEND LI_MESSAGE.
 
LI_MESSAGE-LINE = ''.
APPEND LI_MESSAGE.
 
LI_MESSAGE-LINE = 'Hormat kami,'.
APPEND LI_MESSAGE.
CONCATENATE 'District/Plant' LV_KTEXT INTO LI_MESSAGE-LINE SEPARATED BY SPACE.
APPEND LI_MESSAGE.
 
 
PERFORM FM_SEND_EMAIL TABLES LI_RECEIVER LI_MESSAGE USING LV_SUBJECT .
 
ENDFORM.                    "fm_write_email
 
*&---------------------------------------------------------------------*
*&      Form  FM_WRITE_EMAIL2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PV_RSNUM   text
*----------------------------------------------------------------------*
FORM FM_WRITE_EMAIL2.
DATA: LV_SUBJECT LIKE SODOCCHGI1-OBJ_DESCR.
DATA: LI_RECEIVER LIKE STANDARD TABLE OF SOMLRECI1 WITH HEADER LINE,
       LI_MESSAGE LIKE STANDARD TABLE OF SOLISTI1 WITH HEADER LINE,
       LV_KTEXT LIKE CSKT-KTEXT,
       LV_EMAIL_ADDRESS LIKE SZA5_D0700-SMTP_ADDR.
DATA: LV_RSNUM LIKE RESB-RSNUM,
       LV_ERFME(3),
       LV_ERFMG(16),
       LV_ERFMG_I TYPE I,
       LV_KOSTL TYPE RKPF-KOSTL.
DATA: LI_RESB LIKE STANDARD TABLE OF RESB WITH HEADER LINE,
       LI_MAKT LIKE STANDARD TABLE OF MAKT WITH HEADER LINE,
       LI_RKPF LIKE STANDARD TABLE OF RKPF WITH HEADER LINE.
IF LINES( TI_RESB_OLD ) > 0.
   READ TABLE TI_RESB_OLD INDEX 1.
   LV_RSNUM = TI_RESB_OLD-RSNUM.
*  Cari informasi utk material
   SELECT * INTO CORRESPONDING FIELDS OF TABLE LI_RESB
   FROM RESB
   WHERE
     RSNUM = TI_RESB_OLD-RSNUM.
   SELECT SINGLE KOSTL INTO LV_KOSTL
   FROM RKPF
   WHERE
     RSNUM = TI_RESB_OLD-RSNUM.
*  Cari Informasi utk Cost Center
   SELECT SINGLE KTEXT INTO LV_KTEXT
   FROM CSKT
   WHERE
     KOSTL = LV_KOSTL.
 
ENDIF.
SELECT * INTO CORRESPONDING FIELDS OF TABLE LI_MAKT
FROM MAKT
   FOR ALL ENTRIES IN LI_RESB
WHERE
   MATNR = LI_RESB-MATNR.
*  Tulis Subject
CONCATENATE 'Perubahan Reservasi dari' LV_KTEXT INTO LV_SUBJECT SEPARATED BY SPACE.
 
*  Tulis Penerima Message
SORT GI_ZTA_WM_JOB_POST BY WERKS LGORT SUPERVISOR STAFF CH_TYPE.
DELETE ADJACENT DUPLICATES FROM GI_ZTA_WM_JOB_POST
COMPARING WERKS LGORT SUPERVISOR STAFF CH_TYPE.
LOOP AT GI_ZTA_WM_JOB_POST WHERE CH_TYPE = '1'.
   FREE LV_EMAIL_ADDRESS.
   PERFORM FM_GET_EMAIL_BY_USERID USING GI_ZTA_WM_JOB_POST-SUPERVISOR LV_EMAIL_ADDRESS.
   LI_RECEIVER-RECEIVER = LV_EMAIL_ADDRESS.
   LI_RECEIVER-REC_TYPE = 'U'.
   LI_RECEIVER-EXPRESS = 'X'.
   LI_RECEIVER-COM_TYPE = 'INT'.
   LI_RECEIVER-NOTIF_DEL = 'X'.
   LI_RECEIVER-NOTIF_NDEL = 'X'.
   APPEND LI_RECEIVER.
ENDLOOP.
LI_MESSAGE-LINE = ''.
APPEND LI_MESSAGE.
 
*  Tulis Message
LI_MESSAGE-LINE = 'Kepada Yth'.
APPEND LI_MESSAGE.
LI_MESSAGE-LINE = 'Bapak/Ibu'.
APPEND LI_MESSAGE.
LI_MESSAGE-LINE = 'di tempat'.
APPEND LI_MESSAGE.
 
LI_MESSAGE-LINE = ''.
APPEND LI_MESSAGE.
 
CONCATENATE 'Terdapat perubahan untuk nomor reservasi ' LV_RSNUM 'yang di dalamnya terdapat barang-barang yang kami butuhkan. Tolong di-approve-kan.' INTO LI_MESSAGE-LINE SEPARATED BY SPACE.
APPEND LI_MESSAGE.
 
*  Tulis message jika ada perubahan quantity
IF LINES( GI_RSNUM1 ) > 0.
   LI_MESSAGE-LINE = 'Detail Perubahan Item :'.
   APPEND LI_MESSAGE.
 
   LOOP AT GI_RSNUM1.
     LV_ERFME = GI_RSNUM1-ERFME.
     LV_ERFMG_I = GI_RSNUM1-ERFMG.
     LV_ERFMG = LV_ERFMG_I.
     READ TABLE LI_MAKT WITH KEY MATNR = GI_RSNUM1-MATNR.
     CONCATENATE ' ' GI_RSNUM1-RSPOS '->' LI_MAKT-MAKTX LV_ERFMG LV_ERFME INTO LI_MESSAGE-LINE SEPARATED BY SPACE.
     APPEND LI_MESSAGE.
   ENDLOOP.
ENDIF.
 
LI_MESSAGE-LINE = ''.
APPEND LI_MESSAGE.
 
*  Tulis message jika ada pembatalan
IF LINES( GI_RSNUM2 ) > 0.
   LI_MESSAGE-LINE = 'Detail Pembatalan Item :'.
   APPEND LI_MESSAGE.
 
   LOOP AT GI_RSNUM2.
     READ TABLE LI_MAKT WITH KEY MATNR = GI_RSNUM2-MATNR.
     CONCATENATE ' ' GI_RSNUM2-RSPOS '->' LI_MAKT-MAKTX ' dibatalkan' INTO LI_MESSAGE-LINE SEPARATED BY SPACE.
     APPEND LI_MESSAGE.
   ENDLOOP.
ENDIF.
 
LI_MESSAGE-LINE = ''.
APPEND LI_MESSAGE.
 
*  Tulis message jika ada penambahan
IF LINES( GI_RSNUM3 ) > 0.
   LI_MESSAGE-LINE = 'Detail Penambahan Item :'.
   APPEND LI_MESSAGE.
 
   LOOP AT GI_RSNUM3.
     LV_ERFME = GI_RSNUM3-ERFME.
     LV_ERFMG_I = GI_RSNUM3-ERFMG.
     LV_ERFMG = LV_ERFMG_I.
     READ TABLE LI_MAKT WITH KEY MATNR = GI_RSNUM3-MATNR.
     CONCATENATE ' ' GI_RSNUM3-RSPOS '->' LI_MAKT-MAKTX LV_ERFMG LV_ERFME INTO LI_MESSAGE-LINE SEPARATED BY SPACE.
     APPEND LI_MESSAGE.
   ENDLOOP.
ENDIF.
 
LI_MESSAGE-LINE = ''.
APPEND LI_MESSAGE.
 
LI_MESSAGE-LINE = 'Terima kasih atas kerja samanya'.
APPEND LI_MESSAGE.
 
LI_MESSAGE-LINE = ''.
APPEND LI_MESSAGE.
 
LI_MESSAGE-LINE = 'Hormat kami,'.
APPEND LI_MESSAGE.
CONCATENATE 'District/Plant' LV_KTEXT INTO LI_MESSAGE-LINE SEPARATED BY SPACE.
APPEND LI_MESSAGE.
 
 
PERFORM FM_SEND_EMAIL TABLES LI_RECEIVER LI_MESSAGE USING LV_SUBJECT .
 
ENDFORM.                    "FM_WRITE_EMAIL2
 
*&---------------------------------------------------------------------*
*&      Form  FM_WRITE_EMAIL3
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PV_RSNUM   text
*----------------------------------------------------------------------*
FORM FM_WRITE_EMAIL3 USING PV_RSNUM.
DATA: LV_SUBJECT LIKE SODOCCHGI1-OBJ_DESCR.
DATA: LI_RECEIVER LIKE STANDARD TABLE OF SOMLRECI1 WITH HEADER LINE,
       LI_MESSAGE LIKE STANDARD TABLE OF SOLISTI1 WITH HEADER LINE,
       LV_KTEXT LIKE CSKT-KTEXT,
       LV_EMAIL_ADDRESS LIKE SZA5_D0700-SMTP_ADDR.
 
*  Cari Informasi utk Cost Center
SELECT SINGLE KTEXT INTO LV_KTEXT
FROM CSKT
WHERE
   KOSTL = PA_KOSTL.
*  Tulis Subject
CONCATENATE 'Pembatalan Reservasi dari' LV_KTEXT INTO LV_SUBJECT SEPARATED BY SPACE.
 
*  Tulis Penerima Message
SORT GI_ZTA_WM_JOB_POST BY WERKS LGORT SUPERVISOR STAFF CH_TYPE.
DELETE ADJACENT DUPLICATES FROM GI_ZTA_WM_JOB_POST
COMPARING WERKS LGORT SUPERVISOR STAFF CH_TYPE.
LOOP AT GI_ZTA_WM_JOB_POST WHERE CH_TYPE = '2'.
   FREE LV_EMAIL_ADDRESS.
   PERFORM FM_GET_EMAIL_BY_USERID USING GI_ZTA_WM_JOB_POST-SUPERVISOR LV_EMAIL_ADDRESS.
   LI_RECEIVER-RECEIVER = LV_EMAIL_ADDRESS.
   LI_RECEIVER-REC_TYPE = 'U'.
   LI_RECEIVER-EXPRESS = 'X'.
   LI_RECEIVER-COM_TYPE = 'INT'.
   LI_RECEIVER-NOTIF_DEL = 'X'.
   LI_RECEIVER-NOTIF_NDEL = 'X'.
   APPEND LI_RECEIVER.
ENDLOOP.
LI_MESSAGE-LINE = ''.
APPEND LI_MESSAGE.
 
*  Tulis Message
LI_MESSAGE-LINE = 'Kepada Yth'.
APPEND LI_MESSAGE.
LI_MESSAGE-LINE = 'Bapak/Ibu'.
APPEND LI_MESSAGE.
LI_MESSAGE-LINE = 'di tempat'.
APPEND LI_MESSAGE.
 
LI_MESSAGE-LINE = ''.
APPEND LI_MESSAGE.
 
CONCATENATE 'Nomor reservasi ' PV_RSNUM 'telah kami batalkan.' INTO LI_MESSAGE-LINE SEPARATED BY SPACE.
APPEND LI_MESSAGE.
 
*  LI_MESSAGE-LINE = 'Detail Pembatalan Item :'.
*  APPEND LI_MESSAGE.
*
*  LOOP AT GI_RSNUM2.
*    CONCATENATE ' ' GI_RSNUM2-RSPOS '-> dibatalkan'  INTO LI_MESSAGE-LINE SEPARATED BY SPACE.
*    APPEND LI_MESSAGE.
*  ENDLOOP.
 
LI_MESSAGE-LINE = 'Terima kasih atas kerja samanya'.
APPEND LI_MESSAGE.
 
LI_MESSAGE-LINE = ''.
APPEND LI_MESSAGE.
 
LI_MESSAGE-LINE = 'Hormat kami,'.
APPEND LI_MESSAGE.
 
CONCATENATE 'District/Plant' LV_KTEXT INTO LI_MESSAGE-LINE SEPARATED BY SPACE.
APPEND LI_MESSAGE.
 
 
PERFORM FM_SEND_EMAIL TABLES LI_RECEIVER LI_MESSAGE USING LV_SUBJECT .
 
ENDFORM.                    "FM_WRITE_EMAIL3
 
*&---------------------------------------------------------------------*
*&      Form  FM_SEND_EMAIL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PV_SUBJECT   text
*      -->PT_RECEIVER  text
*      -->PT_MESSAGE   text
*----------------------------------------------------------------------*
FORM FM_SEND_EMAIL TABLES PT_RECEIVER PT_MESSAGE USING PV_SUBJECT .
CALL FUNCTION 'ZFN_SEND_EMAIL2'
   EXPORTING
     P_SUBJECT               = PV_SUBJECT
*   P_ATTACH_FORMAT         =
*   P_ATTACH_DESCR          =
*   P_ATTACH_FILENAME       =
   TABLES
     PI_RECEIVER             = PT_RECEIVER
     PI_MESSAGE              = PT_MESSAGE
*   PI_ATTACH               =
           .
ENDFORM.                    "FM_SEND_EMAIL
 
*&---------------------------------------------------------------------*
*&      Form  FM_CEK_data_CHANGED
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FM_CEK_DATA_CHANGED.
DATA: LV_COUNTER TYPE I.
DATA: LI_RESB LIKE STANDARD TABLE OF RESB WITH HEADER LINE.
LOOP AT GI_RSNUM1.
   DELETE GI_RSNUM1.
ENDLOOP.
 
*  Cek jika ada perubahan Quantity atau Flag Delete
LOOP AT TI_RESB_NEW .
   READ TABLE TI_RESB_OLD WITH KEY RSNUM = TI_RESB_NEW-RSNUM
                                   RSPOS = TI_RESB_NEW-RSPOS.
   IF SY-SUBRC = 0.
     IF TI_RESB_NEW-ERFMG NE TI_RESB_OLD-ERFMG.
       MOVE-CORRESPONDING TI_RESB_NEW TO GI_RSNUM1.
       APPEND GI_RSNUM1.
       PERFORM FM_CEK_JOB_POS USING LV_COUNTER SY-UNAME TI_RESB_OLD-WERKS TI_RESB_OLD-LGORT '1'.
     ENDIF.
     IF TI_RESB_NEW-XLOEK = 'X'.
       MOVE-CORRESPONDING TI_RESB_NEW TO GI_RSNUM2.
       APPEND GI_RSNUM2.
       PERFORM FM_CEK_JOB_POS USING LV_COUNTER SY-UNAME TI_RESB_OLD-WERKS TI_RESB_OLD-LGORT '1'.
     ENDIF.
   ENDIF.
ENDLOOP.
 
*  Cek ada penambahan line item
IF LINES( TI_RESB_OLD ) > 0.
   READ TABLE TI_RESB_OLD INDEX 1.
   SELECT * INTO CORRESPONDING FIELDS OF TABLE LI_RESB
   FROM RESB
   WHERE
     RSNUM = TI_RESB_OLD-RSNUM.
 
   LOOP AT LI_RESB .
     READ TABLE TI_RESB_OLD WITH KEY RSNUM = LI_RESB-RSNUM
                                     RSPOS = LI_RESB-RSPOS.
     IF SY-SUBRC <> 0.
       MOVE-CORRESPONDING LI_RESB TO GI_RSNUM3.
       APPEND GI_RSNUM3.
       PERFORM FM_CEK_JOB_POS USING LV_COUNTER SY-UNAME TI_RESB_OLD-WERKS TI_RESB_OLD-LGORT '1'.
     ENDIF.
   ENDLOOP.
 
ENDIF.
ENDFORM.                    "FM_CEK_data_CHANGED
 
*&---------------------------------------------------------------------*
*&      Form  fm_cek_data_delete
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PV_COUNTER text
*----------------------------------------------------------------------*
FORM FM_CEK_DATA_DELETE USING PV_COUNTER.
DATA: LV_COUNTER TYPE I.
IF LINES( TI_RESB_OLD ) > 0.
   READ TABLE TI_RESB_OLD INDEX 1.
   SELECT COUNT(*) INTO PV_COUNTER
   FROM RESB
   WHERE
   RSNUM = TI_RESB_OLD-RSNUM.
   PERFORM FM_CEK_JOB_POS USING LV_COUNTER SY-UNAME TI_RESB_OLD-WERKS TI_RESB_OLD-LGORT '2'.
ENDIF.
ENDFORM.                    "fm_cek_data_delete
 
*&---------------------------------------------------------------------*
*&      Form  fm_get_email_by_userid
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PV_UNAME          text
*      -->PV_EMAIL_ADDRESS  text
*----------------------------------------------------------------------*
FORM FM_GET_EMAIL_BY_USERID USING PV_UNAME PV_EMAIL_ADDRESS.
CALL FUNCTION 'ZFN_GET_EMAIL_ADDRESS'
   EXPORTING
     USER_NAME     = PV_UNAME
   IMPORTING
     EMAIL_ADDRESS = PV_EMAIL_ADDRESS.
 
ENDFORM.                    "fm_get_email_by_userid

User Threads | New Thread ( Only for Donators )

Threads Last Post Replies Views