ABAP Select data from SAP table P0294 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 P0294 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 P0294. 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 P0294 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_P0294 TYPE STANDARD TABLE OF P0294,
      WA_P0294 TYPE P0294,
      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: <P0294> TYPE P0294.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM P0294
*  INTO TABLE @DATA(IT_P02942).
*--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_P0294 INDEX 1 INTO DATA(WA_P02942).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_P0294 ASSIGNING <P0294>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<P0294>-PERNR = 1.
<P0294>-INFTY = 1.
<P0294>-SUBTY = 1.
<P0294>-OBJPS = 1.
<P0294>-SPRPS = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_P0294-ENDDA, sy-vline,
WA_P0294-BEGDA, sy-vline,
WA_P0294-SEQNR, sy-vline,
WA_P0294-AEDTM, sy-vline,
WA_P0294-UNAME, sy-vline,
WA_P0294-HISTO, sy-vline.
ENDLOOP. *Add any further fields from structure WA_P0294 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_P0294 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_P0294 INTO WA_P0294. *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.
ENDFORM. *&---------------------------------------------------------------------* *& Form process_as_string_field_values *&---------------------------------------------------------------------* FORM process_as_string_field_values CHANGING p_EKKO LIKE wa_EKKO. TYPES: BEGIN OF T_P0294_STR,
PERNR TYPE STRING,
INFTY TYPE STRING,
SUBTY TYPE STRING,
OBJPS TYPE STRING,
SPRPS TYPE STRING,
ENDDA TYPE STRING,
BEGDA TYPE STRING,
SEQNR TYPE STRING,
AEDTM TYPE STRING,
UNAME TYPE STRING,
HISTO TYPE STRING,
ITXEX TYPE STRING,
REFEX TYPE STRING,
ORDEX TYPE STRING,
ITBLD TYPE STRING,
PREAS TYPE STRING,
FLAG1 TYPE STRING,
FLAG2 TYPE STRING,
FLAG3 TYPE STRING,
FLAG4 TYPE STRING,
RESE1 TYPE STRING,
RESE2 TYPE STRING,
GRPVL TYPE STRING,
NUMBR TYPE STRING,
ACTCA TYPE STRING,
ARBGB TYPE STRING,
ORT01 TYPE STRING,
LAND1 TYPE STRING,
BRANC TYPE STRING,
DEPRT TYPE STRING,
POSIT TYPE STRING,
ORDNU TYPE STRING,
ORDDT TYPE STRING,
ORDBA TYPE STRING,
ORUNU TYPE STRING,
ORUDT TYPE STRING,
ORUBA TYPE STRING,
CHECK TYPE STRING,
TLS01 TYPE STRING,
DUY01 TYPE STRING,
DUM01 TYPE STRING,
DUD01 TYPE STRING,
DUH01 TYPE STRING,
TLS02 TYPE STRING,
DUY02 TYPE STRING,
DUM02 TYPE STRING,
DUD02 TYPE STRING,
DUH02 TYPE STRING,
TLS03 TYPE STRING,
DUY03 TYPE STRING,
DUM03 TYPE STRING,
DUD03 TYPE STRING,
DUH03 TYPE STRING,
TLS04 TYPE STRING,
DUY04 TYPE STRING,
DUM04 TYPE STRING,
DUD04 TYPE STRING,
DUH04 TYPE STRING,
TLS05 TYPE STRING,
DUY05 TYPE STRING,
DUM05 TYPE STRING,
DUD05 TYPE STRING,
DUH05 TYPE STRING,
TLS06 TYPE STRING,
DUY06 TYPE STRING,
DUM06 TYPE STRING,
DUD06 TYPE STRING,
DUH06 TYPE STRING,
TLS07 TYPE STRING,
DUY07 TYPE STRING,
DUM07 TYPE STRING,
DUD07 TYPE STRING,
DUH07 TYPE STRING,
TLS08 TYPE STRING,
DUY08 TYPE STRING,
DUM08 TYPE STRING,
DUD08 TYPE STRING,
DUH08 TYPE STRING,
TLS09 TYPE STRING,
DUY09 TYPE STRING,
DUM09 TYPE STRING,
DUD09 TYPE STRING,
DUH09 TYPE STRING,
TLS10 TYPE STRING,
DUY10 TYPE STRING,
DUM10 TYPE STRING,
DUD10 TYPE STRING,
DUH10 TYPE STRING,
TLS11 TYPE STRING,
DUY11 TYPE STRING,
DUM11 TYPE STRING,
DUD11 TYPE STRING,
DUH11 TYPE STRING,
TLS12 TYPE STRING,
DUY12 TYPE STRING,
DUM12 TYPE STRING,
DUD12 TYPE STRING,
DUH12 TYPE STRING,
TLS13 TYPE STRING,
DUY13 TYPE STRING,
DUM13 TYPE STRING,
DUD13 TYPE STRING,
DUH13 TYPE STRING,
TLS14 TYPE STRING,
DUY14 TYPE STRING,
DUM14 TYPE STRING,
DUD14 TYPE STRING,
DUH14 TYPE STRING,
TLS15 TYPE STRING,
DUY15 TYPE STRING,
DUM15 TYPE STRING,
DUD15 TYPE STRING,
DUH15 TYPE STRING,
TLS16 TYPE STRING,
DUY16 TYPE STRING,
DUM16 TYPE STRING,
DUD16 TYPE STRING,
DUH16 TYPE STRING,
TLS17 TYPE STRING,
DUY17 TYPE STRING,
DUM17 TYPE STRING,
DUD17 TYPE STRING,
DUH17 TYPE STRING,
TLS18 TYPE STRING,
DUY18 TYPE STRING,
DUM18 TYPE STRING,
DUD18 TYPE STRING,
DUH18 TYPE STRING,
TLS19 TYPE STRING,
DUY19 TYPE STRING,
DUM19 TYPE STRING,
DUD19 TYPE STRING,
DUH19 TYPE STRING,
TLS20 TYPE STRING,
DUY20 TYPE STRING,
DUM20 TYPE STRING,
DUD20 TYPE STRING,
DUH20 TYPE STRING,
INWRN TYPE STRING,
ORDN2 TYPE STRING,
ORDD2 TYPE STRING,
EVENT_TYPE TYPE STRING,
POSITION_CODE TYPE STRING,
SUBSTDOC_TYPE TYPE STRING,
SUBSTDOC_SERIES TYPE STRING,
RECORD_ID TYPE STRING,
FILE_ID TYPE STRING,
SUBMISSION_DATE TYPE STRING,
RECALL_DATE TYPE STRING,
RECALL_REASON TYPE STRING,
RECALL_FILE_ID TYPE STRING,
RECALL_SUBM_DATE TYPE STRING,
NOT_MAIN TYPE STRING,
SUBSTDOC_BASIS_KEY TYPE STRING,
OKZ_CODE TYPE STRING,
WORK_COND TYPE STRING,
EVENT_DATE TYPE STRING,
SUBSTDOC_TYPE_2 TYPE STRING,
SUBSTDOC_SERIES_2 TYPE STRING,END OF T_EKKO_STR. DATA: WA_P0294_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_P0294_STR-PERNR sy-vline
WA_P0294_STR-INFTY sy-vline
WA_P0294_STR-SUBTY sy-vline
WA_P0294_STR-OBJPS sy-vline
WA_P0294_STR-SPRPS sy-vline
WA_P0294_STR-ENDDA sy-vline
WA_P0294_STR-BEGDA sy-vline
WA_P0294_STR-SEQNR sy-vline
WA_P0294_STR-AEDTM sy-vline
WA_P0294_STR-UNAME sy-vline
WA_P0294_STR-HISTO sy-vline
WA_P0294_STR-ITXEX sy-vline
WA_P0294_STR-REFEX sy-vline
WA_P0294_STR-ORDEX sy-vline
WA_P0294_STR-ITBLD sy-vline
WA_P0294_STR-PREAS sy-vline
WA_P0294_STR-FLAG1 sy-vline
WA_P0294_STR-FLAG2 sy-vline
WA_P0294_STR-FLAG3 sy-vline
WA_P0294_STR-FLAG4 sy-vline
WA_P0294_STR-RESE1 sy-vline
WA_P0294_STR-RESE2 sy-vline
WA_P0294_STR-GRPVL sy-vline
WA_P0294_STR-NUMBR sy-vline
WA_P0294_STR-ACTCA sy-vline
WA_P0294_STR-ARBGB sy-vline
WA_P0294_STR-ORT01 sy-vline
WA_P0294_STR-LAND1 sy-vline
WA_P0294_STR-BRANC sy-vline
WA_P0294_STR-DEPRT sy-vline
WA_P0294_STR-POSIT sy-vline
WA_P0294_STR-ORDNU sy-vline
WA_P0294_STR-ORDDT sy-vline
WA_P0294_STR-ORDBA sy-vline
WA_P0294_STR-ORUNU sy-vline
WA_P0294_STR-ORUDT sy-vline
WA_P0294_STR-ORUBA sy-vline
WA_P0294_STR-CHECK sy-vline
WA_P0294_STR-TLS01 sy-vline
WA_P0294_STR-DUY01 sy-vline
WA_P0294_STR-DUM01 sy-vline
WA_P0294_STR-DUD01 sy-vline
WA_P0294_STR-DUH01 sy-vline
WA_P0294_STR-TLS02 sy-vline
WA_P0294_STR-DUY02 sy-vline
WA_P0294_STR-DUM02 sy-vline
WA_P0294_STR-DUD02 sy-vline
WA_P0294_STR-DUH02 sy-vline
WA_P0294_STR-TLS03 sy-vline
WA_P0294_STR-DUY03 sy-vline
WA_P0294_STR-DUM03 sy-vline
WA_P0294_STR-DUD03 sy-vline
WA_P0294_STR-DUH03 sy-vline
WA_P0294_STR-TLS04 sy-vline
WA_P0294_STR-DUY04 sy-vline
WA_P0294_STR-DUM04 sy-vline
WA_P0294_STR-DUD04 sy-vline
WA_P0294_STR-DUH04 sy-vline
WA_P0294_STR-TLS05 sy-vline
WA_P0294_STR-DUY05 sy-vline
WA_P0294_STR-DUM05 sy-vline
WA_P0294_STR-DUD05 sy-vline
WA_P0294_STR-DUH05 sy-vline
WA_P0294_STR-TLS06 sy-vline
WA_P0294_STR-DUY06 sy-vline
WA_P0294_STR-DUM06 sy-vline
WA_P0294_STR-DUD06 sy-vline
WA_P0294_STR-DUH06 sy-vline
WA_P0294_STR-TLS07 sy-vline
WA_P0294_STR-DUY07 sy-vline
WA_P0294_STR-DUM07 sy-vline
WA_P0294_STR-DUD07 sy-vline
WA_P0294_STR-DUH07 sy-vline
WA_P0294_STR-TLS08 sy-vline
WA_P0294_STR-DUY08 sy-vline
WA_P0294_STR-DUM08 sy-vline
WA_P0294_STR-DUD08 sy-vline
WA_P0294_STR-DUH08 sy-vline
WA_P0294_STR-TLS09 sy-vline
WA_P0294_STR-DUY09 sy-vline
WA_P0294_STR-DUM09 sy-vline
WA_P0294_STR-DUD09 sy-vline
WA_P0294_STR-DUH09 sy-vline
WA_P0294_STR-TLS10 sy-vline
WA_P0294_STR-DUY10 sy-vline
WA_P0294_STR-DUM10 sy-vline
WA_P0294_STR-DUD10 sy-vline
WA_P0294_STR-DUH10 sy-vline
WA_P0294_STR-TLS11 sy-vline
WA_P0294_STR-DUY11 sy-vline
WA_P0294_STR-DUM11 sy-vline
WA_P0294_STR-DUD11 sy-vline
WA_P0294_STR-DUH11 sy-vline
WA_P0294_STR-TLS12 sy-vline
WA_P0294_STR-DUY12 sy-vline
WA_P0294_STR-DUM12 sy-vline
WA_P0294_STR-DUD12 sy-vline
WA_P0294_STR-DUH12 sy-vline
WA_P0294_STR-TLS13 sy-vline
WA_P0294_STR-DUY13 sy-vline
WA_P0294_STR-DUM13 sy-vline
WA_P0294_STR-DUD13 sy-vline
WA_P0294_STR-DUH13 sy-vline
WA_P0294_STR-TLS14 sy-vline
WA_P0294_STR-DUY14 sy-vline
WA_P0294_STR-DUM14 sy-vline
WA_P0294_STR-DUD14 sy-vline
WA_P0294_STR-DUH14 sy-vline
WA_P0294_STR-TLS15 sy-vline
WA_P0294_STR-DUY15 sy-vline
WA_P0294_STR-DUM15 sy-vline
WA_P0294_STR-DUD15 sy-vline
WA_P0294_STR-DUH15 sy-vline
WA_P0294_STR-TLS16 sy-vline
WA_P0294_STR-DUY16 sy-vline
WA_P0294_STR-DUM16 sy-vline
WA_P0294_STR-DUD16 sy-vline
WA_P0294_STR-DUH16 sy-vline
WA_P0294_STR-TLS17 sy-vline
WA_P0294_STR-DUY17 sy-vline
WA_P0294_STR-DUM17 sy-vline
WA_P0294_STR-DUD17 sy-vline
WA_P0294_STR-DUH17 sy-vline
WA_P0294_STR-TLS18 sy-vline
WA_P0294_STR-DUY18 sy-vline
WA_P0294_STR-DUM18 sy-vline
WA_P0294_STR-DUD18 sy-vline
WA_P0294_STR-DUH18 sy-vline
WA_P0294_STR-TLS19 sy-vline
WA_P0294_STR-DUY19 sy-vline
WA_P0294_STR-DUM19 sy-vline
WA_P0294_STR-DUD19 sy-vline
WA_P0294_STR-DUH19 sy-vline
WA_P0294_STR-TLS20 sy-vline
WA_P0294_STR-DUY20 sy-vline
WA_P0294_STR-DUM20 sy-vline
WA_P0294_STR-DUD20 sy-vline
WA_P0294_STR-DUH20 sy-vline
WA_P0294_STR-INWRN sy-vline
WA_P0294_STR-ORDN2 sy-vline
WA_P0294_STR-ORDD2 sy-vline
WA_P0294_STR-EVENT_TYPE sy-vline
WA_P0294_STR-POSITION_CODE sy-vline
WA_P0294_STR-SUBSTDOC_TYPE sy-vline
WA_P0294_STR-SUBSTDOC_SERIES sy-vline
WA_P0294_STR-RECORD_ID sy-vline
WA_P0294_STR-FILE_ID sy-vline
WA_P0294_STR-SUBMISSION_DATE sy-vline
WA_P0294_STR-RECALL_DATE sy-vline
WA_P0294_STR-RECALL_REASON sy-vline
WA_P0294_STR-RECALL_FILE_ID sy-vline
WA_P0294_STR-RECALL_SUBM_DATE sy-vline
WA_P0294_STR-NOT_MAIN sy-vline
WA_P0294_STR-SUBSTDOC_BASIS_KEY sy-vline
WA_P0294_STR-OKZ_CODE sy-vline
WA_P0294_STR-WORK_COND sy-vline
WA_P0294_STR-EVENT_DATE sy-vline
WA_P0294_STR-SUBSTDOC_TYPE_2 sy-vline
WA_P0294_STR-SUBSTDOC_SERIES_2 sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.