PROGRAM
FOR BANK GUARANTEE REMINDER EMAIL AND DISPLAY THE LIST
*&---------------------------------------------------------------------*
*& REPORT ZBG_EMAIL_REMIND
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZBG_EMAIL_REMIND.
TYPE-POOLS : SLIS.
PARAMETERS: ZFBDT TYPE BSEG-ZFBDT.
PARAMETERS : DISPLAY AS CHECKBOX.
PARAMETERS : EMAIL AS CHECKBOX.
*ALV DATA DECLARATIONS
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID LIKE SY-REPID,
GT_EVENTS TYPE SLIS_T_EVENT,
GD_PRNTPARAMS TYPE SLIS_PRINT_ALV.
DATA: ITAB TYPE STANDARD TABLE OF ZBG_EMAIL_REMIND WITH HEADER LINE.
DATA: IT_BSIK TYPE STANDARD TABLE OF ZBG_EMAIL_REMIND WITH HEADER LINE.
DATA: WA_BSIK LIKE LINE OF IT_BSIK.
TYPES: BEGIN OF ST,
LIFNR TYPE BSAK-LIFNR,
END OF ST.
DATA: IT_LIFNR TYPE TABLE OF ST WITH HEADER LINE ,
WA_LIFNR LIKE LINE OF IT_LIFNR.
DATA: V_GJAHR TYPE GJAHR.
IF ZFBDT IS INITIAL.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
DATE = SY-DATUM
DAYS = 0
MONTHS = 1
SIGNUM = '+'
YEARS = 0
IMPORTING
CALC_DATE = ZFBDT.
ENDIF.
SELECT * INTO CORRESPONDING FIELDS OF WA_BSIK
FROM BSIK WHERE
BUKRS = 'YOUR COMPANY CODE' AND
ZFBDT = ZFBDT AND
BSCHL = '39' AND
UMSKZ IN ('E').
APPEND WA_BSIK TO IT_BSIK.
ENDSELECT.
LOOP AT IT_BSIK INTO WA_BSIK.
IF WA_BSIK-UMSKZ EQ 'E'.
WA_BSIK-BLART = 'BANK GUARANTEE'.
ENDIF.
CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
EXPORTING
I_DATE = WA_BSIK-BUDAT
I_PERIV = 'V3' "Your Fiscal Year Variant
IMPORTING
E_GJAHR = V_GJAHR.
WA_BSIK-GJAHR = V_GJAHR.
SELECT USNAM INTO CORRESPONDING FIELDS OF WA_BSIK FROM BKPF WHERE
BELNR = WA_BSIK-BELNR AND
GJAHR = V_GJAHR AND
BUKRS = 'RCFL'.
ENDSELECT.
"QUERY FOR EMAIL
SELECT SINGLE USRID INTO WA_BSIK-USEREMAIL FROM PA0105 WHERE
PERNR = WA_BSIK-USNAM AND
USRTY = '08' AND
ENDDA = '99991231'.
"QUERY FOR NAME
SELECT VORNA NACHN FROM PA0002 INTO CORRESPONDING FIELDS OF WA_BSIK WHERE
ENDDA EQ '99991231' AND
PERNR = WA_BSIK-USNAM.
ENDSELECT.
SELECT NAME1 INTO CORRESPONDING FIELDS OF WA_BSIK FROM LFA1 WHERE
LIFNR = WA_BSIK-LIFNR.
ENDSELECT.
MODIFY IT_BSIK FROM WA_BSIK.
APPEND WA_BSIK TO ITAB.
ENDLOOP.
SORT ITAB BY LIFNR BELNR.
DELETE ADJACENT DUPLICATES FROM ITAB COMPARING ALL FIELDS.
IF EMAIL = 'X'.
PERFORM SENDMAIL.
ENDIF.
IF DISPLAY EQ 'X'.
PERFORM BUILD_FIELDCATALOG.
PERFORM BUILD_LAYOUT.
PERFORM DISPLAY_ALV_REPORT.
ENDIF.
FORM BUILD_FIELDCATALOG .
FIELDCATALOG-FIELDNAME = 'LIFNR'.
FIELDCATALOG-SELTEXT_M = 'Vendor'.
FIELDCATALOG-COL_POS = 1.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'NAME1'.
FIELDCATALOG-SELTEXT_M = 'Vendor Name'.
FIELDCATALOG-COL_POS = 2.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BELNR'.
FIELDCATALOG-SELTEXT_M = 'Document Number'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BUDAT'.
FIELDCATALOG-SELTEXT_M = 'Posting Date'.
FIELDCATALOG-COL_POS = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'GJAHR'.
FIELDCATALOG-SELTEXT_M = 'Fiscal Year'.
FIELDCATALOG-COL_POS = 5.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ZFBDT'.
FIELDCATALOG-SELTEXT_M = 'Due Date'.
FIELDCATALOG-COL_POS = 6.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'WRBTR'.
FIELDCATALOG-SELTEXT_M = 'Amount in Document Currency'.
FIELDCATALOG-COL_POS = 7.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'DMBTR'.
FIELDCATALOG-SELTEXT_M = 'Amount in Local Currency'.
FIELDCATALOG-COL_POS = 8.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BLART'.
FIELDCATALOG-SELTEXT_M = 'Document Type'.
FIELDCATALOG-COL_POS = 9.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'UMSKZ'.
FIELDCATALOG-SELTEXT_M = 'Special G/L Indicator'.
FIELDCATALOG-COL_POS = 10.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ZUONR'.
FIELDCATALOG-SELTEXT_M = 'Assignment Number'.
FIELDCATALOG-COL_POS = 11.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SGTXT'.
FIELDCATALOG-SELTEXT_M = 'Item Text'.
FIELDCATALOG-COL_POS = 12.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'USNAM'.
FIELDCATALOG-SELTEXT_M = 'User'.
FIELDCATALOG-COL_POS = 13.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'USEREMAIL'.
FIELDCATALOG-SELTEXT_M = 'Email'.
FIELDCATALOG-COL_POS = 14.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'VORNA'.
FIELDCATALOG-SELTEXT_M = 'First Name'.
FIELDCATALOG-COL_POS = 15.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'NACHN'.
FIELDCATALOG-SELTEXT_M = 'Last Name'.
FIELDCATALOG-COL_POS = 16.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG
FORM BUILD_LAYOUT .
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GD_LAYOUT-TOTALS_TEXT = 'TOTALS'(201).
ENDFORM. " BUILD_LAYOUT
FORM DISPLAY_ALV_REPORT .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE' "SEE FORM
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* I_GRID_TITLE = OUTTEXT
IS_LAYOUT = GD_LAYOUT
IT_FIELDCAT = FIELDCATALOG[]
* IT_SPECIAL_GROUPS = GD_TABGROUP
IT_EVENTS = GT_EVENTS
IS_PRINT = GD_PRNTPARAMS
I_SAVE = 'X'
* IS_VARIANT = Z_TEMPLATE
TABLES
T_OUTTAB = ITAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISPLAY_ALV_REPORT
FORM SENDMAIL.
LOOP AT IT_BSIK INTO WA_BSIK.
CALL FUNCTION 'ZBG_EMAIL_REMIND'
EXPORTING
LV_EMP_USERID = 'SYSTEM'
LIFNR = WA_BSIK-LIFNR
LIFNR_NAME = WA_BSIK-NAME1
LV_EMP_EMAILID = WA_BSIK-USEREMAIL
CREDIT = WA_BSIK-DMBTR
USNAM = WA_BSIK-USNAM
VORNA = WA_BSIK-VORNA
NACHN = WA_BSIK-NACHN
BELNR = WA_BSIK-BELNR
GJAHR = WA_BSIK-GJAHR
ZFBDT = WA_BSIK-ZFBDT.
ENDLOOP.
ENDFORM.
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
IF RS_SELFIELD-FIELDNAME = 'BELNR'.
READ TABLE ITAB INTO WA_BSIK INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'BLN' FIELD WA_BSIK-BELNR.
SET PARAMETER ID 'BUK' FIELD 'YOUR COMPANY CODE'."WA_BSIK-BUKRS'.
SET PARAMETER ID 'GJR' FIELD WA_BSIK-GJAHR.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM. "USER_COMMAND
*& REPORT ZBG_EMAIL_REMIND
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZBG_EMAIL_REMIND.
TYPE-POOLS : SLIS.
PARAMETERS: ZFBDT TYPE BSEG-ZFBDT.
PARAMETERS : DISPLAY AS CHECKBOX.
PARAMETERS : EMAIL AS CHECKBOX.
*ALV DATA DECLARATIONS
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID LIKE SY-REPID,
GT_EVENTS TYPE SLIS_T_EVENT,
GD_PRNTPARAMS TYPE SLIS_PRINT_ALV.
DATA: ITAB TYPE STANDARD TABLE OF ZBG_EMAIL_REMIND WITH HEADER LINE.
DATA: IT_BSIK TYPE STANDARD TABLE OF ZBG_EMAIL_REMIND WITH HEADER LINE.
DATA: WA_BSIK LIKE LINE OF IT_BSIK.
TYPES: BEGIN OF ST,
LIFNR TYPE BSAK-LIFNR,
END OF ST.
DATA: IT_LIFNR TYPE TABLE OF ST WITH HEADER LINE ,
WA_LIFNR LIKE LINE OF IT_LIFNR.
DATA: V_GJAHR TYPE GJAHR.
IF ZFBDT IS INITIAL.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
DATE = SY-DATUM
DAYS = 0
MONTHS = 1
SIGNUM = '+'
YEARS = 0
IMPORTING
CALC_DATE = ZFBDT.
ENDIF.
SELECT * INTO CORRESPONDING FIELDS OF WA_BSIK
FROM BSIK WHERE
BUKRS = 'YOUR COMPANY CODE' AND
ZFBDT = ZFBDT AND
BSCHL = '39' AND
UMSKZ IN ('E').
APPEND WA_BSIK TO IT_BSIK.
ENDSELECT.
LOOP AT IT_BSIK INTO WA_BSIK.
IF WA_BSIK-UMSKZ EQ 'E'.
WA_BSIK-BLART = 'BANK GUARANTEE'.
ENDIF.
CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
EXPORTING
I_DATE = WA_BSIK-BUDAT
I_PERIV = 'V3' "Your Fiscal Year Variant
IMPORTING
E_GJAHR = V_GJAHR.
WA_BSIK-GJAHR = V_GJAHR.
SELECT USNAM INTO CORRESPONDING FIELDS OF WA_BSIK FROM BKPF WHERE
BELNR = WA_BSIK-BELNR AND
GJAHR = V_GJAHR AND
BUKRS = 'RCFL'.
ENDSELECT.
"QUERY FOR EMAIL
SELECT SINGLE USRID INTO WA_BSIK-USEREMAIL FROM PA0105 WHERE
PERNR = WA_BSIK-USNAM AND
USRTY = '08' AND
ENDDA = '99991231'.
"QUERY FOR NAME
SELECT VORNA NACHN FROM PA0002 INTO CORRESPONDING FIELDS OF WA_BSIK WHERE
ENDDA EQ '99991231' AND
PERNR = WA_BSIK-USNAM.
ENDSELECT.
SELECT NAME1 INTO CORRESPONDING FIELDS OF WA_BSIK FROM LFA1 WHERE
LIFNR = WA_BSIK-LIFNR.
ENDSELECT.
MODIFY IT_BSIK FROM WA_BSIK.
APPEND WA_BSIK TO ITAB.
ENDLOOP.
SORT ITAB BY LIFNR BELNR.
DELETE ADJACENT DUPLICATES FROM ITAB COMPARING ALL FIELDS.
IF EMAIL = 'X'.
PERFORM SENDMAIL.
ENDIF.
IF DISPLAY EQ 'X'.
PERFORM BUILD_FIELDCATALOG.
PERFORM BUILD_LAYOUT.
PERFORM DISPLAY_ALV_REPORT.
ENDIF.
FORM BUILD_FIELDCATALOG .
FIELDCATALOG-FIELDNAME = 'LIFNR'.
FIELDCATALOG-SELTEXT_M = 'Vendor'.
FIELDCATALOG-COL_POS = 1.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'NAME1'.
FIELDCATALOG-SELTEXT_M = 'Vendor Name'.
FIELDCATALOG-COL_POS = 2.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BELNR'.
FIELDCATALOG-SELTEXT_M = 'Document Number'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BUDAT'.
FIELDCATALOG-SELTEXT_M = 'Posting Date'.
FIELDCATALOG-COL_POS = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'GJAHR'.
FIELDCATALOG-SELTEXT_M = 'Fiscal Year'.
FIELDCATALOG-COL_POS = 5.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ZFBDT'.
FIELDCATALOG-SELTEXT_M = 'Due Date'.
FIELDCATALOG-COL_POS = 6.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'WRBTR'.
FIELDCATALOG-SELTEXT_M = 'Amount in Document Currency'.
FIELDCATALOG-COL_POS = 7.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'DMBTR'.
FIELDCATALOG-SELTEXT_M = 'Amount in Local Currency'.
FIELDCATALOG-COL_POS = 8.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BLART'.
FIELDCATALOG-SELTEXT_M = 'Document Type'.
FIELDCATALOG-COL_POS = 9.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'UMSKZ'.
FIELDCATALOG-SELTEXT_M = 'Special G/L Indicator'.
FIELDCATALOG-COL_POS = 10.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ZUONR'.
FIELDCATALOG-SELTEXT_M = 'Assignment Number'.
FIELDCATALOG-COL_POS = 11.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SGTXT'.
FIELDCATALOG-SELTEXT_M = 'Item Text'.
FIELDCATALOG-COL_POS = 12.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'USNAM'.
FIELDCATALOG-SELTEXT_M = 'User'.
FIELDCATALOG-COL_POS = 13.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'USEREMAIL'.
FIELDCATALOG-SELTEXT_M = 'Email'.
FIELDCATALOG-COL_POS = 14.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'VORNA'.
FIELDCATALOG-SELTEXT_M = 'First Name'.
FIELDCATALOG-COL_POS = 15.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'NACHN'.
FIELDCATALOG-SELTEXT_M = 'Last Name'.
FIELDCATALOG-COL_POS = 16.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
ENDFORM. " BUILD_FIELDCATALOG
FORM BUILD_LAYOUT .
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GD_LAYOUT-TOTALS_TEXT = 'TOTALS'(201).
ENDFORM. " BUILD_LAYOUT
FORM DISPLAY_ALV_REPORT .
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
* I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE' "SEE FORM
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* I_GRID_TITLE = OUTTEXT
IS_LAYOUT = GD_LAYOUT
IT_FIELDCAT = FIELDCATALOG[]
* IT_SPECIAL_GROUPS = GD_TABGROUP
IT_EVENTS = GT_EVENTS
IS_PRINT = GD_PRNTPARAMS
I_SAVE = 'X'
* IS_VARIANT = Z_TEMPLATE
TABLES
T_OUTTAB = ITAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISPLAY_ALV_REPORT
FORM SENDMAIL.
LOOP AT IT_BSIK INTO WA_BSIK.
CALL FUNCTION 'ZBG_EMAIL_REMIND'
EXPORTING
LV_EMP_USERID = 'SYSTEM'
LIFNR = WA_BSIK-LIFNR
LIFNR_NAME = WA_BSIK-NAME1
LV_EMP_EMAILID = WA_BSIK-USEREMAIL
CREDIT = WA_BSIK-DMBTR
USNAM = WA_BSIK-USNAM
VORNA = WA_BSIK-VORNA
NACHN = WA_BSIK-NACHN
BELNR = WA_BSIK-BELNR
GJAHR = WA_BSIK-GJAHR
ZFBDT = WA_BSIK-ZFBDT.
ENDLOOP.
ENDFORM.
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
IF RS_SELFIELD-FIELDNAME = 'BELNR'.
READ TABLE ITAB INTO WA_BSIK INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'BLN' FIELD WA_BSIK-BELNR.
SET PARAMETER ID 'BUK' FIELD 'YOUR COMPANY CODE'."WA_BSIK-BUKRS'.
SET PARAMETER ID 'GJR' FIELD WA_BSIK-GJAHR.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM. "USER_COMMAND
----------------------------------------------------------------------------------------------------------------------------------------------------
FUCNTION
MODULE FOR SENDING BANK GUARANTEE REMINDER EMAIL
IMPORT
LV_EMP_USERID TYPE FITP_USER-UNAME
LIFNR TYPE LIFNR
LIFNR_NAME TYPE NAME1
LV_EMP_EMAILID TYPE PA0105-USRID_LONG
CREDIT TYPE DMBTR
USNAM TYPE USNAM
VORNA TYPE VORNA
NACHN TYPE NACHN
BELNR TYPE BELNR_D
ZFBDT TYPE BUDAT
GJAHR TYPE GJAHR
SOURCE
CODE
FUNCTION ZBG_EMAIL_REMIND.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(LV_EMP_USERID) TYPE FITP_USER-UNAME
*" VALUE(LIFNR) TYPE LIFNR
*" VALUE(LIFNR_NAME) TYPE NAME1
*" VALUE(LV_EMP_EMAILID) TYPE PA0105-USRID_LONG
*" VALUE(CREDIT) TYPE DMBTR
*" VALUE(USNAM) TYPE USNAM
*" VALUE(VORNA) TYPE VORNA
*" VALUE(NACHN) TYPE NACHN
*" VALUE(BELNR) TYPE BELNR_D
*" VALUE(ZFBDT) TYPE BUDAT
*" VALUE(GJAHR) TYPE GJAHR
*"----------------------------------------------------------------------
* *&Get The Email Id And User Id Whom You Want To Send ******
DATA:IT_RECEIVERS TYPE STANDARD TABLE OF SOMLRECI1,
WA_IT_RECEIVERS LIKE LINE OF IT_RECEIVERS,
IT_PACKING_LIST TYPE STANDARD TABLE OF SOPCKLSTI1,
GD_DOC_DATA TYPE SODOCCHGI1,
WA_IT_PACKING_LIST LIKE LINE OF IT_PACKING_LIST,
PSUBJECT(90) TYPE C,
IT_MESSAGE TYPE STANDARD TABLE OF SOLISTI1,
WA_IT_MESSAGE LIKE LINE OF IT_MESSAGE,
C1(99) TYPE C,
C2(30) TYPE C,
C3(45) TYPE C,
C4(100) TYPE C,
C5(13) TYPE C,
C6(13) TYPE C,
C7(13) TYPE C,
C8(13) TYPE C,
C9(100) TYPE C,
C10(100) TYPE C,
C11(100) TYPE C,
NUM_LINES TYPE I.
"&-- ASSIGN THE EMAIL ID AND USER ID TO WHOM YOU WANT TO SEND -------------&
FREE WA_IT_RECEIVERS.
WA_IT_RECEIVERS-RECEIVER = LV_EMP_EMAILID. "&---- ASSIGN EMAIL ID
WA_IT_RECEIVERS-REC_TYPE = 'U'. "&---- SEND TO EXTERNAL EMAIL ID
WA_IT_RECEIVERS-COM_TYPE = 'INT'.
WA_IT_RECEIVERS-NOTIF_DEL = 'X'.
WA_IT_RECEIVERS-NOTIF_NDEL = 'X'.
APPEND WA_IT_RECEIVERS TO IT_RECEIVERS .
* FREE WA_IT_RECEIVERS.
* WA_IT_RECEIVERS-RECEIVER = LV_EMP_USERID. "&----- ASSIGN SAP USER ID
* WA_IT_RECEIVERS-REC_TYPE = 'B'. "&-- SEND TO SAP INBOX
* WA_IT_RECEIVERS-COM_TYPE = 'INT'.
* WA_IT_RECEIVERS-NOTIF_DEL = 'X'.
* WA_IT_RECEIVERS-NOTIF_NDEL = 'X'.
* APPEND WA_IT_RECEIVERS TO IT_RECEIVERS .
*& - END OF ASSIGN THE EMAIL ID AND USER ID TO WHOM YOU WANT TO SEND --&
"&--- READ THE NUMBER OF LINES IN THE INTERNAL TABLE
DESCRIBE TABLE IT_RECEIVERS LINES NUM_LINES.
"&--- CHECK THE SENDER EMAIL ID OR SAP USER ID IS GOT OR NOT.
IF NUM_LINES IS NOT INITIAL.
*&----------------------------------------------------------------------
* ADD THETEXT TO MAIL TEXT TABLE
*&----------------------------------------------------------------------
*&-- SUBJECT OF THE MAIL -------------&*
PSUBJECT = 'SUB: Bank Guarantee'(001).
"&-- BODY OF THE MAIL ----------------&*
CLEAR WA_IT_MESSAGE.
C1 = 'Dear'(005).
C2 = VORNA.
C3 = NACHN.
CONCATENATE C1 C2 C3 ',' INTO WA_IT_MESSAGE-LINE SEPARATED BY SPACE.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
*** INSERT BLANK LINE *********************************************
CLEAR WA_IT_MESSAGE.
WA_IT_MESSAGE-LINE = ' '.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
******* ASSIGN YOUR TEXT BELOW *************************************
CLEAR WA_IT_MESSAGE.
C4 = 'The Bank Guarantee received from '.
C5 = LIFNR_NAME.
C6 = LIFNR.
C7 = 'of Rs. '.
C8 = CREDIT.
C9 = 'entered in SAP vide Document Number - '.
C10 = 'and Fiscal Year - '.
C11 = 'is due to expire on '.
C3 = '.'.
CONCATENATE C4 C5 C6 C7 C8 C9 BELNR C10 GJAHR C11 ZFBDT C3 INTO WA_IT_MESSAGE-LINE SEPARATED BY SPACE.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
*** INSERT BLANK LINE{} *********************************************
CLEAR WA_IT_MESSAGE.
WA_IT_MESSAGE-LINE = ' '.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
******* ASSIGN YOUR TEXT BELOW *************************************
CLEAR WA_IT_MESSAGE.
C4 = 'Kindly take neccessary action on same immediately.'.
C5 = ''.
CONCATENATE C4 C5 INTO WA_IT_MESSAGE-LINE SEPARATED BY SPACE.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
*** INSERT BLANK LINE{} *********************************************
CLEAR WA_IT_MESSAGE.
WA_IT_MESSAGE-LINE = ' '.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
******* ASSIGN YOUR TEXT BELOW *************************************
CLEAR WA_IT_MESSAGE.
C4 = 'You can see the Report by executing T-Code ZBG_EMAIL_REMIND'.
C5 = ''.
CONCATENATE C4 C5 INTO WA_IT_MESSAGE-LINE SEPARATED BY SPACE.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
**********ASSIGN YOUR TEXT BELOW ********************************
CLEAR WA_IT_MESSAGE.
WA_IT_MESSAGE-LINE = 'This Mail Generate Automatically. Please Do Not Reply.'(003).
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
*********************************************************************
**********& SEND EMAIL MESSAGE &*********************************
GD_DOC_DATA-DOC_SIZE = 1.
*POPULATE THE SUBJECT/GENERIC MESSAGE ATTRIBUTES
GD_DOC_DATA-OBJ_LANGU = SY-LANGU.
GD_DOC_DATA-OBJ_NAME = 'SAPRPT'.
GD_DOC_DATA-OBJ_DESCR = PSUBJECT.
GD_DOC_DATA-SENSITIVTY = 'F'.
*DESCRIBE THE BODY OF THE MESSAGE
CLEAR WA_IT_PACKING_LIST.
REFRESH IT_PACKING_LIST.
WA_IT_PACKING_LIST-TRANSF_BIN = SPACE.
WA_IT_PACKING_LIST-HEAD_START = 1.
WA_IT_PACKING_LIST-HEAD_NUM = 0.
WA_IT_PACKING_LIST-BODY_START = 1.
DESCRIBE TABLE IT_MESSAGE LINES WA_IT_PACKING_LIST-BODY_NUM.
WA_IT_PACKING_LIST-DOC_TYPE = 'RAW'.
APPEND WA_IT_PACKING_LIST TO IT_PACKING_LIST.
*&------ CALL THE FUNCTION MODULE TO SEND THE MESSAGE TO EXTERNAL AND SAP INBOX
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = GD_DOC_DATA
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
TABLES
PACKING_LIST = IT_PACKING_LIST
CONTENTS_TXT = IT_MESSAGE
RECEIVERS = IT_RECEIVERS
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
DOCUMENT_TYPE_NOT_EXIST = 3
OPERATION_NO_AUTHORIZATION = 4
PARAMETER_ERROR = 5
X_ERROR = 6
ENQUEUE_ERROR = 7
OTHERS = 8 .
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF. "&---- END OF CHECK THE SENDER EMAIL ID OR SAP USER ID IS GOT OR NOT.
ENDFUNCTION.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(LV_EMP_USERID) TYPE FITP_USER-UNAME
*" VALUE(LIFNR) TYPE LIFNR
*" VALUE(LIFNR_NAME) TYPE NAME1
*" VALUE(LV_EMP_EMAILID) TYPE PA0105-USRID_LONG
*" VALUE(CREDIT) TYPE DMBTR
*" VALUE(USNAM) TYPE USNAM
*" VALUE(VORNA) TYPE VORNA
*" VALUE(NACHN) TYPE NACHN
*" VALUE(BELNR) TYPE BELNR_D
*" VALUE(ZFBDT) TYPE BUDAT
*" VALUE(GJAHR) TYPE GJAHR
*"----------------------------------------------------------------------
* *&Get The Email Id And User Id Whom You Want To Send ******
DATA:IT_RECEIVERS TYPE STANDARD TABLE OF SOMLRECI1,
WA_IT_RECEIVERS LIKE LINE OF IT_RECEIVERS,
IT_PACKING_LIST TYPE STANDARD TABLE OF SOPCKLSTI1,
GD_DOC_DATA TYPE SODOCCHGI1,
WA_IT_PACKING_LIST LIKE LINE OF IT_PACKING_LIST,
PSUBJECT(90) TYPE C,
IT_MESSAGE TYPE STANDARD TABLE OF SOLISTI1,
WA_IT_MESSAGE LIKE LINE OF IT_MESSAGE,
C1(99) TYPE C,
C2(30) TYPE C,
C3(45) TYPE C,
C4(100) TYPE C,
C5(13) TYPE C,
C6(13) TYPE C,
C7(13) TYPE C,
C8(13) TYPE C,
C9(100) TYPE C,
C10(100) TYPE C,
C11(100) TYPE C,
NUM_LINES TYPE I.
"&-- ASSIGN THE EMAIL ID AND USER ID TO WHOM YOU WANT TO SEND -------------&
FREE WA_IT_RECEIVERS.
WA_IT_RECEIVERS-RECEIVER = LV_EMP_EMAILID. "&---- ASSIGN EMAIL ID
WA_IT_RECEIVERS-REC_TYPE = 'U'. "&---- SEND TO EXTERNAL EMAIL ID
WA_IT_RECEIVERS-COM_TYPE = 'INT'.
WA_IT_RECEIVERS-NOTIF_DEL = 'X'.
WA_IT_RECEIVERS-NOTIF_NDEL = 'X'.
APPEND WA_IT_RECEIVERS TO IT_RECEIVERS .
* FREE WA_IT_RECEIVERS.
* WA_IT_RECEIVERS-RECEIVER = LV_EMP_USERID. "&----- ASSIGN SAP USER ID
* WA_IT_RECEIVERS-REC_TYPE = 'B'. "&-- SEND TO SAP INBOX
* WA_IT_RECEIVERS-COM_TYPE = 'INT'.
* WA_IT_RECEIVERS-NOTIF_DEL = 'X'.
* WA_IT_RECEIVERS-NOTIF_NDEL = 'X'.
* APPEND WA_IT_RECEIVERS TO IT_RECEIVERS .
*& - END OF ASSIGN THE EMAIL ID AND USER ID TO WHOM YOU WANT TO SEND --&
"&--- READ THE NUMBER OF LINES IN THE INTERNAL TABLE
DESCRIBE TABLE IT_RECEIVERS LINES NUM_LINES.
"&--- CHECK THE SENDER EMAIL ID OR SAP USER ID IS GOT OR NOT.
IF NUM_LINES IS NOT INITIAL.
*&----------------------------------------------------------------------
* ADD THETEXT TO MAIL TEXT TABLE
*&----------------------------------------------------------------------
*&-- SUBJECT OF THE MAIL -------------&*
PSUBJECT = 'SUB: Bank Guarantee'(001).
"&-- BODY OF THE MAIL ----------------&*
CLEAR WA_IT_MESSAGE.
C1 = 'Dear'(005).
C2 = VORNA.
C3 = NACHN.
CONCATENATE C1 C2 C3 ',' INTO WA_IT_MESSAGE-LINE SEPARATED BY SPACE.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
*** INSERT BLANK LINE *********************************************
CLEAR WA_IT_MESSAGE.
WA_IT_MESSAGE-LINE = ' '.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
******* ASSIGN YOUR TEXT BELOW *************************************
CLEAR WA_IT_MESSAGE.
C4 = 'The Bank Guarantee received from '.
C5 = LIFNR_NAME.
C6 = LIFNR.
C7 = 'of Rs. '.
C8 = CREDIT.
C9 = 'entered in SAP vide Document Number - '.
C10 = 'and Fiscal Year - '.
C11 = 'is due to expire on '.
C3 = '.'.
CONCATENATE C4 C5 C6 C7 C8 C9 BELNR C10 GJAHR C11 ZFBDT C3 INTO WA_IT_MESSAGE-LINE SEPARATED BY SPACE.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
*** INSERT BLANK LINE{} *********************************************
CLEAR WA_IT_MESSAGE.
WA_IT_MESSAGE-LINE = ' '.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
******* ASSIGN YOUR TEXT BELOW *************************************
CLEAR WA_IT_MESSAGE.
C4 = 'Kindly take neccessary action on same immediately.'.
C5 = ''.
CONCATENATE C4 C5 INTO WA_IT_MESSAGE-LINE SEPARATED BY SPACE.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
*** INSERT BLANK LINE{} *********************************************
CLEAR WA_IT_MESSAGE.
WA_IT_MESSAGE-LINE = ' '.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
******* ASSIGN YOUR TEXT BELOW *************************************
CLEAR WA_IT_MESSAGE.
C4 = 'You can see the Report by executing T-Code ZBG_EMAIL_REMIND'.
C5 = ''.
CONCATENATE C4 C5 INTO WA_IT_MESSAGE-LINE SEPARATED BY SPACE.
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
**********ASSIGN YOUR TEXT BELOW ********************************
CLEAR WA_IT_MESSAGE.
WA_IT_MESSAGE-LINE = 'This Mail Generate Automatically. Please Do Not Reply.'(003).
APPEND WA_IT_MESSAGE TO IT_MESSAGE.
*********************************************************************
**********& SEND EMAIL MESSAGE &*********************************
GD_DOC_DATA-DOC_SIZE = 1.
*POPULATE THE SUBJECT/GENERIC MESSAGE ATTRIBUTES
GD_DOC_DATA-OBJ_LANGU = SY-LANGU.
GD_DOC_DATA-OBJ_NAME = 'SAPRPT'.
GD_DOC_DATA-OBJ_DESCR = PSUBJECT.
GD_DOC_DATA-SENSITIVTY = 'F'.
*DESCRIBE THE BODY OF THE MESSAGE
CLEAR WA_IT_PACKING_LIST.
REFRESH IT_PACKING_LIST.
WA_IT_PACKING_LIST-TRANSF_BIN = SPACE.
WA_IT_PACKING_LIST-HEAD_START = 1.
WA_IT_PACKING_LIST-HEAD_NUM = 0.
WA_IT_PACKING_LIST-BODY_START = 1.
DESCRIBE TABLE IT_MESSAGE LINES WA_IT_PACKING_LIST-BODY_NUM.
WA_IT_PACKING_LIST-DOC_TYPE = 'RAW'.
APPEND WA_IT_PACKING_LIST TO IT_PACKING_LIST.
*&------ CALL THE FUNCTION MODULE TO SEND THE MESSAGE TO EXTERNAL AND SAP INBOX
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = GD_DOC_DATA
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
TABLES
PACKING_LIST = IT_PACKING_LIST
CONTENTS_TXT = IT_MESSAGE
RECEIVERS = IT_RECEIVERS
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
DOCUMENT_TYPE_NOT_EXIST = 3
OPERATION_NO_AUTHORIZATION = 4
PARAMETER_ERROR = 5
X_ERROR = 6
ENQUEUE_ERROR = 7
OTHERS = 8 .
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF. "&---- END OF CHECK THE SENDER EMAIL ID OR SAP USER ID IS GOT OR NOT.
ENDFUNCTION.
No comments:
Post a Comment