ABAP Select data from SAP table PIQ_NL_PYMNTDET 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 PIQ_NL_PYMNTDET 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 PIQ_NL_PYMNTDET. 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 PIQ_NL_PYMNTDET 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_PIQ_NL_PYMNTDET TYPE STANDARD TABLE OF PIQ_NL_PYMNTDET, WA_PIQ_NL_PYMNTDET TYPE PIQ_NL_PYMNTDET, 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: <PIQ_NL_PYMNTDET> TYPE PIQ_NL_PYMNTDET. *Process all fields in table header/work area as string values PERFORM process_as_string_field_values CHANGING wa_PIQ_NL_PYMNTDET. SELECT * *restrict ABAP select to first 10 rows UP TO 10 ROWS FROM PIQ_NL_PYMNTDET INTO TABLE IT_PIQ_NL_PYMNTDET. *Select data and declare internal table using in-line method @DATA *SELECT * * FROM PIQ_NL_PYMNTDET * INTO TABLE @DATA(IT_PIQ_NL_PYMNTDET2). *--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_PIQ_NL_PYMNTDET INDEX 1 INTO DATA(WA_PIQ_NL_PYMNTDET2). *Demonstrate how to loop at an internal table and update values using a FIELD-SYMBOL LOOP AT IT_PIQ_NL_PYMNTDET ASSIGNING <PIQ_NL_PYMNTDET>.*To update a field value using a field symbol simply change the value via the field symbol pointer
<PIQ_NL_PYMNTDET>-PLVAR = 1.
<PIQ_NL_PYMNTDET>-ST_OBJID = 1.
<PIQ_NL_PYMNTDET>-CS_OBJID = 1.
<PIQ_NL_PYMNTDET>-SC_OBJID = 1.
<PIQ_NL_PYMNTDET>-BEGDA = 1.
ENDLOOP. LOOP AT IT_PIQ_NL_PYMNTDET INTO WA_PIQ_NL_PYMNTDET. *Write horizonal line to screen report. WRITE:/ sy-uline. *Write selected data to screen/report before conversion. WRITE:/ sy-vline, WA_PIQ_NL_PYMNTDET-ENDDA, sy-vline,
WA_PIQ_NL_PYMNTDET-ISTAT, sy-vline,
WA_PIQ_NL_PYMNTDET-SEQNR, sy-vline,
WA_PIQ_NL_PYMNTDET-CHOICE_NO, sy-vline,
WA_PIQ_NL_PYMNTDET-ADM_AYEAR, sy-vline,
WA_PIQ_NL_PYMNTDET-ADM_PERID, sy-vline.
ENDLOOP. *Add any further fields from structure WA_PIQ_NL_PYMNTDET 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_PIQ_NL_PYMNTDET 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_PIQ_NL_PYMNTDET INTO WA_PIQ_NL_PYMNTDET. *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 ADM_QMNUM CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PIQ_NL_PYMNTDET-ADM_QMNUM IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PIQ_NL_PYMNTDET-ADM_QMNUM.
WRITE:/ 'New Value:', ld_input.
*Conversion exit ALPHA, internal->external for field OPBEL CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = WA_PIQ_NL_PYMNTDET-OPBEL IMPORTING output = ld_input.
WRITE:/ 'Org Value:', WA_PIQ_NL_PYMNTDET-OPBEL.
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_PIQ_NL_PYMNTDET_STR,
PLVAR TYPE STRING,
ST_OBJID TYPE STRING,
CS_OBJID TYPE STRING,
SC_OBJID TYPE STRING,
BEGDA TYPE STRING,
ENDDA TYPE STRING,
ISTAT TYPE STRING,
SEQNR TYPE STRING,
CHOICE_NO TYPE STRING,
ADM_AYEAR TYPE STRING,
ADM_PERID TYPE STRING,
ADM_ACLEVEL TYPE STRING,
ADM_PROGCLASS TYPE STRING,
ADM_PARTT TYPE STRING,
ADM_CATEG TYPE STRING,
ADM_ENRCATEG TYPE STRING,
ADM_CODE TYPE STRING,
ADM_PERCT TYPE STRING,
ADM_QMNUM TYPE STRING,
ADM_STATUS_SUP TYPE STRING,
ADM_DEC TYPE STRING,
ADM_RECPT TYPE STRING,
ADM_WITH_DECL TYPE STRING,
ADM_GUID TYPE STRING,
COKEY TYPE STRING,
PAIDBY TYPE STRING,
PAYMENTTYPE TYPE STRING,
PAYMENTNAME TYPE STRING,
FORMOFPAYBANKDUT TYPE STRING,
FORMOFPAYBANKFOR TYPE STRING,
BANK TYPE STRING,
BANKCOUNTRY TYPE STRING,
INSTALLMENTS TYPE STRING,
PAID TYPE STRING,
AMOUNTFEE TYPE STRING,
PROOFFEEPAID TYPE STRING,
FEE_WAIVER TYPE STRING,
INVOICE TYPE STRING,
DUE_DATE1 TYPE STRING,
NOOFINST TYPE STRING,
ADMINFEE TYPE STRING,
BARCODE TYPE STRING,
ORDERNUM TYPE STRING,
PAIDATBRIN TYPE STRING,
PAIDATINST TYPE STRING,
DOCNR TYPE STRING,
AUTHFEEAMT TYPE STRING,
AUTHSENT TYPE STRING,
AUTHSTACC TYPE STRING,
AUTHWTDRW TYPE STRING,
AUTHSENTDATE TYPE STRING,
AUTHSENTTIME TYPE STRING,
OPBEL TYPE STRING,
PAID_INBRIN TYPE STRING,
BRIN_SEQ TYPE STRING,
PAID_INSTNAME TYPE STRING,
INITAMT TYPE STRING,
VALUTA_INIT TYPE STRING,
INSTAMT TYPE STRING,
VALUTA_INST TYPE STRING,
PRF_INSTATUS TYPE STRING,
RECEIV_BY TYPE STRING,
RECEIPT_DATE TYPE STRING,
INCANCEL_BY TYPE STRING,
INCANCEL_ON TYPE STRING,
TOTAL_AMT TYPE STRING,
VALUTA_TOT TYPE STRING,
INST_BRIN TYPE STRING,
PRF_OUTSTATUS TYPE STRING,
REG_BY TYPE STRING,
REG_DATE TYPE STRING,
OUTCANCEL_BY TYPE STRING,
OUTCANCEL_ON TYPE STRING,
LEGAL_TUTFEE TYPE STRING,
VALUTA_LEGLFEE TYPE STRING,
INST_TUTFEE TYPE STRING,
VALUTA_INSTFEE TYPE STRING,
IBAN TYPE STRING,
MAND_REFID TYPE STRING,
BIC TYPE STRING,
EMANDATE_IND TYPE STRING,END OF T_EKKO_STR. DATA: WA_PIQ_NL_PYMNTDET_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_PIQ_NL_PYMNTDET_STR-PLVAR sy-vline
WA_PIQ_NL_PYMNTDET_STR-ST_OBJID sy-vline
WA_PIQ_NL_PYMNTDET_STR-CS_OBJID sy-vline
WA_PIQ_NL_PYMNTDET_STR-SC_OBJID sy-vline
WA_PIQ_NL_PYMNTDET_STR-BEGDA sy-vline
WA_PIQ_NL_PYMNTDET_STR-ENDDA sy-vline
WA_PIQ_NL_PYMNTDET_STR-ISTAT sy-vline
WA_PIQ_NL_PYMNTDET_STR-SEQNR sy-vline
WA_PIQ_NL_PYMNTDET_STR-CHOICE_NO sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_AYEAR sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_PERID sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_ACLEVEL sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_PROGCLASS sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_PARTT sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_CATEG sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_ENRCATEG sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_CODE sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_PERCT sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_QMNUM sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_STATUS_SUP sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_DEC sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_RECPT sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_WITH_DECL sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADM_GUID sy-vline
WA_PIQ_NL_PYMNTDET_STR-COKEY sy-vline
WA_PIQ_NL_PYMNTDET_STR-PAIDBY sy-vline
WA_PIQ_NL_PYMNTDET_STR-PAYMENTTYPE sy-vline
WA_PIQ_NL_PYMNTDET_STR-PAYMENTNAME sy-vline
WA_PIQ_NL_PYMNTDET_STR-FORMOFPAYBANKDUT sy-vline
WA_PIQ_NL_PYMNTDET_STR-FORMOFPAYBANKFOR sy-vline
WA_PIQ_NL_PYMNTDET_STR-BANK sy-vline
WA_PIQ_NL_PYMNTDET_STR-BANKCOUNTRY sy-vline
WA_PIQ_NL_PYMNTDET_STR-INSTALLMENTS sy-vline
WA_PIQ_NL_PYMNTDET_STR-PAID sy-vline
WA_PIQ_NL_PYMNTDET_STR-AMOUNTFEE sy-vline
WA_PIQ_NL_PYMNTDET_STR-PROOFFEEPAID sy-vline
WA_PIQ_NL_PYMNTDET_STR-FEE_WAIVER sy-vline
WA_PIQ_NL_PYMNTDET_STR-INVOICE sy-vline
WA_PIQ_NL_PYMNTDET_STR-DUE_DATE1 sy-vline
WA_PIQ_NL_PYMNTDET_STR-NOOFINST sy-vline
WA_PIQ_NL_PYMNTDET_STR-ADMINFEE sy-vline
WA_PIQ_NL_PYMNTDET_STR-BARCODE sy-vline
WA_PIQ_NL_PYMNTDET_STR-ORDERNUM sy-vline
WA_PIQ_NL_PYMNTDET_STR-PAIDATBRIN sy-vline
WA_PIQ_NL_PYMNTDET_STR-PAIDATINST sy-vline
WA_PIQ_NL_PYMNTDET_STR-DOCNR sy-vline
WA_PIQ_NL_PYMNTDET_STR-AUTHFEEAMT sy-vline
WA_PIQ_NL_PYMNTDET_STR-AUTHSENT sy-vline
WA_PIQ_NL_PYMNTDET_STR-AUTHSTACC sy-vline
WA_PIQ_NL_PYMNTDET_STR-AUTHWTDRW sy-vline
WA_PIQ_NL_PYMNTDET_STR-AUTHSENTDATE sy-vline
WA_PIQ_NL_PYMNTDET_STR-AUTHSENTTIME sy-vline
WA_PIQ_NL_PYMNTDET_STR-OPBEL sy-vline
WA_PIQ_NL_PYMNTDET_STR-PAID_INBRIN sy-vline
WA_PIQ_NL_PYMNTDET_STR-BRIN_SEQ sy-vline
WA_PIQ_NL_PYMNTDET_STR-PAID_INSTNAME sy-vline
WA_PIQ_NL_PYMNTDET_STR-INITAMT sy-vline
WA_PIQ_NL_PYMNTDET_STR-VALUTA_INIT sy-vline
WA_PIQ_NL_PYMNTDET_STR-INSTAMT sy-vline
WA_PIQ_NL_PYMNTDET_STR-VALUTA_INST sy-vline
WA_PIQ_NL_PYMNTDET_STR-PRF_INSTATUS sy-vline
WA_PIQ_NL_PYMNTDET_STR-RECEIV_BY sy-vline
WA_PIQ_NL_PYMNTDET_STR-RECEIPT_DATE sy-vline
WA_PIQ_NL_PYMNTDET_STR-INCANCEL_BY sy-vline
WA_PIQ_NL_PYMNTDET_STR-INCANCEL_ON sy-vline
WA_PIQ_NL_PYMNTDET_STR-TOTAL_AMT sy-vline
WA_PIQ_NL_PYMNTDET_STR-VALUTA_TOT sy-vline
WA_PIQ_NL_PYMNTDET_STR-INST_BRIN sy-vline
WA_PIQ_NL_PYMNTDET_STR-PRF_OUTSTATUS sy-vline
WA_PIQ_NL_PYMNTDET_STR-REG_BY sy-vline
WA_PIQ_NL_PYMNTDET_STR-REG_DATE sy-vline
WA_PIQ_NL_PYMNTDET_STR-OUTCANCEL_BY sy-vline
WA_PIQ_NL_PYMNTDET_STR-OUTCANCEL_ON sy-vline
WA_PIQ_NL_PYMNTDET_STR-LEGAL_TUTFEE sy-vline
WA_PIQ_NL_PYMNTDET_STR-VALUTA_LEGLFEE sy-vline
WA_PIQ_NL_PYMNTDET_STR-INST_TUTFEE sy-vline
WA_PIQ_NL_PYMNTDET_STR-VALUTA_INSTFEE sy-vline
WA_PIQ_NL_PYMNTDET_STR-IBAN sy-vline
WA_PIQ_NL_PYMNTDET_STR-MAND_REFID sy-vline
WA_PIQ_NL_PYMNTDET_STR-BIC sy-vline
WA_PIQ_NL_PYMNTDET_STR-EMANDATE_IND sy-vline INTO ld_text SEPARATED BY SPACE. *Add any further fields from structure WA_EKKO_STR you want to CONCATENATE... ENDLOOP. ENDFORM.