0% found this document useful (0 votes)
310 views

No Standard Page Type-Pools

This program creates user IDs in transaction IT0105 with subtype 0001 and transaction SU01 (SAP user ID) to simulate the functionality of transaction HRUSER. It retrieves employee data from tables T100, PERNR, PA0002, PA0105 and creates the user records. It was initially developed on 04/13/2015 by SKONDANI and transported using transport request LEDK908114. The program retrieves line manager positions, business area parameters, checks for existing users, and creates the user records in both IT0105 and SU01 if no user exists for the employee.

Uploaded by

raju
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
310 views

No Standard Page Type-Pools

This program creates user IDs in transaction IT0105 with subtype 0001 and transaction SU01 (SAP user ID) to simulate the functionality of transaction HRUSER. It retrieves employee data from tables T100, PERNR, PA0002, PA0105 and creates the user records. It was initially developed on 04/13/2015 by SKONDANI and transported using transport request LEDK908114. The program retrieves line manager positions, business area parameters, checks for existing users, and creates the user records in both IT0105 and SU01 if no user exists for the employee.

Uploaded by

raju
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 25

************************************************************************

* Program ID
:
ZHRUSER
*
* PROGRAM TITLE
:
ESS/MSS User ID creation for Employees
*
* Transaction Code
:
ZHRUSER
*
* CREATED BY
:
SGANDRA/SKONDANI
*
* CREATION DATE
:
04/13/2015
*
*----------------------------------------------------------------------*
* DESCRIPTION
:
This report is used to create user ids in IT0105 *
*
with subtype 0001 and also creates user id in the*
*
transaction SU01(SAP user id). This program is
*
*
created to simulate HRUSER funcationality to take*
*
out manual execution of transaction HRUSER.
*
************************************************************************
* Modification history:
*
* ---------------------------------------------------------------------*
* DATE
|User ID
| Transport
| Description
*
* ---------------------------------------------------------------------*
* 04/13/2015
SKONDANI
LEDK908114
[IR136646]-Initial Development*
************************************************************************
REPORT ZHRUSER NO STANDARD PAGE HEADING.
TYPE-POOLS:
SLIS.
* Tables declaration
TABLES:
T100,
PERNR,
PA0002,
PA0105.
DATA:
L_MSTRING(480),
L_SUBRC LIKE SY-SUBRC,
LD_USER TYPE SY-UNAME,
LD_NEW TYPE SY-UNAME,
LD_EMAIL TYPE BAPIADDR3-E_MAIL,
LD_RETURN TYPE SY-SUBRC,
LD_PASS(50) TYPE C.

DATA:
*
DATA:
*
DATA:
*

BDCDATA LIKE BDCDATA


OCCURS 0 WITH HEADER LINE.
messages of call transaction
MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
error session opened (' ' or 'X')
E_GROUP_OPENED.
message texts

INFOTYPES: 0002,0105.
DATA:
DATA:
DATA:

PERNR_TAB LIKE PERNR OCCURS 0 WITH HEADER LINE.


PLVAR LIKE OBJEC-PLVAR.
REALO LIKE OBJEC-REALO.

DATA:
DATA:
DATA:
DATA :
DATA:

DATA:

USER_FOUND LIKE SY-SUBRC.


PUSER TYPE CHAR9.
RETURN
LIKE BAPIRETURN1.
LV_TABIX TYPE SY-TABIX.
BEGIN OF W_1001,
OTYPE TYPE OTYPE,
OBJID TYPE HROBJID,
PLVAR TYPE PLVAR,
RSIGN TYPE RSIGN,
RELAT TYPE RELAT,
ISTAT TYPE ISTAT_D,
ENDDA TYPE ENDDATUM,
END OF W_1001,
WA_1001 LIKE W_1001,
IT_1001 LIKE STANDARD TABLE OF WA_1001.
WA_0002 LIKE P0002,

PA_0002 LIKE P0002 OCCURS 0 WITH HEADER LINE,


PA_0105 LIKE P0105 OCCURS 0 WITH HEADER LINE.
DATA:
BEGIN OF W_CVR,
GSBER TYPE GSBER,
ZDESC TYPE CHAR40,
ZCVR TYPE CHAR10,
END OF W_CVR,
IT_CVR LIKE STANDARD TABLE OF W_CVR,
WA_CVR LIKE W_CVR,
* Begin of Add SKONDANI
W_MSS TYPE C,
W_DATE TYPE CHAR10,
W_DATUM TYPE SY-DATUM VALUE '99991231',
BEGIN OF WA_WERKS,
PERNR TYPE P0001-PERNR,
WERKS TYPE P0001-WERKS,
END OF WA_WERKS,
BEGIN OF WA_T500P,
WERKS TYPE T500P-PERSA,
LAND1 TYPE T500P-LAND1,
END OF WA_T500P,
IT_WERKS LIKE TABLE OF WA_WERKS,
IT_T500P LIKE TABLE OF WA_T500P,
BEGIN OF WA_USR02,
PERNR TYPE PERNR-PERNR,
*
BNAME TYPE USR02-BNAME,
END OF WA_USR02,
IT_USR02 LIKE STANDARD TABLE OF WA_USR02.
DATA:
* SAP user id
W_USERNAME
LIKE BAPIBNAME-BAPIBNAME,
* Work area for logon data
WA_LOGONDATA LIKE BAPILOGOND,
* work area for password
WA_PASSWORD
LIKE BAPIPWD,
* Work area for defaults

WA_DEFAULTS
LIKE BAPIDEFAUL,
* work area for address
WA_ADDRESS
LIKE BAPIADDR3,
* Work area for license data
WA_UCLASS
TYPE BAPIUCLASS,
WA_PARAMETER LIKE BAPIPARAM,
WA_RETURN
LIKE BAPIRET2,
IT_PARAMETER LIKE STANDARD TABLE OF BAPIPARAM,
IT_RETURN
LIKE STANDARD TABLE OF BAPIRET2,
* Structures for Roles.
WA_ACTIVITYGROUPS LIKE BAPIAGR,
IT_ACTIVITYGROUPS LIKE STANDARD TABLE OF BAPIAGR,
BEGIN OF WA_MESSAGES,
PERNR TYPE PA0001-PERNR.
INCLUDE STRUCTURE BAPIRET2.
DATA: ROWCOLOR TYPE CHAR4,
END OF WA_MESSAGES,
IT_MESSAGES LIKE STANDARD TABLE OF WA_MESSAGES,
WA_MSG LIKE WA_MESSAGES.
* End of Add SKONDANI.
*Begin of ADD SKONDANI
TYPES: BEGIN
OF
TY_GRID_LIST,
PERNR
TYPE P0001-PERNR,
ACCOUNT
TYPE CHAR9,
ROLE_NAME TYPE BAPIAGR-AGR_NAME,
IS_MANAGER TYPE C,
CVR
TYPE CHAR10,
UCN
TYPE T500P-LAND1,
SBU
TYPE PERNR-GSBER,
TYPE
TYPE BAPI_MTYPE,
ID
TYPE SYMSGID,
NUMBER
TYPE SYMSGNO,
MESSAGE
TYPE BAPI_MSG,
ROWCOLOR TYPE CHAR4,
END
OF
TY_GRID_LIST.
DATA: IT_GRID_LIST TYPE STANDARD TABLE OF TY_GRID_LIST,
WA_GRID_LIST TYPE TY_GRID_LIST.
* End of ADD SKONDANI
DATA: BEGIN OF RECORD,
* data element: XUBNAME
BNAME_001(012),
* data element: AD_NAMELAS
NAME_LAST_002(040),
* data element: AD_NAMEFIR
NAME_FIRST_003(040),
* data element: SPRAS
LANGU_P_004(002),
* data element: AD_COMM

DEFLT_COMM_005(003),
* data element: AD_NAMELAS
NAME_LAST_006(040),
* data element: AD_NAMEFIR
NAME_FIRST_007(040),
* data element: XUUSTYP
USTYP_008(001),
* data element:
G_PASSWORD1_009(040),
* data element:
G_PASSWORD2_010(040),
* data element: XUCLASS
CLASS_011(012),
* data element: XUDATFM
DATFM_012(001),
* data element: XUTIMEFM
TIMEFM_013(039),
* data element: TZNZONE
TZONE_014(006),
* data element: MEMORYID
PARID_01_015(020),
* data element: AGR_NAME
AGR_NAME_01_016(030),
END OF RECORD.
SELECTION-SCREEN BEGIN OF BLOCK B1
WITH FRAME TITLE TEXT-001. " Add SKONDANI
PARAMETERS: SELDAT LIKE OBJEC-BEGDA MODIF ID DIS DEFAULT SY-DATUM.
SELECTION-SCREEN END OF BLOCK B1.

DATA: NOUS TYPE I VALUE '1',


ALL TYPE I.
INITIALIZATION.
* refresh memory:
* EXPORT pernr_tab TO MEMORY ID 'PERNRSELECTION'.
*
CALL FUNCTION 'RH_GET_ACTIVE_WF_PLVAR'
IMPORTING
ACT_PLVAR
= PLVAR
EXCEPTIONS
NO_ACTIVE_PLVAR = 1
OTHERS
= 2.
IF SY-SUBRC <> 0.
PLVAR = '01'.
ENDIF.
AT SELECTION-SCREEN OUTPUT.
PNPBEGPS = SELDAT.
PNPBEGDA = SELDAT.

LOOP AT SCREEN.
IF SCREEN-GROUP1 NE 'SEL'.
SCREEN-INPUT = 0.
IF SCREEN-GROUP1 NE 'DIS'.
SCREEN-INVISIBLE = 1.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.

START-OF-SELECTION.
" Add SKONDANI
***********************************************************************
*Getting all line manager positions into internal table it_1001
***********************************************************************
SELECT OTYPE OBJID PLVAR RSIGN RELAT ISTAT ENDDA INTO TABLE IT_1001
FROM HRP1001 WHERE OTYPE = 'S'
AND
PLVAR = '01' AND
RSIGN = 'A'
AND
RELAT = '012' AND
ISTAT = '1'
AND
ENDDA = '99991231'.
***********************************************************************
*Getting all Parameters from ztable with respect to business area
***********************************************************************
SELECT GSBER ZDESC ZCVR INTO TABLE IT_CVR
FROM ZHR_PARAMETER.
GET PERNR.
IF ALL IS INITIAL.
s into pernr_tab
CLEAR:
USER_FOUND,
NOUS.
LOOP AT P0105 WHERE BEGDA LE SY-DATUM AND
ENDDA GE SY-DATUM AND
SUBTY EQ '0001'.
REALO = P0105-USRID.
CALL FUNCTION 'RH_READ_OBJECT'
EXPORTING
PLVAR
= PLVAR
OTYPE
= 'US'
REALO
= REALO
EXCEPTIONS
NOT_FOUND = 1
OTHERS
= 2.
NOUS = SY-SUBRC.
ENDLOOP.
IF SY-SUBRC GT 0.
USER_FOUND = SY-SUBRC.
ENDIF.

"Employess With out user

IF ( USER_FOUND NE 0 OR NOT NOUS IS INITIAL ).


APPEND PERNR TO PERNR_TAB.
APPEND P0105 TO PA_0105.
APPEND P0002 TO PA_0002.
* Begin of Add SKONDANI
MOVE:
P0002-PERNR TO WA_WERKS-PERNR,
PERNR-WERKS TO WA_WERKS-WERKS.
APPEND WA_WERKS TO IT_WERKS.
CLEAR WA_WERKS.
IF NOUS IS NOT INITIAL.
MOVE:PERNR-PERNR TO WA_USR02-PERNR.
APPEND WA_USR02 TO IT_USR02.
CLEAR WA_USR02.
ENDIF.
* End of Add SKONDANI
ENDIF.
ENDIF.
END-OF-SELECTION.
* Begin of Add SKONDANI
SORT IT_WERKS BY PERNR.
PERFORM GET_COUNTRY_PERSA.
* End of Add SKONDANI
LOOP AT PERNR_TAB.
* Begin of Add SKONDANI
CLEAR:
RETURN,
WA_RETURN,
WA_MESSAGES.
REFRESH:
IT_RETURN.
*
if valid record exists do not create IT0105 record.
CONCATENATE 'P' PERNR_TAB-PERNR INTO PUSER.
CLEAR WA_USR02.
READ TABLE IT_USR02 INTO WA_USR02
WITH KEY PERNR = PERNR_TAB-PERNR.
IF SY-SUBRC NE 0.
* End of Add SKONDANI
***********************************************************************
*Creating record in the table P0105 - subtype 0001.
***********************************************************************
CONCATENATE 'P' PERNR_TAB-PERNR INTO PUSER.
CLEAR P0105.
P0105-PERNR = PERNR_TAB-PERNR.
P0105-SUBTY = '0001'.
P0105-ENDDA = '99991231'.
P0105-BEGDA = SY-DATUM.
P0105-AEDTM = SY-DATUM.
P0105-UNAME = SY-UNAME.

P0105-USRTY = '0001'.
P0105-USRID = PUSER.
CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
EXPORTING
NUMBER = PERNR_TAB-PERNR.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
INFTY
= '0105'
NUMBER
= PERNR_TAB-PERNR
VALIDITYEND
= P0105-ENDDA
VALIDITYBEGIN = P0105-BEGDA
RECORD
= P0105
OPERATION
= 'INS'
IMPORTING
RETURN
= RETURN.
IF RETURN IS NOT INITIAL.
* Begin of Add SKONDANI
MOVE: PERNR_TAB-PERNR TO WA_MESSAGES-PERNR.
MOVE-CORRESPONDING RETURN TO WA_MESSAGES.
APPEND WA_MESSAGES TO IT_MESSAGES.
CLEAR WA_MESSAGES.
* End of Add SKONDANI
*
WRITE RETURN.
" Delete SKONDANI
ELSE.
MOVE: PERNR_TAB-PERNR TO WA_MESSAGES-PERNR.
MOVE:
'S' TO WA_MESSAGES-TYPE,
'00' TO WA_MESSAGES-ID,
'001' TO WA_MESSAGES-NUMBER,
'IT0105 record created sucessfully' TO WA_MESSAGES-MESSAGE.
APPEND WA_MESSAGES TO IT_MESSAGES.
CLEAR WA_MESSAGES.
ENDIF.
CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'
EXPORTING
NUMBER = PERNR_TAB-PERNR.
ENDIF.
***********************************************************************
*Getting lastname and firstname for a pernr
***********************************************************************
CLEAR WA_0002.
READ TABLE PA_0002 WITH KEY PERNR = PERNR_TAB-PERNR INTO WA_0002.
***********************************************************************
*Getting CVR Parameter
***********************************************************************
CLEAR WA_CVR.
READ TABLE IT_CVR WITH KEY GSBER = PERNR_TAB-GSBER INTO WA_CVR.

* Begin of Add SKONDANI


* Read UCN parameter of the employee
CLEAR:
W_MSS,
WA_WERKS,
WA_T500P.
READ TABLE IT_WERKS INTO WA_WERKS
WITH KEY PERNR = PERNR_TAB-PERNR BINARY SEARCH.
IF SY-SUBRC EQ 0.
READ TABLE IT_T500P INTO WA_T500P
WITH KEY WERKS = WA_WERKS-WERKS BINARY SEARCH.
ENDIF.
* End of Add SKONDANI
***********************************************************************
*Checking for MSSUSER
***********************************************************************
CLEAR WA_1001.
READ TABLE IT_1001 WITH KEY OTYPE = 'S' OBJID = PERNR_TAB-PLANS INTO W
A_1001.
IF SY-SUBRC = '0'.
***********************************************************************
*Creating record in SU01 for MSSUSER
***********************************************************************
*
Set the flag if the user is MSS user type
W_MSS = 'X'.
*

Set common data.


PERFORM SET_COMMON_DATA.
CLEAR L_SUBRC.
Create SAP user id
W_USERNAME = PUSER.
PERFORM CREATE_SAP_USER_ID USING

L_SUBRC.

IF L_SUBRC EQ 0.

IF IT_RETURN[] IS NOT INITIAL.


Collect messages from user id creation
PERFORM COLLECT_MESSAGES.
ENDIF.

REFRESH:
IT_RETURN,
IT_ACTIVITYGROUPS.
CLEAR:
L_SUBRC,
WA_ACTIVITYGROUPS.

*
*
*
*

*
*

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Assign this role in system.


PERFORM ASSIGN_ROLES USING W_MSS
L_SUBRC.
IF IT_RETURN[] IS NOT INITIAL.
Collect messages from roles assignment
PERFORM COLLECT_MESSAGES.
ENDIF.
ELSE.
IF IT_RETURN[] IS NOT INITIAL.
Collect messages from user id creation
PERFORM COLLECT_MESSAGES.
ENDIF.
ENDIF.
Begin of Delete SKONDANI
L_SUBRC = SY-SUBRC.
LD_RETURN = L_SUBRC.
End of Delete SKONDANI
IF L_SUBRC IS INITIAL.
WRITE: / 'Succesfully Created MSSUSER', PUSER. " Delete SKONDANI
Begin of Add SKONANI
IF SYST-SYSID+2(1) EQ 'P' AND
PUSER IS NOT INITIAL .
CLEAR:
BDCDATA,
MESSTAB.
PERFORM ASSIGN_STRUCTURAL_AUTH USING PUSER
W_MSS.
ENDIF.
End of Add SKONDANI
ELSE.
WRITE: / 'Failed to Create MSSUSER', PUSER.
LOOP AT MESSTAB.
SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA
AND
ARBGB = MESSTAB-MSGID
AND
MSGNR = MESSTAB-MSGNR.
IF SY-SUBRC = 0.
L_MSTRING = T100-TEXT.
IF L_MSTRING CS '&1'.
REPLACE '&1' WITH MESSTAB-MSGV1 INTO L_MSTRING.
REPLACE '&2' WITH MESSTAB-MSGV2 INTO L_MSTRING.
REPLACE '&3' WITH MESSTAB-MSGV3 INTO L_MSTRING.
REPLACE '&4' WITH MESSTAB-MSGV4 INTO L_MSTRING.
ELSE.
REPLACE '&' WITH MESSTAB-MSGV1 INTO L_MSTRING.
REPLACE '&' WITH MESSTAB-MSGV2 INTO L_MSTRING.
REPLACE '&' WITH MESSTAB-MSGV3 INTO L_MSTRING.
REPLACE '&' WITH MESSTAB-MSGV4 INTO L_MSTRING.
ENDIF.
CONDENSE L_MSTRING.

*
*
*
*
*

WRITE: / L_MSTRING. "MESSTAB-MSGTYP,


ELSE.
WRITE: / MESSTAB.
ENDIF.
ENDLOOP.
ENDIF.
*
CLEAR MESSTAB.
" Delete SKONDANI
ELSE.
***********************************************************************
*Creating record in SU01 for ESSUSER
***********************************************************************
*

Set common data.


PERFORM SET_COMMON_DATA.
CLEAR L_SUBRC.
Create SAP user id
W_USERNAME = PUSER.
PERFORM CREATE_SAP_USER_ID USING

L_SUBRC.

IF L_SUBRC EQ 0.

IF IT_RETURN[] IS NOT INITIAL.


Collect messages from user id creation
PERFORM COLLECT_MESSAGES.
ENDIF.

REFRESH:
IT_RETURN,
IT_ACTIVITYGROUPS.
CLEAR:
L_SUBRC,
WA_ACTIVITYGROUPS.
*

Assign this role in system.


PERFORM ASSIGN_ROLES USING W_MSS
L_SUBRC.
IF IT_RETURN[] IS NOT INITIAL.
IF IT_RETURN[] IS NOT INITIAL.
Collect messages from roles assignment
PERFORM COLLECT_MESSAGES.
ENDIF.
ENDIF.
ELSE.
IF IT_RETURN[] IS NOT INITIAL.
Collect messages from user id creation
PERFORM COLLECT_MESSAGES.
ENDIF.
ENDIF.

* Begin of Delete SKONDANI

*
L_SUBRC = SY-SUBRC.
*
LD_RETURN = L_SUBRC.
* End of Delete SKONDANI
IF L_SUBRC IS INITIAL.
*
WRITE: / 'Succesfully Created ESSUSER', PUSER. " Delete SKODANI
* Begin of Add SKONANI
IF SYST-SYSID+2(1) EQ 'P' AND
PUSER IS NOT INITIAL .
CLEAR:
BDCDATA,
MESSTAB.
PERFORM ASSIGN_STRUCTURAL_AUTH USING PUSER
W_MSS.
ENDIF.
* End of Add SKONDANI
ELSE.
* Begin of Delete SKONDANI
*
WRITE: / 'Failed to Create ESSUSER', PUSER.
*
LOOP AT MESSTAB.
*
SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA
*
AND
ARBGB = MESSTAB-MSGID
*
AND
MSGNR = MESSTAB-MSGNR.
*
IF SY-SUBRC = 0.
*
L_MSTRING = T100-TEXT.
*
IF L_MSTRING CS '&1'.
*
REPLACE '&1' WITH MESSTAB-MSGV1 INTO L_MSTRING.
*
REPLACE '&2' WITH MESSTAB-MSGV2 INTO L_MSTRING.
*
REPLACE '&3' WITH MESSTAB-MSGV3 INTO L_MSTRING.
*
REPLACE '&4' WITH MESSTAB-MSGV4 INTO L_MSTRING.
*
ELSE.
*
REPLACE '&' WITH MESSTAB-MSGV1 INTO L_MSTRING.
*
REPLACE '&' WITH MESSTAB-MSGV2 INTO L_MSTRING.
*
REPLACE '&' WITH MESSTAB-MSGV3 INTO L_MSTRING.
*
REPLACE '&' WITH MESSTAB-MSGV4 INTO L_MSTRING.
*
ENDIF.
*
CONDENSE L_MSTRING.
*
WRITE: / L_MSTRING. "MESSTAB-MSGTYP,
*
ELSE.
*
WRITE: / MESSTAB.
*
ENDIF.
*
ENDLOOP.
* End of Delete SKONDANI
ENDIF.
*
CLEAR MESSTAB.
ENDIF.
*
Begin of add SKODANI
WA_GRID_LIST-PERNR = PERNR_TAB-PERNR.
WA_GRID_LIST-SBU = PERNR_TAB-GSBER.
IF W_MSS = 'X'.
WA_GRID_LIST-IS_MANAGER = 'Y'.
ELSE.
WA_GRID_LIST-IS_MANAGER = 'N'.

ENDIF.
WA_GRID_LIST-UCN = WA_T500P-LAND1.
WA_GRID_LIST-CVR = WA_CVR-ZCVR.
WA_GRID_LIST-ACCOUNT = PUSER.
CLEAR WA_MSG.
*READ TABLE IT_MESSAGES INTO wa_msg WITH key PERNR = PERNR_TAB-PERNR.
IF IT_ACTIVITYGROUPS IS NOT INITIAL.
LOOP AT IT_ACTIVITYGROUPS INTO WA_ACTIVITYGROUPS.
WA_GRID_LIST-ROLE_NAME = WA_ACTIVITYGROUPS-AGR_NAME.
LV_TABIX = SY-TABIX.
READ TABLE IT_MESSAGES INTO WA_MSG INDEX SY-TABIX.
WA_GRID_LIST-TYPE = WA_MSG-TYPE.
WA_GRID_LIST-ID = WA_MSG-ID.
WA_GRID_LIST-NUMBER = WA_MSG-NUMBER.
WA_GRID_LIST-MESSAGE = WA_MSG-MESSAGE.
IF WA_GRID_LIST-TYPE EQ 'E' OR
WA_GRID_LIST-TYPE EQ 'A'.
WA_GRID_LIST-ROWCOLOR = 'C610'.
ELSE.
WA_GRID_LIST-ROWCOLOR = 'C500'.
ENDIF.
APPEND WA_GRID_LIST TO IT_GRID_LIST.
ENDLOOP.
ELSE.
APPEND WA_GRID_LIST TO IT_GRID_LIST.
ENDIF.
CLEAR WA_GRID_LIST.
*

End of add SKODANI


ENDLOOP.

* Begin of Add SKONDANI


* Build ALV list.
IF IT_MESSAGES[] IS NOT INITIAL.
IF SY-BATCH = 'X'.
PERFORM DISPLAY_ALV_LIST.
ELSE.
PERFORM DISPLAY_GRID_LIST.
ENDIF.
ENDIF.
* End of Add SKONDANI
*----------------------------------------------------------------------*
*
Start new screen
*
*----------------------------------------------------------------------*

FORM BDC_DYNPRO USING PROGRAM DYNPRO.


CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO
= DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM.
"BDC_DYNPRO
*----------------------------------------------------------------------*
*
Insert field
*
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL IS NOT INITIAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM.
"BDC_FIELD
* Begin of Add SKONDANI
*&---------------------------------------------------------------------*
*&
Form GET_COUNTRY_PERSA
*
*&---------------------------------------------------------------------*
*
This subroutine is used to get country of the personal area
*
*----------------------------------------------------------------------*
*
No parameters passed.
*
*----------------------------------------------------------------------*
FORM GET_COUNTRY_PERSA .
DATA:
LT_WERKS LIKE TABLE OF WA_WERKS.
LT_WERKS[] = IT_WERKS[].
* Remove duplicate personnel area data from local internal table.
SORT LT_WERKS BY WERKS.
DELETE ADJACENT DUPLICATES FROM LT_WERKS COMPARING WERKS.
IF LT_WERKS[] IS NOT INITIAL.
* Get country of the personnel area
SELECT PERSA
LAND1
FROM T500P
INTO TABLE IT_T500P
FOR ALL ENTRIES IN LT_WERKS
WHERE PERSA EQ LT_WERKS-WERKS.
IF SY-SUBRC EQ 0.
SORT IT_T500P BY WERKS.
ENDIF.
ENDIF.
ENDFORM.

" GET_COUNTRY_PERSA

*&---------------------------------------------------------------------*
*&
Form ASSIGN_STRUCTURAL_AUTH
*
*&---------------------------------------------------------------------*
*
This subroutine is used to assign structural authorizations to *
*
ESS/MSS p user id created.
*
*----------------------------------------------------------------------*
*
-->P_USER P Account
*
*
-->P_MSS
MSS user id flag
*
*----------------------------------------------------------------------*
FORM ASSIGN_STRUCTURAL_AUTH USING
P_USER
P_MSS.
PERFORM BDC_DYNPRO
PERFORM BDC_FIELD
PERFORM BDC_FIELD

PERFORM BDC_DYNPRO
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
IF P_MSS IS INITIAL.
PERFORM BDC_FIELD
ELSE.
PERFORM BDC_FIELD

USING 'SAPL0H00' '0017'.


USING 'BDC_OKCODE'
'=NEWL'.
USING 'BDC_CURSOR'
'T77UA-BEGDA(01)'.
USING 'SAPL0H00' '0017'.
USING 'BDC_OKCODE'
'=SAVE'.
USING 'BDC_CURSOR'
'T77UA-ENDDA(01)'.
USING 'T77UA-UNAME(01)'
P_USER.
USING 'T77UA-PROFL(01)'
'LIOX_ESS'.
USING 'T77UA-PROFL(01)'
'LIOX_MSS'.

ENDIF.
CLEAR W_DATE.
WRITE SY-DATUM TO W_DATE.
PERFORM BDC_FIELD
USING 'T77UA-BEGDA(01)'
W_DATE.
CLEAR W_DATE.
WRITE W_DATUM TO W_DATE.
PERFORM BDC_FIELD
USING 'T77UA-ENDDA(01)'
W_DATE.
PERFORM BDC_DYNPRO
PERFORM BDC_FIELD
PERFORM BDC_FIELD

PERFORM BDC_DYNPRO
PERFORM BDC_FIELD

USING 'SAPL0H00' '0017'.


USING 'BDC_OKCODE'
'/EABR'.
USING 'BDC_CURSOR'
'T77UA-UNAME(02)'.

USING 'SAPL0H00' '0017'.


USING 'BDC_OKCODE'
'/EABR'.

PERFORM BDC_FIELD

USING 'BDC_CURSOR'
'T77UA-ENDDA(01)'.

CALL TRANSACTION 'OOSB' USING BDCDATA MODE 'N' UPDATE 'S'


MESSAGES INTO MESSTAB.
* Check if it resulted in any ERROR.
CLEAR MESSTAB.
READ TABLE MESSTAB WITH KEY MSGTYP = 'E'.
IF SY-SUBRC NE 0.
READ TABLE MESSTAB WITH KEY MSGTYP = 'A'.
IF SY-SUBRC EQ 0.
CONCATENATE 'Failed to assign structural authorization to user id:'
P_USER INTO WA_MESSAGES-MESSAGE.
MOVE:
PERNR_TAB-PERNR TO WA_MESSAGES-PERNR,
*
L_MSTRING TO WA_MESSAGES-MESSAGE,
'00' TO WA_MESSAGES-ID,
'001' TO WA_MESSAGES-NUMBER,
'E' TO WA_MESSAGES-TYPE.
APPEND WA_MESSAGES TO IT_MESSAGES.
CLEAR WA_MESSAGES.
*
SER.

WRITE:/ 'Failed to assign structural authorization to user id:', P_U


ELSE.
CONCATENATE 'Successfully assigned structural authorization to user i

d:'

P_USER INTO WA_MESSAGES-MESSAGE.


MOVE:
PERNR_TAB-PERNR TO WA_MESSAGES-PERNR,
L_MSTRING TO WA_MESSAGES-MESSAGE,
'00' TO WA_MESSAGES-ID,
'001' TO WA_MESSAGES-NUMBER,
'S' TO WA_MESSAGES-TYPE.
APPEND WA_MESSAGES TO IT_MESSAGES.
CLEAR WA_MESSAGES.
WRITE:/ 'Successfully assigned structural authorization to user id:'
P_USER.
ENDIF.
ELSE.
CONCATENATE 'Failed to assign structural authorization to user id:'
P_USER INTO WA_MESSAGES-MESSAGE.
MOVE:
PERNR_TAB-PERNR TO WA_MESSAGES-PERNR,
L_MSTRING TO WA_MESSAGES-MESSAGE,
'00' TO WA_MESSAGES-ID,
'001' TO WA_MESSAGES-NUMBER,
'E' TO WA_MESSAGES-TYPE.
APPEND WA_MESSAGES TO IT_MESSAGES.
CLEAR WA_MESSAGES.
WRITE:/ 'Failed to assign structural authorization to user id:', P_USE

*
,

*
R.

ENDIF.
PERFORM WRITE_MESSAGES.
ENDFORM.

" ASSIGN_STRUCTURAL_AUTH

*&---------------------------------------------------------------------*
*&
Form WRITE_MESSAGES
*
*&---------------------------------------------------------------------*
*
This subroutine is to write the messages to list.
*
*----------------------------------------------------------------------*
*
No interface parameters are passed.
*
*----------------------------------------------------------------------*
FORM WRITE_MESSAGES .
DATA:
L_MSTRING(480).
LOOP AT MESSTAB.
CLEAR:
L_MSTRING.
SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA
AND
ARBGB = MESSTAB-MSGID
AND
MSGNR = MESSTAB-MSGNR.
IF SY-SUBRC = 0.
L_MSTRING = T100-TEXT.
IF L_MSTRING CS '&1'.
REPLACE '&1' WITH MESSTAB-MSGV1 INTO L_MSTRING.
REPLACE '&2' WITH MESSTAB-MSGV2 INTO L_MSTRING.
REPLACE '&3' WITH MESSTAB-MSGV3 INTO L_MSTRING.
REPLACE '&4' WITH MESSTAB-MSGV4 INTO L_MSTRING.
ELSE.
REPLACE '&' WITH MESSTAB-MSGV1 INTO L_MSTRING.
REPLACE '&' WITH MESSTAB-MSGV2 INTO L_MSTRING.
REPLACE '&' WITH MESSTAB-MSGV3 INTO L_MSTRING.
REPLACE '&' WITH MESSTAB-MSGV4 INTO L_MSTRING.
ENDIF.
CONDENSE L_MSTRING.
*
WRITE: / L_MSTRING. "MESSTAB-MSGTYP,
MOVE:
PERNR_TAB-PERNR TO WA_MESSAGES-PERNR,
L_MSTRING TO WA_MESSAGES-MESSAGE,
MESSTAB-MSGID TO WA_MESSAGES-ID,
MESSTAB-MSGNR TO WA_MESSAGES-NUMBER,
MESSTAB-MSGTYP TO WA_MESSAGES-TYPE.
APPEND WA_MESSAGES TO IT_MESSAGES.
CLEAR WA_MESSAGES.
ELSE.
*
WRITE: / MESSTAB.
ENDIF.
ENDLOOP.
ENDFORM.
" WRITE_MESSAGES
*&---------------------------------------------------------------------*

*&
Form SET_COMMON_DATA
*
*&---------------------------------------------------------------------*
*
This is common data for ESS/MSS user.
*
*----------------------------------------------------------------------*
*
No interface changes parameters are passed.
*
*----------------------------------------------------------------------*
FORM SET_COMMON_DATA .
* Set logon Data tab data
WA_LOGONDATA-GLTGV = SY-DATUM.
WA_LOGONDATA-GLTGB = W_DATUM.
WA_LOGONDATA-USTYP = 'A'.
WA_LOGONDATA-CLASS = 'ESSUSER'.
WA_LOGONDATA-TZONE = 'EST'.
* Set the password
WA_PASSWORD-BAPIPWD = 'Lion1234'.
* Set the defaults
WA_DEFAULTS-DCPFM
WA_DEFAULTS-DATFM
WA_DEFAULTS-TIMEFM

= 'X'.
= '2'.
= '0'.

* Set the address data


WA_ADDRESS-FIRSTNAME
WA_ADDRESS-LASTNAME

= WA_0002-VORNA.
= WA_0002-NACHN.

* Set licence data


WA_UCLASS-LIC_TYPE = 'CE'.
* Set parameter CVR
IF WA_CVR-ZCVR IS NOT
WA_PARAMETER-PARID
WA_PARAMETER-PARVA
APPEND WA_PARAMETER
CLEAR WA_PARAMETER.
ENDIF.

INITIAL.
= 'CVR'.
= WA_CVR-ZCVR.
TO IT_PARAMETER.

* Set UCN parameter


IF WA_T500P-LAND1 IS NOT INITIAL.
WA_PARAMETER-PARID = 'UCN'.
WA_PARAMETER-PARVA = WA_T500P-LAND1.
APPEND WA_PARAMETER TO IT_PARAMETER.
CLEAR WA_PARAMETER.
ENDIF.
ENDFORM.
" SET_COMMON_DATA
*&---------------------------------------------------------------------*
*&
Form CREATE_SAP_USER_ID
*
*&---------------------------------------------------------------------*
*
This subroutine is used to create the SAP user ID.
*
*----------------------------------------------------------------------*
*
<-->P_SUBRC Return value
*
*----------------------------------------------------------------------*
FORM CREATE_SAP_USER_ID USING
P_SUBRC.

CALL FUNCTION 'BAPI_USER_CREATE1'


EXPORTING
USERNAME = W_USERNAME
LOGONDATA = WA_LOGONDATA
PASSWORD = WA_PASSWORD
DEFAULTS = WA_DEFAULTS
ADDRESS
= WA_ADDRESS
UCLASS
= WA_UCLASS
TABLES
PARAMETER = IT_PARAMETER
RETURN
= IT_RETURN.
.
LOOP AT IT_RETURN INTO WA_RETURN WHERE TYPE EQ 'E' OR
TYPE EQ 'A'.
P_SUBRC = 4.
EXIT.
ENDLOOP.
ENDFORM.
" CREATE_SAP_USER_ID
*&---------------------------------------------------------------------*
*&
Form ASSIGN_ROLES
*
*&---------------------------------------------------------------------*
*
This subroutine is used to assign roles to newly created SAP
*
*----------------------------------------------------------------------*
*
-->P_MSS
Flag for MSS User
*
*
<--P_SUBRC Return value
*
*----------------------------------------------------------------------*
FORM ASSIGN_ROLES USING
P_MSS
P_SUBRC.
* Roles for MSS user
IF P_MSS IS NOT INITIAL.
*
Manager Role
WA_ACTIVITYGROUPS-AGR_NAME = 'ZBC01-0000-MANAGER_CONNECT_C'.
APPEND WA_ACTIVITYGROUPS TO IT_ACTIVITYGROUPS.
CLEAR WA_ACTIVITYGROUPS.
* Begin of ADD SKONDANI
WA_ACTIVITYGROUPS-AGR_NAME = 'ZSAP_FI_TV_TRAVEL_MANAGER'.
APPEND WA_ACTIVITYGROUPS TO IT_ACTIVITYGROUPS.
CLEAR WA_ACTIVITYGROUPS.
*End of ADD SKONDANI
*
Employee role
WA_ACTIVITYGROUPS-AGR_NAME = 'ZBC00-0000-EMPLOYEE_CONNECT_X'.
APPEND WA_ACTIVITYGROUPS TO IT_ACTIVITYGROUPS.
CLEAR WA_ACTIVITYGROUPS.
*

Common Role
WA_ACTIVITYGROUPS-AGR_NAME = 'ZZR:COMMON_ALL_USERS'.
APPEND WA_ACTIVITYGROUPS TO IT_ACTIVITYGROUPS.
CLEAR WA_ACTIVITYGROUPS.

* Begin of ADD SKONDANI


WA_ACTIVITYGROUPS-AGR_NAME = 'ZSAP_FI_TV_TRAVELER'.
APPEND WA_ACTIVITYGROUPS TO IT_ACTIVITYGROUPS.
CLEAR WA_ACTIVITYGROUPS.
*End of ADD SKONDANI
ELSE.
* Roles for ESS user
*
Assign composite role
WA_ACTIVITYGROUPS-AGR_NAME = 'YHD:ESS_USER'.
APPEND WA_ACTIVITYGROUPS TO IT_ACTIVITYGROUPS.
CLEAR WA_ACTIVITYGROUPS.
* Begin of ADD SKONDANI
WA_ACTIVITYGROUPS-AGR_NAME = 'ZSAP_FI_TV_TRAVELER'.
APPEND WA_ACTIVITYGROUPS TO IT_ACTIVITYGROUPS.
CLEAR WA_ACTIVITYGROUPS.
*End of ADD SKONDANI
ENDIF.

CALL FUNCTION 'SUSR_BAPI_USER_ACTGROUPS_ASSIG'


EXPORTING
USERNAME
= W_USERNAME
TABLES
ACTIVITYGROUPS = IT_ACTIVITYGROUPS
RETURN
= IT_RETURN.
LOOP AT IT_RETURN INTO WA_RETURN WHERE TYPE EQ 'E' OR
TYPE EQ 'A'.
P_SUBRC = 4.
EXIT.
ENDLOOP.

ENDFORM.

" ASSIGN_ROLES

*&---------------------------------------------------------------------*
*&
Form DISPLAY_ALV_LIST
*
*&---------------------------------------------------------------------*
*
This subroutine is used to display the ALV list with status of *
*----------------------------------------------------------------------*
*
No interface parameters are passed.
*
*----------------------------------------------------------------------*
FORM DISPLAY_ALV_LIST .
DATA: FIELD_TAB TYPE SLIS_T_FIELDCAT_ALV,
LAYOUT TYPE SLIS_LAYOUT_ALV,
IT_EVENTS TYPE SLIS_T_EVENT,
IT_EVENT_EXIT TYPE SLIS_T_EVENT_EXIT,
WA_IT_EXCLUDING TYPE SLIS_EXTAB,
IT_EXCLUDING TYPE SLIS_T_EXTAB,
IS_VARIANT TYPE DISVARIANT.
DATA: WA_FIELD_TAB TYPE SLIS_FIELDCAT_ALV.

Set lay out of the color row


LAYOUT-INFO_FIELDNAME = 'ROWCOLOR'.

* Create field catalogue.


WA_FIELD_TAB-FIELDNAME = 'PERNR'.
WA_FIELD_TAB-REF_TABNAME = 'PA0001'.
WA_FIELD_TAB-SELTEXT_S = 'Employee ID'.
WA_FIELD_TAB-OUTPUTLEN = '10'.
WA_FIELD_TAB-KEY = 'X'.
WA_FIELD_TAB-KEY_SEL = 'X'.
WA_FIELD_TAB-COL_POS = 1.
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'TYPE'.
WA_FIELD_TAB-REF_TABNAME = 'BAPIRET2'.
WA_FIELD_TAB-SELTEXT_S = 'Msg Type'.
WA_FIELD_TAB-OUTPUTLEN = '8'.
CLEAR WA_FIELD_TAB-KEY.
WA_FIELD_TAB-COL_POS = 2..
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'ID'.
WA_FIELD_TAB-SELTEXT_S = 'Msg ID'.
WA_FIELD_TAB-REF_TABNAME = 'BAPIRET2'.
WA_FIELD_TAB-OUTPUTLEN = '6'.
CLEAR WA_FIELD_TAB-KEY.
WA_FIELD_TAB-COL_POS = 3..
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'NUMBER'.
WA_FIELD_TAB-SELTEXT_S = 'Msg No.'.
WA_FIELD_TAB-REF_TABNAME = 'BAPIRET2'.
WA_FIELD_TAB-OUTPUTLEN = '6'.
CLEAR WA_FIELD_TAB-KEY.
WA_FIELD_TAB-COL_POS = 4.
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'MESSAGE'.
WA_FIELD_TAB-REF_TABNAME = 'BAPIRET2'.
WA_FIELD_TAB-SELTEXT_S = 'Message'.
WA_FIELD_TAB-OUTPUTLEN = '80'.
CLEAR WA_FIELD_TAB-KEY.
WA_FIELD_TAB-COL_POS = 5.
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'ROWCOLOR'.
WA_FIELD_TAB-NO_OUT = 'X'.
* wa_field_tab-ref_tabname = 'BAPIRET2'.

CLEAR WA_FIELD_TAB-KEY.
WA_FIELD_TAB-COL_POS = 5.
APPEND WA_FIELD_TAB TO FIELD_TAB.
CONSTANTS:
FC_UABC(4) VALUE '&ABC'.
"ABC analysis, excluded!
* fcodes
WA_IT_EXCLUDING-FCODE = FC_UABC.
APPEND WA_IT_EXCLUDING TO IT_EXCLUDING.
CONSTANTS: CALLBACK_PROGRAM LIKE SY-REPID VALUE 'ZHRUSER'.
LOOP AT IT_MESSAGES INTO WA_MESSAGES.
IF WA_MESSAGES-TYPE EQ 'E' OR
WA_MESSAGES-TYPE EQ 'A'.
WA_MESSAGES-ROWCOLOR = 'C610'.
ELSE.
WA_MESSAGES-ROWCOLOR = 'C500'.
ENDIF.
MODIFY IT_MESSAGES FROM WA_MESSAGES TRANSPORTING ROWCOLOR.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
*
i_buffer_active
= 'X'
I_CALLBACK_PROGRAM
= CALLBACK_PROGRAM
*
i_structure_name
= ' '
IS_LAYOUT
= LAYOUT
IT_FIELDCAT
= FIELD_TAB
IT_EXCLUDING
= IT_EXCLUDING
*
IT_SPECIAL_GROUPS
=
*
IT_SORT
=
*
IT_FILTER
=
*
IS_SEL_HIDE
=
I_DEFAULT
= 'X'
I_SAVE
= 'A'
IS_VARIANT
= IS_VARIANT
*
it_events
= it_events
*
it_event_exit
= it_event_exit
*
IS_PRINT
=
*
IS_REPREP_ID
=
*
I_SCREEN_START_COLUMN
= 0
*
I_SCREEN_START_LINE
= 0
*
I_SCREEN_END_COLUMN
= 0
*
I_SCREEN_END_LINE
= 0
*
IMPORTING
*
E_EXIT_CAUSED_BY_CALLER =
*
ES_EXIT_CAUSED_BY_USER
=
TABLES
T_OUTTAB
= IT_MESSAGES
EXCEPTIONS
PROGRAM_ERROR
= 1
OTHERS
= 2 .
ENDFORM.
" DISPLAY_ALV_LIST

*&---------------------------------------------------------------------*
*&
Form COLLECT_MESSAGES
*
*&---------------------------------------------------------------------*
*
This subroutine is used to collect the messages from user id & *
*----------------------------------------------------------------------*
*
No interface parameters are passed.
*
*----------------------------------------------------------------------*
FORM COLLECT_MESSAGES .
*

Handle Messages if SAP user id roles are not assigned.


MOVE PERNR_TAB-PERNR TO WA_MESSAGES-PERNR.
LOOP AT IT_RETURN INTO WA_RETURN.
MOVE-CORRESPONDING WA_RETURN TO WA_MESSAGES.
APPEND WA_MESSAGES TO IT_MESSAGES.
ENDLOOP.
REFRESH:
IT_RETURN.
CLEAR:
WA_RETURN,
WA_MESSAGES.
ENDFORM.
" COLLECT_MESSAGES
* End of Add SKONDANI
* Begin of Add SKONDANI
*&---------------------------------------------------------------------*
*&
Form DISPLAY_GRID_LIST
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM DISPLAY_GRID_LIST .
DATA: FIELD_TAB TYPE SLIS_T_FIELDCAT_ALV,
LAYOUT TYPE SLIS_LAYOUT_ALV,
WA_FIELD_TAB TYPE SLIS_FIELDCAT_ALV.
LAYOUT-INFO_FIELDNAME = 'ROWCOLOR'.
WA_FIELD_TAB-FIELDNAME = 'PERNR'.
WA_FIELD_TAB-SELTEXT_L = 'Employee ID'.
WA_FIELD_TAB-SELTEXT_S = 'Employee ID'.
WA_FIELD_TAB-COL_POS = 1.
WA_FIELD_TAB-OUTPUTLEN = '11'.
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'ACCOUNT'.
WA_FIELD_TAB-SELTEXT_S = 'Account'.
WA_FIELD_TAB-OUTPUTLEN = '10'.
WA_FIELD_TAB-COL_POS
= 2.
APPEND WA_FIELD_TAB TO FIELD_TAB.

CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'ROLE_NAME'.
WA_FIELD_TAB-SELTEXT_M = 'Role Assigned'.
WA_FIELD_TAB-SELTEXT_L = 'Role Assigned'.
WA_FIELD_TAB-OUTPUTLEN = '30'.
WA_FIELD_TAB-COL_POS
= 3.
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'IS_MANAGER'.
WA_FIELD_TAB-SELTEXT_S = 'Manager'.
WA_FIELD_TAB-SELTEXT_L = 'Manager'.
WA_FIELD_TAB-SELTEXT_M = 'Manager'.
WA_FIELD_TAB-OUTPUTLEN = '7'.
WA_FIELD_TAB-COL_POS
= 4.
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'SBU'.
WA_FIELD_TAB-SELTEXT_S = 'SBU'.
WA_FIELD_TAB-COL_POS
= 5.
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'CVR'.
WA_FIELD_TAB-SELTEXT_S = 'CVR'.
WA_FIELD_TAB-OUTPUTLEN = '10'.
WA_FIELD_TAB-COL_POS
= 6.
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'UCN'.
WA_FIELD_TAB-SELTEXT_S = 'UCN'.
WA_FIELD_TAB-COL_POS
= 7.
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'TYPE'.
WA_FIELD_TAB-SELTEXT_L = 'Message Type'.
WA_FIELD_TAB-COL_POS
= 8.
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'ID'.
WA_FIELD_TAB-SELTEXT_M = 'Message Class'.
WA_FIELD_TAB-COL_POS
= 9.
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'NUMBER'.
WA_FIELD_TAB-SELTEXT_M = 'Message Number'.
WA_FIELD_TAB-COL_POS
= 10.

APPEND WA_FIELD_TAB TO FIELD_TAB.


CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'MESSAGE'.
WA_FIELD_TAB-SELTEXT_M = 'Message Text'.
WA_FIELD_TAB-COL_POS
= 18.
APPEND WA_FIELD_TAB TO FIELD_TAB.
CLEAR WA_FIELD_TAB.
WA_FIELD_TAB-FIELDNAME = 'ROWCOLOR'.
WA_FIELD_TAB-NO_OUT = 'X'.
CLEAR WA_FIELD_TAB-KEY.
WA_FIELD_TAB-COL_POS = 11.
APPEND WA_FIELD_TAB TO FIELD_TAB.
SORT IT_GRID_LIST BY PERNR ACCOUNT.

*
*
*
*
*
*
*
*
*
*
*
*
*

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
I_INTERFACE_CHECK
= ' '
I_BYPASSING_BUFFER
= ' '
I_BUFFER_ACTIVE
= ' '
I_CALLBACK_PROGRAM
= ' '
I_CALLBACK_PF_STATUS_SET
= ' '
I_CALLBACK_USER_COMMAND
= ' '
I_CALLBACK_TOP_OF_PAGE
= ' '
I_CALLBACK_HTML_TOP_OF_PAGE
= ' '
I_CALLBACK_HTML_END_OF_LIST
= ' '
I_STRUCTURE_NAME
=
I_BACKGROUND_ID
= ' '
I_GRID_TITLE
=
I_GRID_SETTINGS
=
IS_LAYOUT
= LAYOUT
IT_FIELDCAT
= FIELD_TAB
IT_EXCLUDING
=
IT_SPECIAL_GROUPS
=
IT_SORT
=
IT_FILTER
=
IS_SEL_HIDE
=
I_DEFAULT
= 'X'
I_SAVE
= ' '
IS_VARIANT
=
IT_EVENTS
=
IT_EVENT_EXIT
=
IS_PRINT
=
IS_REPREP_ID
=
I_SCREEN_START_COLUMN
= 0
I_SCREEN_START_LINE
= 0
I_SCREEN_END_COLUMN
= 0
I_SCREEN_END_LINE
= 0
I_HTML_HEIGHT_TOP
= 0

*
I_HTML_HEIGHT_END
= 0
*
IT_ALV_GRAPHICS
=
*
IT_HYPERLINK
=
*
IT_ADD_FIELDCAT
=
*
IT_EXCEPT_QINFO
=
*
IR_SALV_FULLSCREEN_ADAPTER
=
* IMPORTING
*
E_EXIT_CAUSED_BY_CALLER
=
*
ES_EXIT_CAUSED_BY_USER
=
TABLES
T_OUTTAB
= IT_GRID_LIST
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.
* End of Add SKONDANI

" DISPLAY_GRID_LIST

You might also like