*&---------------------------------------------------------------------*
*& REPORT ZBG_EMAIL_REMIND
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZBG_CUST_EMAIL_REMIND.
TYPE-POOLS : SLIS.
PARAMETERS: ZAXDAT TYPE BKPF-BUDAT.
Data: E_ZAXDAT TYPE BKPF-BUDAT.
Data: v_ZAXDAT type AKKP-AXDAT.
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_CUST_EMAIL_REMIND WITH HEADER LINE.
DATA: IT_BSIK TYPE STANDARD TABLE OF ZBG_CUST_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 ZAXDAT IS INITIAL.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
DATE = SY-DATUM
DAYS = 0
MONTHS = 1
SIGNUM = '+'
YEARS = 0
IMPORTING
CALC_DATE = E_ZAXDAT.
CONCATENATE E_ZAXDAT '063000' INTO v_ZAXDAT.
ENDIF.
IF ZAXDAT IS NOT INITIAL.
CONCATENATE ZAXDAT '063000' INTO v_ZAXDAT.
ENDIF.
SELECT * INTO CORRESPONDING FIELDS OF WA_BSIK
FROM AKKP WHERE
BUKRS = 'COMPANYC' AND
AXDAT = v_ZAXDAT AND
AKKST IN ('D', 'E').
APPEND WA_BSIK TO IT_BSIK.
ENDSELECT.
LOOP AT IT_BSIK INTO WA_BSIK.
SELECT BAANR INTO CORRESPONDING FIELDS OF WA_BSIK FROM AKKB WHERE
LCNUM = WA_BSIK-LCNUM.
ENDSELECT.
"QUERY FOR EMAIL
SELECT T1~NAME1 SMTP_ADDR FROM KNA1 AS T1
LEFT OUTER JOIN ADRC AS T2
ON T1~ADRNR = T2~ADDRNUMBER
LEFT OUTER JOIN ADR6 AS T4
ON T1~ADRNR = T4~ADDRNUMBER
INTO CORRESPONDING FIELDS OF WA_BSIK WHERE
T1~KUNNR EQ WA_BSIK-KUNNR.
ENDSELECT.
MODIFY IT_BSIK FROM WA_BSIK.
APPEND WA_BSIK TO ITAB.
ENDLOOP.
SORT ITAB BY LCNUM KUNNR.
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 = 'LCNUM'.
FIELDCATALOG-SELTEXT_M = 'Fin Doc No'.
FIELDCATALOG-COL_POS = 1.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BUKRS'.
FIELDCATALOG-SELTEXT_M = 'Company Code'.
FIELDCATALOG-COL_POS = 2.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'AKART'.
FIELDCATALOG-SELTEXT_M = 'Document Type'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'AKKTP'.
FIELDCATALOG-SELTEXT_M = 'Fin Doc Category'.
FIELDCATALOG-COL_POS = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'KUNNR'.
FIELDCATALOG-SELTEXT_M = 'Customer Number'.
FIELDCATALOG-COL_POS = 5.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'NAME1'.
FIELDCATALOG-SELTEXT_M = 'NAME'.
FIELDCATALOG-COL_POS = 6.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SMTP_ADDR'.
FIELDCATALOG-SELTEXT_M = 'Email'.
FIELDCATALOG-COL_POS = 7.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'AKKST'.
FIELDCATALOG-SELTEXT_M = 'Fin Status'.
FIELDCATALOG-COL_POS = 8.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'AXDAT'.
FIELDCATALOG-SELTEXT_M = 'Validity End Date'.
FIELDCATALOG-COL_POS = 9.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'WRTAK'.
FIELDCATALOG-SELTEXT_M = 'Fin Doc Value'.
FIELDCATALOG-COL_POS = 10.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BAANR'.
FIELDCATALOG-SELTEXT_M = 'Ext Fin Doc No'.
FIELDCATALOG-COL_POS = 11.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ERNAM'.
FIELDCATALOG-SELTEXT_M = 'Created By'.
FIELDCATALOG-COL_POS = 12.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ERDAT_TS'.
FIELDCATALOG-SELTEXT_M = 'Created On'.
FIELDCATALOG-COL_POS = 13.
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.
IF WA_BSIK-SMTP_ADDR IS NOT INITIAL.
CALL FUNCTION 'ZBG_CUST_EMAIL_REMIND'
EXPORTING
LV_EMP_USERID = 'SYSTEM'
KUNNR = WA_BSIK-KUNNR
KUNNR_NAME = WA_BSIK-NAME1
LV_EMP_EMAILID = WA_BSIK-SMTP_ADDR
CREDIT = WA_BSIK-WRTAK
AXDAT = WA_BSIK-AXDAT
BAANR = WA_BSIK-BAANR.
ENDIF.
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 = 'LCNUM'.
READ TABLE ITAB INTO WA_BSIK INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'AKN' FIELD WA_BSIK-LCNUM.
CALL TRANSACTION 'VX13N' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM. "USER_COMMAND
---------------------------------------------------------------------------------------------------------------------------
KUNNR TYPE LIFNR
KUNNR_NAME TYPE NAME1_GP
LV_EMP_EMAILID TYPE PA0105-USRID_LONG
CREDIT TYPE WRTAK
AXDAT TYPE AXDAT
BAANR TYPE BAANR
SOURCE CODE
FUNCTION ZBG_CUST_EMAIL_REMIND.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(LV_EMP_USERID) TYPE FITP_USER-UNAME
*" VALUE(KUNNR) TYPE LIFNR
*" VALUE(KUNNR_NAME) TYPE NAME1_GP
*" VALUE(LV_EMP_EMAILID) TYPE PA0105-USRID_LONG
*" VALUE(CREDIT) TYPE WRTAK
*" VALUE(AXDAT) TYPE AXDAT
*" VALUE(BAANR) TYPE BAANR
*"----------------------------------------------------------------------
*"----------------------------------------------------------------------
*" IMPORTING
*" REFERENCE(LV_EMP_USERID) TYPE FITP_USER-UNAME
*" REFERENCE(LV_EMP_EMAILID) TYPE PA0105-USRID_LONG
*"----------------------------------------------------------------------
*{ INSERT RQ1K900459 2
***********************************************************************************
* Created by: P.Surjith Kumar, Enteg InfoTech, Bangalore, India.
* Created on: 03-11-2008
* Purpose : Sending Mail for the Respective Person's SAP Inbox and External Email id.
***********************************************************************************
* *&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 = KUNNR_NAME.
CONCATENATE C1 C2 ',' 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 BG/LC submitted by you vide ref no'.
C7 = 'of Rs. '.
C8 = CREDIT.
C11 = 'is due to expire on '.
C3 = '.'.
CONCATENATE C4 BAANR C7 C8 C11 AXDAT+0(8) 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 necessary 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.
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.
*& REPORT ZBG_EMAIL_REMIND
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZBG_CUST_EMAIL_REMIND.
TYPE-POOLS : SLIS.
PARAMETERS: ZAXDAT TYPE BKPF-BUDAT.
Data: E_ZAXDAT TYPE BKPF-BUDAT.
Data: v_ZAXDAT type AKKP-AXDAT.
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_CUST_EMAIL_REMIND WITH HEADER LINE.
DATA: IT_BSIK TYPE STANDARD TABLE OF ZBG_CUST_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 ZAXDAT IS INITIAL.
CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
EXPORTING
DATE = SY-DATUM
DAYS = 0
MONTHS = 1
SIGNUM = '+'
YEARS = 0
IMPORTING
CALC_DATE = E_ZAXDAT.
CONCATENATE E_ZAXDAT '063000' INTO v_ZAXDAT.
ENDIF.
IF ZAXDAT IS NOT INITIAL.
CONCATENATE ZAXDAT '063000' INTO v_ZAXDAT.
ENDIF.
SELECT * INTO CORRESPONDING FIELDS OF WA_BSIK
FROM AKKP WHERE
BUKRS = 'COMPANYC' AND
AXDAT = v_ZAXDAT AND
AKKST IN ('D', 'E').
APPEND WA_BSIK TO IT_BSIK.
ENDSELECT.
LOOP AT IT_BSIK INTO WA_BSIK.
SELECT BAANR INTO CORRESPONDING FIELDS OF WA_BSIK FROM AKKB WHERE
LCNUM = WA_BSIK-LCNUM.
ENDSELECT.
"QUERY FOR EMAIL
SELECT T1~NAME1 SMTP_ADDR FROM KNA1 AS T1
LEFT OUTER JOIN ADRC AS T2
ON T1~ADRNR = T2~ADDRNUMBER
LEFT OUTER JOIN ADR6 AS T4
ON T1~ADRNR = T4~ADDRNUMBER
INTO CORRESPONDING FIELDS OF WA_BSIK WHERE
T1~KUNNR EQ WA_BSIK-KUNNR.
ENDSELECT.
MODIFY IT_BSIK FROM WA_BSIK.
APPEND WA_BSIK TO ITAB.
ENDLOOP.
SORT ITAB BY LCNUM KUNNR.
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 = 'LCNUM'.
FIELDCATALOG-SELTEXT_M = 'Fin Doc No'.
FIELDCATALOG-COL_POS = 1.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BUKRS'.
FIELDCATALOG-SELTEXT_M = 'Company Code'.
FIELDCATALOG-COL_POS = 2.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'AKART'.
FIELDCATALOG-SELTEXT_M = 'Document Type'.
FIELDCATALOG-COL_POS = 3.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'AKKTP'.
FIELDCATALOG-SELTEXT_M = 'Fin Doc Category'.
FIELDCATALOG-COL_POS = 4.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'KUNNR'.
FIELDCATALOG-SELTEXT_M = 'Customer Number'.
FIELDCATALOG-COL_POS = 5.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'NAME1'.
FIELDCATALOG-SELTEXT_M = 'NAME'.
FIELDCATALOG-COL_POS = 6.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'SMTP_ADDR'.
FIELDCATALOG-SELTEXT_M = 'Email'.
FIELDCATALOG-COL_POS = 7.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'AKKST'.
FIELDCATALOG-SELTEXT_M = 'Fin Status'.
FIELDCATALOG-COL_POS = 8.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'AXDAT'.
FIELDCATALOG-SELTEXT_M = 'Validity End Date'.
FIELDCATALOG-COL_POS = 9.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'WRTAK'.
FIELDCATALOG-SELTEXT_M = 'Fin Doc Value'.
FIELDCATALOG-COL_POS = 10.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'BAANR'.
FIELDCATALOG-SELTEXT_M = 'Ext Fin Doc No'.
FIELDCATALOG-COL_POS = 11.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ERNAM'.
FIELDCATALOG-SELTEXT_M = 'Created By'.
FIELDCATALOG-COL_POS = 12.
APPEND FIELDCATALOG TO FIELDCATALOG.
CLEAR FIELDCATALOG.
FIELDCATALOG-FIELDNAME = 'ERDAT_TS'.
FIELDCATALOG-SELTEXT_M = 'Created On'.
FIELDCATALOG-COL_POS = 13.
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.
IF WA_BSIK-SMTP_ADDR IS NOT INITIAL.
CALL FUNCTION 'ZBG_CUST_EMAIL_REMIND'
EXPORTING
LV_EMP_USERID = 'SYSTEM'
KUNNR = WA_BSIK-KUNNR
KUNNR_NAME = WA_BSIK-NAME1
LV_EMP_EMAILID = WA_BSIK-SMTP_ADDR
CREDIT = WA_BSIK-WRTAK
AXDAT = WA_BSIK-AXDAT
BAANR = WA_BSIK-BAANR.
ENDIF.
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 = 'LCNUM'.
READ TABLE ITAB INTO WA_BSIK INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SET PARAMETER ID 'AKN' FIELD WA_BSIK-LCNUM.
CALL TRANSACTION 'VX13N' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM. "USER_COMMAND
---------------------------------------------------------------------------------------------------------------------------
FUCNTION MODULE FOR SENDING BANK
GUARANTEE EMAIL
IMPORT
LV_EMP_USERID TYPE FITP_USER-UNAMEKUNNR TYPE LIFNR
KUNNR_NAME TYPE NAME1_GP
LV_EMP_EMAILID TYPE PA0105-USRID_LONG
CREDIT TYPE WRTAK
AXDAT TYPE AXDAT
BAANR TYPE BAANR
SOURCE CODE
FUNCTION ZBG_CUST_EMAIL_REMIND.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(LV_EMP_USERID) TYPE FITP_USER-UNAME
*" VALUE(KUNNR) TYPE LIFNR
*" VALUE(KUNNR_NAME) TYPE NAME1_GP
*" VALUE(LV_EMP_EMAILID) TYPE PA0105-USRID_LONG
*" VALUE(CREDIT) TYPE WRTAK
*" VALUE(AXDAT) TYPE AXDAT
*" VALUE(BAANR) TYPE BAANR
*"----------------------------------------------------------------------
*"----------------------------------------------------------------------
*" IMPORTING
*" REFERENCE(LV_EMP_USERID) TYPE FITP_USER-UNAME
*" REFERENCE(LV_EMP_EMAILID) TYPE PA0105-USRID_LONG
*"----------------------------------------------------------------------
*{ INSERT RQ1K900459 2
***********************************************************************************
* Created by: P.Surjith Kumar, Enteg InfoTech, Bangalore, India.
* Created on: 03-11-2008
* Purpose : Sending Mail for the Respective Person's SAP Inbox and External Email id.
***********************************************************************************
* *&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 = KUNNR_NAME.
CONCATENATE C1 C2 ',' 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 BG/LC submitted by you vide ref no'.
C7 = 'of Rs. '.
C8 = CREDIT.
C11 = 'is due to expire on '.
C3 = '.'.
CONCATENATE C4 BAANR C7 C8 C11 AXDAT+0(8) 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 necessary 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.
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