correct all performance problem without changing any functionality
REPORT z_assignment_01.
DATA: gt_user TYPE TABLE OF usr02 WITH HEADER LINE,
gt_user_role TYPE TABLE OF agr_users WITH HEADER LINE,
********** DO NOT CHANGE THIS SECTION **********
g_begintime TYPE i,
g_endtime TYPE i,
g_tottime TYPE i.
DATA: BEGIN OF gt_output OCCURS 0,
bname LIKE usr02-bname,
name_text LIKE adrp-name_text,
agr_name LIKE agr_users-agr_name,
text LIKE agr_texts-text,
role_count TYPE i,
END OF gt_output.
TYPE-POOLS: slis.
START-OF-SELECTION.
GET RUN TIME FIELD g_begintime.
********** END NO CHANGE **********
SELECT * INTO TABLE gt_user FROM usr02
WHERE class > 'E'.
SELECT * INTO TABLE gt_user_role FROM agr_users
FOR ALL ENTRIES IN gt_user
WHERE uname = gt_user-bname.
PERFORM combine_tables.
PERFORM get_addl_data.
********** DO NOT CHANGE THIS SECTION **********
GET RUN TIME FIELD g_endtime.
g_tottime = ( g_endtime / 1000000 ) - ( g_begintime / 1000000 ).
MESSAGE s398(00) WITH g_tottime.
PERFORM output.
********** END NO CHANGE **********
*&---------------------------------------------------------------------*
*& Form combine_tables
*&---------------------------------------------------------------------*
* Combine user and role tables
*----------------------------------------------------------------------*
FORM combine_tables.
DATA: ls_usr21 TYPE usr21,
ls_adrp TYPE adrp,
ls_texts TYPE agr_texts.
LOOP AT gt_user.
* Get user name
SELECT * INTO ls_usr21 FROM usr21 WHERE bname = gt_user-bname.
SELECT * INTO ls_adrp FROM adrp
WHERE persnumber = ls_usr21-persnumber.
gt_output-name_text = ls_adrp-name_text.
ENDSELECT.
ENDSELECT.
LOOP AT gt_user_role WHERE uname = gt_user-bname.
* Only process roles that are currently active
CHECK gt_user_role-from_dat <= sy-datum
AND gt_user_role-to_dat >= sy-datum.
* Get role text
SELECT * INTO ls_texts FROM agr_texts
WHERE agr_name = gt_output-agr_name
AND spras = sy-langu
AND line = 0.
gt_output-text = ls_texts-text.
ENDSELECT.
gt_output-bname = gt_user-bname.
gt_output-agr_name = gt_user_role-agr_name.
APPEND gt_output.
ENDLOOP.
ENDLOOP.
ENDFORM. " combine_tables
*&---------------------------------------------------------------------*
*& Form get_addl_data
*&---------------------------------------------------------------------*
* Get extra fields
*----------------------------------------------------------------------*
FORM get_addl_data.
DATA: l_count TYPE i.
* Count number of roles per user
SORT gt_user_role BY uname.
LOOP AT gt_user_role.
ADD 1 TO l_count.
AT END OF uname.
LOOP AT gt_output WHERE bname = gt_user_role-uname.
gt_output-role_count = l_count.
MODIFY gt_output.
CLEAR l_count.
ENDLOOP.
ENDAT.
ENDLOOP.
ENDFORM. " get_addl_data
*&---------------------------------------------------------------------*
*& Form output
*&---------------------------------------------------------------------*
* Output report
*----------------------------------------------------------------------*
FORM output.
DATA: lt_fieldcat TYPE slis_t_fieldcat_alv,
ls_fieldcat TYPE slis_fieldcat_alv,
l_repid LIKE sy-repid,
ls_layout TYPE slis_layout_alv,
ls_variant TYPE disvariant.
l_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = l_repid
i_internal_tabname = 'GT_OUTPUT'
i_inclname = l_repid
CHANGING
ct_fieldcat = lt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ls_fieldcat-seltext_l = 'Role Count'.
ls_fieldcat-seltext_m = 'Role Count'.
ls_fieldcat-seltext_s = 'Role Count'.
ls_fieldcat-reptext_ddic = 'Role Count'.
MODIFY lt_fieldcat FROM ls_fieldcat
TRANSPORTING
seltext_l
seltext_m
seltext_s
reptext_ddic
WHERE
fieldname = 'ROLE_COUNT'.
ls_layout-zebra = 'X'.
ls_layout-colwidth_optimize = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
is_layout = ls_layout
it_fieldcat = lt_fieldcat
i_save = 'A'
is_variant = ls_variant
TABLES
t_outtab = gt_output
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. " output
Explain what are the events used in interactive reports?
What is BDC programming?
how many structures are in sap R/3(ABAP)
which is a statement used to write a record to a file in ABAP?
Explain what is sap script?
What is an Unpack command?
there is size categery(0,1,2,3)if i need more space after giving the size 0.what i have to do now?
Do you know how to create secondary index?
What is the testing tool in ale........
Did u create the script or u have only modified?how did u modified Medruck?did u came across any errors while modifying?after adding the logo wer did u store that?
What is the diff b/w load of program and Initailazatio Events? Which event triggers each time we exectute the program?
Did you create secondary index?