ABAP Select data from SAP table PMNGSEPA 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 PMNGSEPA 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 PMNGSEPA. 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 PMNGSEPA 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_PMNGSEPA TYPE STANDARD TABLE OF PMNGSEPA,
      WA_PMNGSEPA TYPE PMNGSEPA,
      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: <PMNGSEPA> TYPE PMNGSEPA.

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

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

*Select data and declare internal table using in-line method @DATA
*SELECT *
*  FROM PMNGSEPA
*  INTO TABLE @DATA(IT_PMNGSEPA2).
*--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_PMNGSEPA INDEX 1 INTO DATA(WA_PMNGSEPA2).


*Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL
LOOP AT IT_PMNGSEPA ASSIGNING <PMNGSEPA>.
*To update a field value using a field symbol simply change the value via the field symbol pointer
<PMNGSEPA>-MANDT = 1.
<PMNGSEPA>-SEPAMANDATEUUID = 1.
<PMNGSEPA>-SEPAMANDATEAPPLICATION = 1.
<PMNGSEPA>-SEPAMANDATE = 1.
<PMNGSEPA>-VALIDITYSTARTDATE = 1.
ENDLOOP.

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

*Write selected data to screen/report before conversion.
  WRITE:/ sy-vline,   WA_PMNGSEPA-VALIDITYENDDATE, sy-vline,
WA_PMNGSEPA-SEPAMANDATECREATIONDATE, sy-vline,
WA_PMNGSEPA-SEPAMANDATEISLOCKED, sy-vline,
WA_PMNGSEPA-SEPAMANDATECREATEDBYUSER, sy-vline,
WA_PMNGSEPA-CREATEDBYUSERDESCRIPTION, sy-vline,
WA_PMNGSEPA-SEPAMANDATESTATUS, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PMNGSEPA 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_PMNGSEPA 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_PMNGSEPA INTO WA_PMNGSEPA. *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 ALPHA, internal->external for field CUSTOMER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PMNGSEPA-CUSTOMER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PMNGSEPA-CUSTOMER.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field ACCOUNTINGDOCUMENT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PMNGSEPA-ACCOUNTINGDOCUMENT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PMNGSEPA-ACCOUNTINGDOCUMENT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit GJAHR, internal->external for field FISCALYEAR CALL FUNCTION 'CONVERSION_EXIT_GJAHR_OUTPUT' EXPORTING input = WA_PMNGSEPA-FISCALYEAR IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PMNGSEPA-FISCALYEAR.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field BUSINESSPARTNER CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PMNGSEPA-BUSINESSPARTNER IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PMNGSEPA-BUSINESSPARTNER.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field CACONTRACT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PMNGSEPA-CACONTRACT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PMNGSEPA-CACONTRACT.
WRITE:/ 'New Value:', ld_input.

*Conversion exit ALPHA, internal->external for field CONTRACTACCOUNT CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PMNGSEPA-CONTRACTACCOUNT IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PMNGSEPA-CONTRACTACCOUNT.
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_PMNGSEPA_STR,
MANDT TYPE STRING,
SEPAMANDATEUUID TYPE STRING,
SEPAMANDATEAPPLICATION TYPE STRING,
SEPAMANDATE TYPE STRING,
VALIDITYSTARTDATE TYPE STRING,
VALIDITYENDDATE TYPE STRING,
SEPAMANDATECREATIONDATE TYPE STRING,
SEPAMANDATEISLOCKED TYPE STRING,
SEPAMANDATECREATEDBYUSER TYPE STRING,
CREATEDBYUSERDESCRIPTION TYPE STRING,
SEPAMANDATESTATUS TYPE STRING,
SEPAMANDATESTATUSNAME TYPE STRING,
SEPAMANDATEREFERENCETYPE TYPE STRING,
SEPAMANDATEREFERENCETYPENAME TYPE STRING,
SEPAMANDATEREFERENCE TYPE STRING,
SEPAMANDATEREFERENCEDESC TYPE STRING,
SEPAMANDATESENDERTYPE TYPE STRING,
SEPAMANDATESENDERTYPENAME TYPE STRING,
SEPAMANDATESENDER TYPE STRING,
SEPAMANDATERECIPIENTTYPE TYPE STRING,
SEPAMANDATERECIPIENTTYPENAME TYPE STRING,
SEPAMANDATERECIPIENT TYPE STRING,
MAXIMUMNUMBEROFHITS TYPE STRING,
PAYINGCOMPANYCODE TYPE STRING,
SENDERTYPE TYPE STRING,
CUSTOMER TYPE STRING,
SEPAMANDATECONTRACTTYPE TYPE STRING,
SEPAMANDATECONTRACT TYPE STRING,
COMPANYCODE TYPE STRING,
ACCOUNTINGDOCUMENT TYPE STRING,
FISCALYEAR TYPE STRING,
BUSINESSPARTNER TYPE STRING,
CASTANDARDCOMPANYCODE TYPE STRING,
CACONTRACT TYPE STRING,
CONTRACTACCOUNT TYPE STRING,
CAMASSRUNDATE TYPE STRING,
CAMASSRUNID TYPE STRING,
SEPAPAYMENTTYPE TYPE STRING,
SEPAPAYMENTTYPENAME TYPE STRING,
SEPAMANDATEFIRSTUSEOBJTYPECODE TYPE STRING,
SEPAMANDATEFIRSTUSEOBJTYPETEXT TYPE STRING,
SEPAMANDATEFIRSTUSEPAYMENTDOC TYPE STRING,
SEPAMANDATELASTUSEOBJTYPECODE TYPE STRING,
SEPAMANDATELASTUSEOBJTYPETEXT TYPE STRING,
SEPAMANDATECREDITOR TYPE STRING,
SEPAMANDATESENDERIBAN TYPE STRING,
SEPAMANDATESENDERBANKSWIFTCODE TYPE STRING,
SEPAMANDATEFIRSTUSEPAYMENTRUN TYPE STRING,
SEPAMANDATELASTUSEDATE TYPE STRING,
SEPAMANDATEFIRSTUSEDATE TYPE STRING,
SEPAMANDATEVERSION TYPE STRING,
SEPAMANDATEISB2BMANDATE TYPE STRING,
ORIGINALSEPAMANDATECREDITOR TYPE STRING,
ORIGINALSEPAMANDATE TYPE STRING,
SEPAMANDATELASTUSEPAYMENTDOC TYPE STRING,
SEPAMANDATEALTERNATIVEPAYER TYPE STRING,
SEPASIGNATURECITYNAME TYPE STRING,
SEPASIGNATUREDATE TYPE STRING,
SEPAMANDATECHANGEREASON TYPE STRING,
SEPAMANDATESTATUSCHANGEREASON TYPE STRING,
SEPAMANDATESTSCHANGEREASONNAME TYPE STRING,
SEPAMANDATELOCKSTARTDATE TYPE STRING,
SEPAMANDATELOCKENDDATE TYPE STRING,
SEPAMANDATEALTERNATIVEPYENAME TYPE STRING,
SEPAMANDATEALTERNATIVEPAYEE TYPE STRING,
SEPAMANDATEORGANIZATIONALUNIT1 TYPE STRING,
SEPAMANDATEORGANIZATIONALUNIT2 TYPE STRING,
SEPAMANDATEORGANIZATIONALUNIT3 TYPE STRING,
SEPAMANDATEORGANIZATIONALUNIT4 TYPE STRING,
ORIGLSEPAMANDATECREATEDBYUSER TYPE STRING,
ORIGLCREATEDBYUSERDESCRIPTION TYPE STRING,
ORIGLSEPAMANDATECREATIONDATE TYPE STRING,
SEPAMANDATEALTERNATIVEPYRNAME TYPE STRING,
SEPAMANDATESENDEREXTERNALID TYPE STRING,
SENDERLASTNAME TYPE STRING,
SENDERFIRSTNAME TYPE STRING,
SENDERSTREETNAME TYPE STRING,
SENDERHOUSENUMBER TYPE STRING,
SENDERPOSTALCODE TYPE STRING,
SENDERCITYNAME TYPE STRING,
SENDERCOUNTRY TYPE STRING,
RECIPIENTNAME1 TYPE STRING,
RECIPIENTNAME2 TYPE STRING,
RECIPIENTSTREETNAME TYPE STRING,
RECIPIENTHOUSENUMBER TYPE STRING,
RECIPIENTPOSTALCODE TYPE STRING,
RECIPIENTCITYNAME TYPE STRING,
RECIPIENTCOUNTRY TYPE STRING,END OF T_EKKO_STR. DATA: WA_PMNGSEPA_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_PMNGSEPA_STR-MANDT sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEUUID sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEAPPLICATION sy-vline
WA_PMNGSEPA_STR-SEPAMANDATE sy-vline
WA_PMNGSEPA_STR-VALIDITYSTARTDATE sy-vline
WA_PMNGSEPA_STR-VALIDITYENDDATE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATECREATIONDATE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEISLOCKED sy-vline
WA_PMNGSEPA_STR-SEPAMANDATECREATEDBYUSER sy-vline
WA_PMNGSEPA_STR-CREATEDBYUSERDESCRIPTION sy-vline
WA_PMNGSEPA_STR-SEPAMANDATESTATUS sy-vline
WA_PMNGSEPA_STR-SEPAMANDATESTATUSNAME sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEREFERENCETYPE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEREFERENCETYPENAME sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEREFERENCE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEREFERENCEDESC sy-vline
WA_PMNGSEPA_STR-SEPAMANDATESENDERTYPE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATESENDERTYPENAME sy-vline
WA_PMNGSEPA_STR-SEPAMANDATESENDER sy-vline
WA_PMNGSEPA_STR-SEPAMANDATERECIPIENTTYPE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATERECIPIENTTYPENAME sy-vline
WA_PMNGSEPA_STR-SEPAMANDATERECIPIENT sy-vline
WA_PMNGSEPA_STR-MAXIMUMNUMBEROFHITS sy-vline
WA_PMNGSEPA_STR-PAYINGCOMPANYCODE sy-vline
WA_PMNGSEPA_STR-SENDERTYPE sy-vline
WA_PMNGSEPA_STR-CUSTOMER sy-vline
WA_PMNGSEPA_STR-SEPAMANDATECONTRACTTYPE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATECONTRACT sy-vline
WA_PMNGSEPA_STR-COMPANYCODE sy-vline
WA_PMNGSEPA_STR-ACCOUNTINGDOCUMENT sy-vline
WA_PMNGSEPA_STR-FISCALYEAR sy-vline
WA_PMNGSEPA_STR-BUSINESSPARTNER sy-vline
WA_PMNGSEPA_STR-CASTANDARDCOMPANYCODE sy-vline
WA_PMNGSEPA_STR-CACONTRACT sy-vline
WA_PMNGSEPA_STR-CONTRACTACCOUNT sy-vline
WA_PMNGSEPA_STR-CAMASSRUNDATE sy-vline
WA_PMNGSEPA_STR-CAMASSRUNID sy-vline
WA_PMNGSEPA_STR-SEPAPAYMENTTYPE sy-vline
WA_PMNGSEPA_STR-SEPAPAYMENTTYPENAME sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEFIRSTUSEOBJTYPECODE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEFIRSTUSEOBJTYPETEXT sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEFIRSTUSEPAYMENTDOC sy-vline
WA_PMNGSEPA_STR-SEPAMANDATELASTUSEOBJTYPECODE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATELASTUSEOBJTYPETEXT sy-vline
WA_PMNGSEPA_STR-SEPAMANDATECREDITOR sy-vline
WA_PMNGSEPA_STR-SEPAMANDATESENDERIBAN sy-vline
WA_PMNGSEPA_STR-SEPAMANDATESENDERBANKSWIFTCODE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEFIRSTUSEPAYMENTRUN sy-vline
WA_PMNGSEPA_STR-SEPAMANDATELASTUSEDATE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEFIRSTUSEDATE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEVERSION sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEISB2BMANDATE sy-vline
WA_PMNGSEPA_STR-ORIGINALSEPAMANDATECREDITOR sy-vline
WA_PMNGSEPA_STR-ORIGINALSEPAMANDATE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATELASTUSEPAYMENTDOC sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEALTERNATIVEPAYER sy-vline
WA_PMNGSEPA_STR-SEPASIGNATURECITYNAME sy-vline
WA_PMNGSEPA_STR-SEPASIGNATUREDATE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATECHANGEREASON sy-vline
WA_PMNGSEPA_STR-SEPAMANDATESTATUSCHANGEREASON sy-vline
WA_PMNGSEPA_STR-SEPAMANDATESTSCHANGEREASONNAME sy-vline
WA_PMNGSEPA_STR-SEPAMANDATELOCKSTARTDATE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATELOCKENDDATE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEALTERNATIVEPYENAME sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEALTERNATIVEPAYEE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEORGANIZATIONALUNIT1 sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEORGANIZATIONALUNIT2 sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEORGANIZATIONALUNIT3 sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEORGANIZATIONALUNIT4 sy-vline
WA_PMNGSEPA_STR-ORIGLSEPAMANDATECREATEDBYUSER sy-vline
WA_PMNGSEPA_STR-ORIGLCREATEDBYUSERDESCRIPTION sy-vline
WA_PMNGSEPA_STR-ORIGLSEPAMANDATECREATIONDATE sy-vline
WA_PMNGSEPA_STR-SEPAMANDATEALTERNATIVEPYRNAME sy-vline
WA_PMNGSEPA_STR-SEPAMANDATESENDEREXTERNALID sy-vline
WA_PMNGSEPA_STR-SENDERLASTNAME sy-vline
WA_PMNGSEPA_STR-SENDERFIRSTNAME sy-vline
WA_PMNGSEPA_STR-SENDERSTREETNAME sy-vline
WA_PMNGSEPA_STR-SENDERHOUSENUMBER sy-vline
WA_PMNGSEPA_STR-SENDERPOSTALCODE sy-vline
WA_PMNGSEPA_STR-SENDERCITYNAME sy-vline
WA_PMNGSEPA_STR-SENDERCOUNTRY sy-vline
WA_PMNGSEPA_STR-RECIPIENTNAME1 sy-vline
WA_PMNGSEPA_STR-RECIPIENTNAME2 sy-vline
WA_PMNGSEPA_STR-RECIPIENTSTREETNAME sy-vline
WA_PMNGSEPA_STR-RECIPIENTHOUSENUMBER sy-vline
WA_PMNGSEPA_STR-RECIPIENTPOSTALCODE sy-vline
WA_PMNGSEPA_STR-RECIPIENTCITYNAME sy-vline
WA_PMNGSEPA_STR-RECIPIENTCOUNTRY sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.