How do you retrieve the data for repetitive structures
Answer Posted / amit
TABLES:PERNR.
INFOTYPES: 0008.
DATA: BEGIN OF WAGETYPES,
LGA type P0008-LGA01,
BET type p0008-BET01,
ANZ type p0008-ANZ01.
data:END OF WAGETYPES.
write:/ 'PersonalNo','Wage type ' , ' ' ,
'Amount' , ' ' , 'Number'.
START-OF-SELECTION.
GET PERNR.
RP_PROVIDE_FROM_LAST P0008 SPACE PN-BEGDA PN-ENDDA.
DO 12 TIMES
VARYING WAGETYPES-lga FROM P0008-LGA01
NEXT P0008-LGA02
VARYING WAGETYPES-bet FROM P0008-BET01
NEXT P0008-BET02
VARYING WAGETYPES-anz FROM P0008-ANZ01
NEXT P0008-ANZ02 .
IF WAGETYPES-LGA IS INITIAL.
EXIT.
ELSE.
WRITE: / pernr-pernr , ' ' , WAGETYPES-LGA , WAGETYPES-
bet , WAGETYPES-anz.
ENDIF.
ENDDO.
END-OF-SELECTION.
| Is This Answer Correct ? | 1 Yes | 0 No |
Post New Answer View All Answers
hi to all abap interview guys please notify this .. first if u have any doubts please go through google search or else please do debugging with some sample programs . but don't post even silly questions too. thanking you.
What is alv programming in abap? When is this grid used in abap? : abap hr
Name the abap/4 modularization techniques? : abap modularization
Explain how to write a bdc - how do you go about it?
What is the purpose of creating symbolic a/c, what is transaction code for same? Can we assign one symbolic a/c to multiple wage types? : sap abap hr
How do you activate a function exit?
Explain what is an rdbms?
Which transaction code is used executing a report (type 1 program)? : abap data dictionary
How can an internal table with header line and one without header line bedistinguished when passed to a subroutine?
In which particular scenario we use sorted table and which particular scenario we use standard table?
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
What are the uses of secondary indexes?
Difference between /N and /BEND?
Explain the differences between sap memory and abap memory?
Describe data classes? : abap hr