Beruflich Dokumente
Kultur Dokumente
TYPE-POOLS: IXML.
*------------------------------------------------------------------------*
* Data Declarations *
*------------------------------------------------------------------------*
* Internal Table & Work Area for Final Internal Table
DATA: IT_FINAL TYPE TABLE OF MARA,
WA_FINAL TYPE MARA.
*------------------------------------------------------------------------*
* Initialization *
*------------------------------------------------------------------------*
INITIALIZATION.
LV_DATE = SY-DATUM - 1.
*------------------------------------------------------------------------*
* Start of Selection *
*------------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM GET_USER_DATA.
PERFORM PROCESS_XML_DATA.
PERFORM SEND_MAIL.
*&---------------------------------------------------------------------*
*& Form get_user_data
*&---------------------------------------------------------------------*
* Fetch User details from USR02
*----------------------------------------------------------------------*
FORM GET_USER_DATA.
REFRESH IT_FINAL.
SELECT * FROM MARA INTO TABLE IT_FINAL UP TO 10 ROWS.
*&---------------------------------------------------------------------*
*& Form SEND_MAIL
*&---------------------------------------------------------------------*
* Send Email
*----------------------------------------------------------------------*
FORM SEND_MAIL.
DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
DATA: OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
DATA: OBJBIN LIKE SOLIX OCCURS 10 WITH HEADER LINE.
DATA: OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
DATA: DOC_CHNG LIKE SODOCCHGI1.
DATA: TAB_LINES LIKE SY-TABIX.
DATA: L_NUM(3).
DATA: SUBJ_DATE(10) TYPE C.
* Mail Subject
CONCATENATE LV_DATE+6(2) '-' LV_DATE+4(2) '-' LV_DATE+0(4) INTO SUBJ_DATE.
CONCATENATE 'SAP Application Usage Report ' SUBJ_DATE INTO DOC_CHNG-OBJ_DESCR
SEPARATED BY SPACE.
* Mail Contents
OBJTXT = 'Dear User,'.
APPEND OBJTXT.
CLEAR OBJTXT.
APPEND OBJTXT.
CONCATENATE 'Please find the attachment ' SUBJ_DATE INTO OBJTXT SEPARATED BY
SPACE. " Mail Contents
APPEND OBJTXT.
CLEAR OBJTXT.
APPEND OBJTXT.
* Target Recipent
CLEAR RECLIST.
RECLIST-RECEIVER = 'rahul.sinha@india.nec.com'.
RECLIST-REC_TYPE = 'U'.
RECLIST-EXPRESS = 'X'.
APPEND RECLIST.
COMMIT WORK.
*&---------------------------------------------------------------------*
*& Form process_xml_data
*&---------------------------------------------------------------------*
* Process XML Data
*----------------------------------------------------------------------*
FORM PROCESS_XML_DATA .
* Styles
R_STYLES = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Styles' PARENT =
L_ELEMENT_ROOT ).
*=== Color
R_FORMAT = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Interior' PARENT = R_STYLE
).
R_FORMAT->SET_ATTRIBUTE_NS( NAME = 'Color' PREFIX = 'ss' VALUE = '#92D050' ).
R_FORMAT->SET_ATTRIBUTE_NS( NAME = 'Pattern' PREFIX = 'ss' VALUE = 'Solid' ).
*=== Bold
R_FORMAT = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Font' PARENT =
R_STYLE ).
R_FORMAT->SET_ATTRIBUTE_NS( NAME = 'Bold' PREFIX = 'ss' VALUE = '1' ).
*===
R_FORMAT = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Alignment' PARENT =
R_STYLE ).
R_FORMAT->SET_ATTRIBUTE_NS( NAME = 'Vertical' PREFIX = 'ss' VALUE = 'Center' ).
R_FORMAT->SET_ATTRIBUTE_NS( NAME = 'WrapText' PREFIX = 'ss' VALUE = '1' ).
* Worksheet
R_WORKSHEET = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Worksheet' PARENT =
L_ELEMENT_ROOT ).
R_WORKSHEET->SET_ATTRIBUTE_NS( NAME = 'Name' PREFIX = 'ss' VALUE = 'Sheet1' ).
* Table
R_TABLE = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Table' PARENT = R_WORKSHEET
).
R_TABLE->SET_ATTRIBUTE_NS( NAME = 'FullColumns' PREFIX = 'x' VALUE = '1' ).
R_TABLE->SET_ATTRIBUTE_NS( NAME = 'FullRows' PREFIX = 'x' VALUE = '1' ).
** Blank Row
* R_ROW = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Row' PARENT = R_TABLE ).
* Sr. No.
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Header' ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = 'Sr. No.'
PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
* blank
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Header' ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = ' ' PARENT =
R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
* User Name
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Header' ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = 'Personnel
Number' PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
* Full Name
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Header' ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = 'Name' PARENT
= R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
* Department
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Header' ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = 'Department'
PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
* Date of Error
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Header' ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = 'Date of
Error' PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
* Message Code
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Header' ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = 'Message code'
PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
* Message
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Header' ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = 'Message'
PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
* In Punch
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Header' ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = 'In Punch'
PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
* Out Punch
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Header' ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = 'Out punch'
PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
* Date of correction
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Header' ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = 'Date of
correction' PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
* Parameters
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Header' ).
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = 'Parameters'
PARENT = R_CELL ).
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
* ** Blank Row
R_ROW = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Row' PARENT = R_TABLE ).
* Data Table
WA_DATA-PERNR = '1'.
WA_DATA-ENAME = 'abc'.
WA_DATA-ORGEH = '10'.
WA_DATA-DATEE = '01.01.2013'.
WA_DATA-ERROR = '00'.
WA_DATA-ETEXT = 'Error 1'.
WA_DATA-IN_TIME = '101010'.
WA_DATA-OUT_TIME = '220000'.
WA_DATA-DATEC = '02.01.2013'.
WA_DATA-PARA = 'ABCD'.
WA_DATA-ACT =
'dsaaaaaaaaaaaaaaaaaaaaaaaaadsaaaaaaaaaaaaaaaaaaaaaaaaadsfsfsdfsdfsdfsdfsdfsdfsd'.
APPEND WA_DATA TO T_DATA.
WA_DATA-PERNR = '2'.
WA_DATA-ENAME = 'abcsasasas'.
WA_DATA-ORGEH = '20'.
WA_DATA-DATEE = '02.01.2013'.
WA_DATA-ERROR = '11'.
WA_DATA-ETEXT = 'Error 2'.
WA_DATA-IN_TIME = '131010'.
WA_DATA-OUT_TIME = '230000'.
WA_DATA-DATEC = '04.01.2013'.
WA_DATA-PARA = 'AAAD'.
WA_DATA-ACT =
'dssasasaaaaaaaaaaadsaaaaaaaaaaaaaaaaaaaaaaaaadsfsfsdfsdfsdfsdfsdfsdfsdfsdfsdfsdf'.
APPEND WA_DATA TO T_DATA.
* Sr. No.
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Data' ).
L_VALUE = SY-TABIX.
CONDENSE L_VALUE NO-GAPS.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = L_VALUE
PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'Number' ).
" Cell format
* Personnel Number
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Data' ).
L_VALUE = WA_DATA-PERNR.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = L_VALUE
PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
" Cell format
* Name
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Data' ).
L_VALUE = WA_DATA-ENAME.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = L_VALUE
PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
" Cell format
* Department
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Data' ).
L_VALUE = WA_DATA-ORGEH.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = L_VALUE
PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
" Cell format
* Date of Error
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Data' ).
L_VALUE = WA_DATA-DATEE.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = L_VALUE
PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
" Cell format
* Message code
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Data' ).
L_VALUE = WA_DATA-ERROR.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = L_VALUE
PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
" Cell format
* Message
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Data' ).
L_VALUE = WA_DATA-ETEXT.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = L_VALUE
PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
" Cell format
* In Punch
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Data' ).
L_VALUE = WA_DATA-IN_TIME.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = L_VALUE
PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
" Cell format
* Out Punch
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Data' ).
L_VALUE = WA_DATA-OUT_TIME.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = L_VALUE
PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
" Cell format
* Date of correction
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Data' ).
L_VALUE = WA_DATA-DATEC.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = L_VALUE
PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
" Cell format
* Parameters
R_CELL = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Cell' PARENT = R_ROW ).
R_CELL->SET_ATTRIBUTE_NS( NAME = 'StyleID' PREFIX = 'ss' VALUE = 'Data' ).
L_VALUE = WA_DATA-PARA.
R_DATA = L_DOCUMENT->CREATE_SIMPLE_ELEMENT( NAME = 'Data' VALUE = L_VALUE
PARENT = R_CELL ). " Data
R_DATA->SET_ATTRIBUTE_NS( NAME = 'Type' PREFIX = 'ss' VALUE = 'String' ).
" Cell format