|
<< Click to Display Table of Contents >> Navigation: All About ABAP Technique > English > ABAP Tutorial > ABAP Workbench Tools > Enhancement > Customer Exits > Customer Exits Examples > Project ZWMWS001 > Funtions Exits > EXIT_SAPMM07R_001 > ZIF_WM010_UPDATING_FINAL_ISSUE |
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