ABAP Select data from SAP table GRFN_S_RP_ATTR into internal table

Get Example source ABAP code based on a different SAP table
  

Below is a number of ABAP code snippets to demonstrate how to select data from SAP GRFN_S_RP_ATTR table and store it within an internal table, including using the newer @DATA inline declaration methods. It also shows you various ways to process this data using ABAP work area, inline declaration or field symbols including executing all the relevant CONVERSION_EXIT routines specific to GRFN_S_RP_ATTR. See here for more generic Select statement tips.

Sometimes data within SAP is stored within the database table in a different format to what it is displayed to the user. These input/output conversation FM routines are what translates the data between the two formats.

There is also a full declaration of the GRFN_S_RP_ATTR table where each field has a char/string type for you to simply copy and paste. This allows you to use processing that is only available to these field types such as the CONCATENATE statement.

DATA: IT_GRFN_S_RP_ATTR TYPE STANDARD TABLE OF GRFN_S_RP_ATTR,
      WA_GRFN_S_RP_ATTR TYPE GRFN_S_RP_ATTR,
      GD_STR TYPE STRING.

DATA: lo_typedescr type REF TO cl_abap_typedescr.
DATA: lv_fieldname type fieldname.

FIELD-SYMBOLS: <FIELD> TYPE any.
FIELD-SYMBOLS: <GRFN_S_RP_ATTR> TYPE GRFN_S_RP_ATTR.

*Process all fields in table header/work area as string values
  PERFORM process_as_string_field_values CHANGING wa_GRFN_S_RP_ATTR.

SELECT *
*restrict ABAP select to first 10 rows
 UP TO 10 ROWS      
  FROM GRFN_S_RP_ATTR
  INTO TABLE IT_GRFN_S_RP_ATTR.

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM GRFN_S_RP_ATTR
*  INTO TABLE @DATA(IT_GRFN_S_RP_ATTR2).
*--Further methods of using ABAP code to  select data from SAP database tables

*You can also declare the header/work area using the in-line DATA declaration method
READ TABLE IT_GRFN_S_RP_ATTR INDEX 1 INTO DATA(WA_GRFN_S_RP_ATTR2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_GRFN_S_RP_ATTR ASSIGNING <GRFN_S_RP_ATTR>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<GRFN_S_RP_ATTR>-RP = 1.
<GRFN_S_RP_ATTR>-RP_COMMENT = 1.
<GRFN_S_RP_ATTR>-RP_STEPS = 1.
<GRFN_S_RP_ATTR>-RP_DESC = 1.
<GRFN_S_RP_ATTR>-RP_T = 1.
ENDLOOP.

LOOP AT IT_GRFN_S_RP_ATTR INTO WA_GRFN_S_RP_ATTR.
*Write horizonal line to screen report.
  WRITE:/ sy-uline.

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_GRFN_S_RP_ATTR-RP_CREATED_BY, sy-vline,
WA_GRFN_S_RP_ATTR-RP_CREATE_TIME, sy-vline,
WA_GRFN_S_RP_ATTR-RP_CHANGED_BY, sy-vline,
WA_GRFN_S_RP_ATTR-RP_CHANGE_TIME, sy-vline,
WA_GRFN_S_RP_ATTR-RP_RESP_USER, sy-vline,
WA_GRFN_S_RP_ATTR-RP_PROCESSOR, sy-vline.
ENDLOOP. *Add any further fields from structure WA_GRFN_S_RP_ATTR you want to display... WRITE:/ sy-uline. * Aternatively use generic code to Write field values (and NAME) to screen report DO. ASSIGN COMPONENT sy-index OF STRUCTURE wa_GRFN_S_RP_ATTR TO <field>. IF sy-subrc <> 0. EXIT. ENDIF. WRITE:/ 'Field Value', <field>, sy-vline. gd_str = <field> . lo_typedescr ?= CL_ABAP_DATADESCR=>DESCRIBE_BY_DATA( <field> ). lv_fieldname = lo_typedescr->GET_RELATIVE_NAME( ). WRITE:/ 'Field Name', lv_fieldname. ENDDO. *Redo loop but convert all fields from internal to out value LOOP AT IT_GRFN_S_RP_ATTR INTO WA_GRFN_S_RP_ATTR. *Write horizonal line to screen report. WRITE:/ sy-uline. *Convert all fields to display/output versions using conversion routines PERFORM convert_all_field_values CHANGING wa_EKKO. ENDLOOP. *&---------------------------------------------------------------------* *& Form convert_all_field_values *&---------------------------------------------------------------------* FORM convert_all_field_values CHANGING p_EKKO LIKE wa_EKKO. DATA: ld_input(1000) TYPE c, ld_output(1000) TYPE C.

*Conversion exit TSTPS, internal->external for field RP_CREATE_TIME CALL FUNCTION 'CONVERSION_EXIT_TSTPS_OUTPUT' EXPORTING input = WA_GRFN_S_RP_ATTR-RP_CREATE_TIME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_GRFN_S_RP_ATTR-RP_CREATE_TIME.
WRITE:/ 'New Value:', ld_input.

*Conversion exit TSTPS, internal->external for field RP_CHANGE_TIME CALL FUNCTION 'CONVERSION_EXIT_TSTPS_OUTPUT' EXPORTING input = WA_GRFN_S_RP_ATTR-RP_CHANGE_TIME IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_GRFN_S_RP_ATTR-RP_CHANGE_TIME.
WRITE:/ 'New Value:', ld_input.

*Conversion exit SXIDN, internal->external for field E_MAIL CALL FUNCTION 'CONVERSION_EXIT_SXIDN_OUTPUT' EXPORTING input = WA_GRFN_S_RP_ATTR-E_MAIL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_GRFN_S_RP_ATTR-E_MAIL.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ISOLA, internal->external for field LANGUAGE CALL FUNCTION 'CONVERSION_EXIT_ISOLA_OUTPUT' EXPORTING input = WA_GRFN_S_RP_ATTR-LANGUAGE IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_GRFN_S_RP_ATTR-LANGUAGE.
WRITE:/ 'New Value:', ld_input.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_GRFN_S_RP_ATTR_STR,
RP TYPE STRING,
RP_COMMENT TYPE STRING,
RP_STEPS TYPE STRING,
RP_DESC TYPE STRING,
RP_T TYPE STRING,
RP_CREATED_BY TYPE STRING,
RP_CREATE_TIME TYPE STRING,
RP_CHANGED_BY TYPE STRING,
RP_CHANGE_TIME TYPE STRING,
RP_RESP_USER TYPE STRING,
RP_PROCESSOR TYPE STRING,
RP_STATUS TYPE STRING,
RP_DATE_BEGIN TYPE STRING,
RP_DATE_END TYPE STRING,
RP_RESP_TYPE TYPE STRING,
RP_DUE_DATE TYPE STRING,
RP_COMP_DATE TYPE STRING,
RP_RESP_COUNT TYPE STRING,
RP_RESP_COST TYPE STRING,
RP_CURRENCY TYPE STRING,
RP_RESP_EFECT TYPE STRING,
RP_RESP_COMPL TYPE STRING,
RP_EFFEC_FROM TYPE STRING,
RP_EFFECTIVE_TO TYPE STRING,
RP_WF_PROCESSOR TYPE STRING,
RP_PURPOSE TYPE STRING,
RP_RESP_SHARING TYPE STRING,
RP_RESP_ENT_TYPE TYPE STRING,
RP_CONTROL TYPE STRING,
RP_DISTR_METHOD TYPE STRING,
RP_AUTOMATION TYPE STRING,
RP_AUT_STATUS TYPE STRING,
RP_AUT_MSG TYPE STRING,
RP_STATUS_T TYPE STRING,
RP_RESP_USER_T TYPE STRING,
RP_PROCESSOR_T TYPE STRING,
RP_PURPOSE_T TYPE STRING,
RP_RESP_TYPE_T TYPE STRING,
RP_CREATED_BY_T TYPE STRING,
RP_CHANGED_BY_T TYPE STRING,
RP_WF_PROCESSOR_T TYPE STRING,
RP_RESP_SHARING_T TYPE STRING,
RP_DISTR_METHOD_T TYPE STRING,
RP_AUTOMATION_T TYPE STRING,
RISKID TYPE STRING,
RULESETID TYPE STRING,
DESCN TYPE STRING,
ACTION TYPE STRING,
ACTIONDESC TYPE STRING,
ACTRULEID TYPE STRING,
BZPRCID TYPE STRING,
RESOURCEEXTN TYPE STRING,
FSTAT TYPE STRING,
FUNCTID TYPE STRING,
RESOURCEID TYPE STRING,
RISKLEVEL TYPE STRING,
RISKTYPE TYPE STRING,
STATUS TYPE STRING,
DETAIL_DESCN TYPE STRING,
BPDESCN TYPE STRING,
RISKOWNEREXTN TYPE STRING,
RISKOWNER TYPE STRING,
ACTIVE TYPE STRING,
FROMVAL TYPE STRING,
TOVAL TYPE STRING,
SEARCHTYPE TYPE STRING,
CONTROL_OBJ TYPE STRING,
REPTYPE TYPE STRING,
CUSTOMGROUP TYPE STRING,
ORGRULEID TYPE STRING,
MANAGERID TYPE STRING,
USERTYPE TYPE STRING,
ROLEID TYPE STRING,
PROFILE TYPE STRING,
ROLE_TYPE TYPE STRING,
OBJECTID TYPE STRING,
OBJECTTYPE TYPE STRING,
ORG_LEVEL TYPE STRING,
ORGVALUE TYPE STRING,
ACCONTROLID TYPE STRING,
ORGUNITID TYPE STRING,
DESCR TYPE STRING,
MNG_APPR TYPE STRING,
MONITOR TYPE STRING,
FULLNAME TYPE STRING,
E_MAIL TYPE STRING,
FREQUENCY TYPE STRING,
ACTIONDATE TYPE STRING,
ACTIONBY TYPE STRING,
ROLE_NAME TYPE STRING,
USEDFLAG TYPE STRING,
USERID TYPE STRING,
USERGROUP TYPE STRING,
PROFILEDESCN TYPE STRING,
ROLEDESCN TYPE STRING,
ACTIONTYPE TYPE STRING,
VALIDFROM TYPE STRING,
VALIDTO TYPE STRING,
CONNECTOR TYPE STRING,
PNAME TYPE STRING,
IPNAME TYPE STRING,
LINENUM TYPE STRING,
ROLE_STATUS TYPE STRING,
BSUBPROC TYPE STRING,
CONN_TYPE TYPE STRING,
PRJREL TYPE STRING,
FUNC_AREA TYPE STRING,
ROLEOWNER TYPE STRING,
ROLEAPPROVER TYPE STRING,
ORGVALUEFROM TYPE STRING,
ORGVALUETO TYPE STRING,
CURRENT_STEP TYPE STRING,
CRITLVL TYPE STRING,
PHASE TYPE STRING,
DERIVED_ROLE TYPE STRING,
DERIVED_ROLE_DESC TYPE STRING,
ROLECLASS TYPE STRING,
DISCREPANCY TYPE STRING,
CONNECTOR_GRP TYPE STRING,
EXPDROL TYPE STRING,
EXPIROL TYPE STRING,
DDASROL TYPE STRING,
EXPDATE TYPE STRING,
RSTATUS TYPE STRING,
EXPIREDROLE TYPE STRING,
EXPIRINGROLE TYPE STRING,
ASSIGNEDROLE TYPE STRING,
MAXHITS TYPE STRING,
SOURCETYPE TYPE STRING,
TARGETTYPE TYPE STRING,
SOURCEVALUE TYPE STRING,
TARGETVALUE TYPE STRING,
COMPROLE TYPE STRING,
CHANGEDOC TYPE STRING,
OLD_VALUE TYPE STRING,
NEW_VALUE TYPE STRING,
LANGUAGE TYPE STRING,
TCODE TYPE STRING,
CMPACTION TYPE STRING,
SINGLEROLE TYPE STRING,
GEN_DATE TYPE STRING,
GEN_BY TYPE STRING,
GEN_DATETIME TYPE STRING,
AUTH_COUNT TYPE STRING,
ACTION_TYPE TYPE STRING,
STARTDT TYPE STRING,
STARTIM TYPE STRING,
ENDDT TYPE STRING,
ENDTIM TYPE STRING,
CHANGEBY TYPE STRING,
CONNGRP_DESCN TYPE STRING,
RLTYPE_DESCN TYPE STRING,
CHILD_ROLE_NAME TYPE STRING,
CHILD_ROLE_DESCN TYPE STRING,
CONNECTOR_DESCN TYPE STRING,
BSUBPROC_DESCN TYPE STRING,
CRITLVL_DESCN TYPE STRING,
OWNER TYPE STRING,
APPRVR TYPE STRING,
APPROVER TYPE STRING,
ALT_APPROVER TYPE STRING,
OBJECTTYPEDESCN TYPE STRING,
ALT_APP_NAME TYPE STRING,
APPLICATION_TYPE TYPE STRING,
STATUSDESCN TYPE STRING,
RISKDESC TYPE STRING,
ASSOC_RLNAME TYPE STRING,
CERTIFY_PERIOD TYPE STRING,
CAN_BE_FF TYPE STRING,
CERTIFY_DUE TYPE STRING,
CERTIFY_DATE TYPE STRING,
REAFF_DUE TYPE STRING,
REAFF_BY TYPE STRING,
REAFF_PERIOD TYPE STRING,
SENSITIVITY TYPE STRING,
COMPANY TYPE STRING,
AGR_NAME TYPE STRING,
GEN_DAT TYPE STRING,
GEN_TIME TYPE STRING,
BNAME TYPE STRING,
REASON TYPE STRING,
USERROLEFLAG TYPE STRING,
CONNECTORID TYPE STRING,END OF T_EKKO_STR. DATA: WA_GRFN_S_RP_ATTR_STR type T_EKKO_STR. DATA: ld_text TYPE string. LOOP AT IT_EKKO INTO WA_EKKO. MOVE-CORRESPONDING wa_EKKO TO WA_EKKO_STR. CONCATENATE: sy-vline
WA_GRFN_S_RP_ATTR_STR-RP sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_COMMENT sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_STEPS sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_DESC sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_T sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_CREATED_BY sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_CREATE_TIME sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_CHANGED_BY sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_CHANGE_TIME sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_RESP_USER sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_PROCESSOR sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_STATUS sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_DATE_BEGIN sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_DATE_END sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_RESP_TYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_DUE_DATE sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_COMP_DATE sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_RESP_COUNT sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_RESP_COST sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_CURRENCY sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_RESP_EFECT sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_RESP_COMPL sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_EFFEC_FROM sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_EFFECTIVE_TO sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_WF_PROCESSOR sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_PURPOSE sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_RESP_SHARING sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_RESP_ENT_TYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_CONTROL sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_DISTR_METHOD sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_AUTOMATION sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_AUT_STATUS sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_AUT_MSG sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_STATUS_T sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_RESP_USER_T sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_PROCESSOR_T sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_PURPOSE_T sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_RESP_TYPE_T sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_CREATED_BY_T sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_CHANGED_BY_T sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_WF_PROCESSOR_T sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_RESP_SHARING_T sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_DISTR_METHOD_T sy-vline
WA_GRFN_S_RP_ATTR_STR-RP_AUTOMATION_T sy-vline
WA_GRFN_S_RP_ATTR_STR-RISKID sy-vline
WA_GRFN_S_RP_ATTR_STR-RULESETID sy-vline
WA_GRFN_S_RP_ATTR_STR-DESCN sy-vline
WA_GRFN_S_RP_ATTR_STR-ACTION sy-vline
WA_GRFN_S_RP_ATTR_STR-ACTIONDESC sy-vline
WA_GRFN_S_RP_ATTR_STR-ACTRULEID sy-vline
WA_GRFN_S_RP_ATTR_STR-BZPRCID sy-vline
WA_GRFN_S_RP_ATTR_STR-RESOURCEEXTN sy-vline
WA_GRFN_S_RP_ATTR_STR-FSTAT sy-vline
WA_GRFN_S_RP_ATTR_STR-FUNCTID sy-vline
WA_GRFN_S_RP_ATTR_STR-RESOURCEID sy-vline
WA_GRFN_S_RP_ATTR_STR-RISKLEVEL sy-vline
WA_GRFN_S_RP_ATTR_STR-RISKTYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-STATUS sy-vline
WA_GRFN_S_RP_ATTR_STR-DETAIL_DESCN sy-vline
WA_GRFN_S_RP_ATTR_STR-BPDESCN sy-vline
WA_GRFN_S_RP_ATTR_STR-RISKOWNEREXTN sy-vline
WA_GRFN_S_RP_ATTR_STR-RISKOWNER sy-vline
WA_GRFN_S_RP_ATTR_STR-ACTIVE sy-vline
WA_GRFN_S_RP_ATTR_STR-FROMVAL sy-vline
WA_GRFN_S_RP_ATTR_STR-TOVAL sy-vline
WA_GRFN_S_RP_ATTR_STR-SEARCHTYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-CONTROL_OBJ sy-vline
WA_GRFN_S_RP_ATTR_STR-REPTYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-CUSTOMGROUP sy-vline
WA_GRFN_S_RP_ATTR_STR-ORGRULEID sy-vline
WA_GRFN_S_RP_ATTR_STR-MANAGERID sy-vline
WA_GRFN_S_RP_ATTR_STR-USERTYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-ROLEID sy-vline
WA_GRFN_S_RP_ATTR_STR-PROFILE sy-vline
WA_GRFN_S_RP_ATTR_STR-ROLE_TYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-OBJECTID sy-vline
WA_GRFN_S_RP_ATTR_STR-OBJECTTYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-ORG_LEVEL sy-vline
WA_GRFN_S_RP_ATTR_STR-ORGVALUE sy-vline
WA_GRFN_S_RP_ATTR_STR-ACCONTROLID sy-vline
WA_GRFN_S_RP_ATTR_STR-ORGUNITID sy-vline
WA_GRFN_S_RP_ATTR_STR-DESCR sy-vline
WA_GRFN_S_RP_ATTR_STR-MNG_APPR sy-vline
WA_GRFN_S_RP_ATTR_STR-MONITOR sy-vline
WA_GRFN_S_RP_ATTR_STR-FULLNAME sy-vline
WA_GRFN_S_RP_ATTR_STR-E_MAIL sy-vline
WA_GRFN_S_RP_ATTR_STR-FREQUENCY sy-vline
WA_GRFN_S_RP_ATTR_STR-ACTIONDATE sy-vline
WA_GRFN_S_RP_ATTR_STR-ACTIONBY sy-vline
WA_GRFN_S_RP_ATTR_STR-ROLE_NAME sy-vline
WA_GRFN_S_RP_ATTR_STR-USEDFLAG sy-vline
WA_GRFN_S_RP_ATTR_STR-USERID sy-vline
WA_GRFN_S_RP_ATTR_STR-USERGROUP sy-vline
WA_GRFN_S_RP_ATTR_STR-PROFILEDESCN sy-vline
WA_GRFN_S_RP_ATTR_STR-ROLEDESCN sy-vline
WA_GRFN_S_RP_ATTR_STR-ACTIONTYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-VALIDFROM sy-vline
WA_GRFN_S_RP_ATTR_STR-VALIDTO sy-vline
WA_GRFN_S_RP_ATTR_STR-CONNECTOR sy-vline
WA_GRFN_S_RP_ATTR_STR-PNAME sy-vline
WA_GRFN_S_RP_ATTR_STR-IPNAME sy-vline
WA_GRFN_S_RP_ATTR_STR-LINENUM sy-vline
WA_GRFN_S_RP_ATTR_STR-ROLE_STATUS sy-vline
WA_GRFN_S_RP_ATTR_STR-BSUBPROC sy-vline
WA_GRFN_S_RP_ATTR_STR-CONN_TYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-PRJREL sy-vline
WA_GRFN_S_RP_ATTR_STR-FUNC_AREA sy-vline
WA_GRFN_S_RP_ATTR_STR-ROLEOWNER sy-vline
WA_GRFN_S_RP_ATTR_STR-ROLEAPPROVER sy-vline
WA_GRFN_S_RP_ATTR_STR-ORGVALUEFROM sy-vline
WA_GRFN_S_RP_ATTR_STR-ORGVALUETO sy-vline
WA_GRFN_S_RP_ATTR_STR-CURRENT_STEP sy-vline
WA_GRFN_S_RP_ATTR_STR-CRITLVL sy-vline
WA_GRFN_S_RP_ATTR_STR-PHASE sy-vline
WA_GRFN_S_RP_ATTR_STR-DERIVED_ROLE sy-vline
WA_GRFN_S_RP_ATTR_STR-DERIVED_ROLE_DESC sy-vline
WA_GRFN_S_RP_ATTR_STR-ROLECLASS sy-vline
WA_GRFN_S_RP_ATTR_STR-DISCREPANCY sy-vline
WA_GRFN_S_RP_ATTR_STR-CONNECTOR_GRP sy-vline
WA_GRFN_S_RP_ATTR_STR-EXPDROL sy-vline
WA_GRFN_S_RP_ATTR_STR-EXPIROL sy-vline
WA_GRFN_S_RP_ATTR_STR-DDASROL sy-vline
WA_GRFN_S_RP_ATTR_STR-EXPDATE sy-vline
WA_GRFN_S_RP_ATTR_STR-RSTATUS sy-vline
WA_GRFN_S_RP_ATTR_STR-EXPIREDROLE sy-vline
WA_GRFN_S_RP_ATTR_STR-EXPIRINGROLE sy-vline
WA_GRFN_S_RP_ATTR_STR-ASSIGNEDROLE sy-vline
WA_GRFN_S_RP_ATTR_STR-MAXHITS sy-vline
WA_GRFN_S_RP_ATTR_STR-SOURCETYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-TARGETTYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-SOURCEVALUE sy-vline
WA_GRFN_S_RP_ATTR_STR-TARGETVALUE sy-vline
WA_GRFN_S_RP_ATTR_STR-COMPROLE sy-vline
WA_GRFN_S_RP_ATTR_STR-CHANGEDOC sy-vline
WA_GRFN_S_RP_ATTR_STR-OLD_VALUE sy-vline
WA_GRFN_S_RP_ATTR_STR-NEW_VALUE sy-vline
WA_GRFN_S_RP_ATTR_STR-LANGUAGE sy-vline
WA_GRFN_S_RP_ATTR_STR-TCODE sy-vline
WA_GRFN_S_RP_ATTR_STR-CMPACTION sy-vline
WA_GRFN_S_RP_ATTR_STR-SINGLEROLE sy-vline
WA_GRFN_S_RP_ATTR_STR-GEN_DATE sy-vline
WA_GRFN_S_RP_ATTR_STR-GEN_BY sy-vline
WA_GRFN_S_RP_ATTR_STR-GEN_DATETIME sy-vline
WA_GRFN_S_RP_ATTR_STR-AUTH_COUNT sy-vline
WA_GRFN_S_RP_ATTR_STR-ACTION_TYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-STARTDT sy-vline
WA_GRFN_S_RP_ATTR_STR-STARTIM sy-vline
WA_GRFN_S_RP_ATTR_STR-ENDDT sy-vline
WA_GRFN_S_RP_ATTR_STR-ENDTIM sy-vline
WA_GRFN_S_RP_ATTR_STR-CHANGEBY sy-vline
WA_GRFN_S_RP_ATTR_STR-CONNGRP_DESCN sy-vline
WA_GRFN_S_RP_ATTR_STR-RLTYPE_DESCN sy-vline
WA_GRFN_S_RP_ATTR_STR-CHILD_ROLE_NAME sy-vline
WA_GRFN_S_RP_ATTR_STR-CHILD_ROLE_DESCN sy-vline
WA_GRFN_S_RP_ATTR_STR-CONNECTOR_DESCN sy-vline
WA_GRFN_S_RP_ATTR_STR-BSUBPROC_DESCN sy-vline
WA_GRFN_S_RP_ATTR_STR-CRITLVL_DESCN sy-vline
WA_GRFN_S_RP_ATTR_STR-OWNER sy-vline
WA_GRFN_S_RP_ATTR_STR-APPRVR sy-vline
WA_GRFN_S_RP_ATTR_STR-APPROVER sy-vline
WA_GRFN_S_RP_ATTR_STR-ALT_APPROVER sy-vline
WA_GRFN_S_RP_ATTR_STR-OBJECTTYPEDESCN sy-vline
WA_GRFN_S_RP_ATTR_STR-ALT_APP_NAME sy-vline
WA_GRFN_S_RP_ATTR_STR-APPLICATION_TYPE sy-vline
WA_GRFN_S_RP_ATTR_STR-STATUSDESCN sy-vline
WA_GRFN_S_RP_ATTR_STR-RISKDESC sy-vline
WA_GRFN_S_RP_ATTR_STR-ASSOC_RLNAME sy-vline
WA_GRFN_S_RP_ATTR_STR-CERTIFY_PERIOD sy-vline
WA_GRFN_S_RP_ATTR_STR-CAN_BE_FF sy-vline
WA_GRFN_S_RP_ATTR_STR-CERTIFY_DUE sy-vline
WA_GRFN_S_RP_ATTR_STR-CERTIFY_DATE sy-vline
WA_GRFN_S_RP_ATTR_STR-REAFF_DUE sy-vline
WA_GRFN_S_RP_ATTR_STR-REAFF_BY sy-vline
WA_GRFN_S_RP_ATTR_STR-REAFF_PERIOD sy-vline
WA_GRFN_S_RP_ATTR_STR-SENSITIVITY sy-vline
WA_GRFN_S_RP_ATTR_STR-COMPANY sy-vline
WA_GRFN_S_RP_ATTR_STR-AGR_NAME sy-vline
WA_GRFN_S_RP_ATTR_STR-GEN_DAT sy-vline
WA_GRFN_S_RP_ATTR_STR-GEN_TIME sy-vline
WA_GRFN_S_RP_ATTR_STR-BNAME sy-vline
WA_GRFN_S_RP_ATTR_STR-REASON sy-vline
WA_GRFN_S_RP_ATTR_STR-USERROLEFLAG sy-vline
WA_GRFN_S_RP_ATTR_STR-CONNECTORID sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.