Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Retrieving Data Using Program- ABAP Query

Former Member
0 Likes
1,608

Can anyone provide me with the sample code that should go when retrieving data using a program in an ABAP Query.

here is the format for the same

Report <report name>.

Tables: <list of dictionary structures to be used>.

Parameters: <name of parameters>.

Select-options: <name of select options>.

Data: < all internal tables>.

*<query head> This comment should always be after data declarations.

Beginning of a loop to retrieve each record and place it in the field string tab.

Select, do-enddo, loop, etc.

<code to format the data>.

*<query body> This comment should always be the last statement in the loop.

At this stage the data will come into the field string.

Endselect, enddo, endloop

_________________________________

Thank you

Krishna

2 REPLIES 2
Read only

Former Member
0 Likes
662

Hi,

You have two possibilities to make an ABAP Query.

1. tcode: sq01

but first u have to define the user group and attach it to query

2. write a nornal ABAP Report in the format u stated.

see example

REPORT ZOLAS_ALLETESTING MESSAGE-ID 38 NO STANDARD PAGE HEADING LINE-SIZE 200.

*Tabelle strukture

TABLES:CDHDR,

CDPOS,

VBAK,

VBAP,

MARC,

T024D,

TVKO.

*Eingabe Parameters als Select-options

SELECT-OPTIONS: P_VKORG FOR VBAK-VKORG OBLIGATORY,

P_VETWEG FOR VBAK-VTWEG OBLIGATORY,

  • P_WERKS FOR VBAP-WERKS OBLIGATORY,

P_DATUM FOR CDHDR-UDATE OBLIGATORY.

*Alternativ zu Ranges << neu Method zu Empfehlen >>

DATA: BEGIN OF RAVKORG OCCURS 0,

SIGN LIKE P_VKORG,

LOW LIKE P_VKORG,

HIGH LIKE P_VKORG,

OPTION LIKE P_VKORG,

END OF RAVKORG.

WRITE TEXT-001.

*Layout der interne Tabelle für die Bearbeitung von Tabellen CDHDR und CDPOS

TYPES: BEGIN OF ITAB_1,

T_OBJECTCLAS LIKE CDHDR-OBJECTCLAS,

T_UDATE LIKE CDHDR-UDATE,

T_OBJECTID LIKE CDPOS-OBJECTID,

T_CHANGENR LIKE CDPOS-CHANGENR,

T_FNAME LIKE CDPOS-FNAME,

T_TABKEY LIKE CDPOS-TABKEY,

END OF ITAB_1,

*Layout der interne Tabelle für die Ausgabeliste definieren

BEGIN OF AUSGABE,

T_UDATE LIKE CDHDR-UDATE,

T_KUNNR LIKE VBAK-KUNNR,

T_PSTYV LIKE VBAP-PSTYV,

T_VBELN LIKE VBAP-VBELN,

T_POSNR LIKE VBAP-POSNR,

T_MATNR LIKE VBAP-MATNR,

T_DSNAM LIKE T024D-DSNAM, "Disponentenname

T_DISPO LIKE MARC-DISPO, "Disponent

T_DISMM LIKE MARC-DISMM, "Dispomerkmal

T_ARKTX LIKE VBAP-ARKTX,

T_KWMENG LIKE VBAP-KWMENG,

T_NETWR LIKE VBAP-NETWR,

T_WAERK LIKE VBAP-WAERK,

END OF AUSGABE.

*interne Tabellen

DATA: IT_1 TYPE ITAB_1 OCCURS 0 WITH HEADER LINE,

IT_AUSGABE TYPE AUSGABE OCCURS 0 WITH HEADER LINE,

*Hilf Variable

HILF LIKE CDPOS-TABKEY,

MERKE_VBELN LIKE VBAP-VBELN,

MERKE_POSNR LIKE VBAP-POSNR.

**heading

TOP-OF-PAGE.

FORMAT COLOR 1 INTENSIFIED OFF.

WRITE:/'*******************************************************************************************************************************************************************************************************',

/25 'DATUM: ', SY-DATUM, 60 'HFT: A B G E S A G T E A U F T R A G S P O S I T I O N E N (REPORTNAME: ZVABGESAGTEPOS)',

/'*******************************************************************************************************************************************************************************************************'.

SKIP 2.

ULINE.

**Selection----

-


START-OF-SELECTION.

CLEAR: RAVKORG,

HILF,

MERKE_VBELN,

MERKE_POSNR.

  • REFRESH: RAVKORG.

LOOP AT P_VKORG.

RAVKORG-SIGN = P_VKORG-SIGN.

RAVKORG-LOW = P_VKORG-LOW.

RAVKORG-HIGH = P_VKORG-HIGH.

RAVKORG-OPTION = P_VKORG-OPTION.

APPEND RAVKORG.

ENDLOOP.

SELECT * FROM TVKO WHERE VKORG IN P_VKORG. "RAVKORG.

AUTHORITY-CHECK OBJECT 'V_VBAK_VKO'

  • ID 'VKORG' FIELD TVKO-VKORG.

ID 'VKORG' FIELD TVKO-VKORG

ID 'VTWEG' FIELD 'DUMMY'

ID 'SPART' FIELD 'DUMMY'

ID 'ACTVT' FIELD 'DUMMY'.

IF SY-SUBRC <> 0.

MESSAGE E090(ZK).

EXIT.

ENDIF.

ENDSELECT.

SELECT * FROM CDHDR WHERE OBJECTCLAS = 'VERKBELEG' AND

UDATE IN P_DATUM ORDER BY UDATE.

SELECT * FROM CDPOS WHERE OBJECTCLAS = CDHDR-OBJECTCLAS AND

OBJECTID = CDHDR-OBJECTID AND

CHANGENR = CDHDR-CHANGENR AND

FNAME = 'ABGRU'.

MOVE CDHDR-OBJECTCLAS TO IT_1-T_OBJECTCLAS.

MOVE CDHDR-UDATE TO IT_1-T_UDATE.

MOVE CDPOS-OBJECTID TO IT_1-T_OBJECTID.

MOVE CDPOS-CHANGENR TO IT_1-T_CHANGENR.

MOVE CDPOS-FNAME TO IT_1-T_FNAME.

MOVE CDPOS-TABKEY TO IT_1-T_TABKEY.

APPEND IT_1.

ENDSELECT.

ENDSELECT.

*Ausgabeliste Header

FORMAT COLOR 2 INTENSIFIED OFF.

WRITE:

/1 'AEND-DAT',

15 'AUFT_GEB',

25 'PTYP',

30 'VERKAUFS_BEL',

45 'POS',

55 'MAT-NR',

65 'DISPO',

75 'DS-NAME',

95 'DSMM',

105 'BEZEICHNUNG',

153 ' AUFTRAGSMENGE',

180 ' NETTOWERT',

192 'WAERHG'.

ULINE.

*Ausgabe selection, bearbeitung und listen

LOOP AT IT_1.

*aus IT_1-T_TABKEY wird Positionsnummer und Verkaufsbekeg ermitteln

MOVE IT_1-T_TABKEY TO HILF.

MOVE HILF+3(10) TO MERKE_VBELN. "Offsetting

MOVE HILF+13(6) TO MERKE_POSNR.

MOVE IT_1-T_UDATE TO IT_AUSGABE-T_UDATE.

*Position und kopftabelle lesen----

-


SELECT * FROM VBAK

WHERE VBAK~VBELN = MERKE_VBELN AND

VBAK~VKORG IN P_VKORG AND

VBAK~VTWEG IN P_VETWEG.

MOVE VBAK-KUNNR TO IT_AUSGABE-T_KUNNR.

SELECT * FROM VBAP WHERE VBAP~VBELN = VBAK-VBELN AND

VBAP~POSNR = MERKE_POSNR.

MOVE VBAP-PSTYV TO IT_AUSGABE-T_PSTYV.

MOVE VBAP-VBELN TO IT_AUSGABE-T_VBELN.

MOVE VBAP-POSNR TO IT_AUSGABE-T_POSNR.

MOVE VBAP-MATNR TO IT_AUSGABE-T_MATNR.

MOVE VBAP-ARKTX TO IT_AUSGABE-T_ARKTX.

MOVE VBAP-KWMENG TO IT_AUSGABE-T_KWMENG.

MOVE VBAP-NETWR TO IT_AUSGABE-T_NETWR.

MOVE VBAP-WAERK TO IT_AUSGABE-T_WAERK.

SELECT SINGLE *

FROM MARC AS MC

WHERE MC~WERKS = VBAP-WERKS AND

MC~MATNR = VBAP-MATNR.

MOVE MARC-DISPO TO IT_AUSGABE-T_DISPO.

MOVE MARC-DISMM TO IT_AUSGABE-T_DISMM.

SELECT SINGLE *

FROM T024D AS TD

WHERE TD~WERKS = VBAP-WERKS AND

TD~DISPO = MARC-DISPO.

MOVE T024D-DSNAM TO IT_AUSGABE-T_DSNAM.

APPEND IT_AUSGABE.

*Ausgabeliste

FORMAT COLOR 2 INTENSIFIED OFF.

WRITE:/1 IT_AUSGABE-T_UDATE,

15 IT_AUSGABE-T_KUNNR,

25 IT_AUSGABE-T_PSTYV,

30 IT_AUSGABE-T_VBELN,

45 IT_AUSGABE-T_POSNR,

55 IT_AUSGABE-T_MATNR,

65 IT_AUSGABE-T_DISPO,

75 IT_AUSGABE-T_DSNAM,

95 IT_AUSGABE-T_DISMM,

105 IT_AUSGABE-T_ARKTX,

150 IT_AUSGABE-T_KWMENG,

170 IT_AUSGABE-T_NETWR,

192 IT_AUSGABE-T_WAERK.

ENDSELECT.

ENDSELECT.

ENDLOOP.

REFRESH: IT_AUSGABE, IT_1.

END-OF-SELECTION.

Reward with points if useful

Blacky

Read only

0 Likes
662

Thank you for your answer, but i am a functional developer and i am just trying to get the fields in structure FAGL_S_RFSSLD00_LIST to use in this query. Is it possible.

If yes what is the way to do it.

I have the program generated like this when i created the infoset

REPORT RSAQDVP_TEMPLATE .

*

----


  • declarations

  • (insert your declarations in this section)

----


data:

FAGL_S_RFSSLD00_LIST type FAGL_S_RFSSLD00_LIST ,

it_data type standard table of FAGL_S_RFSSLD00_LIST .

field-symbols: <struc> type FAGL_S_RFSSLD00_LIST .

----


  • selection screen statements

----


  • (define your selection-screen here)

  • !! the following comment MUST NOT BE CHANGED !!

*<QUERY_HEAD>

----


  • read data into IT_DATA

----


  • (select your data here into internal table IT_DATA)

----


  • output of the data

  • (this section can be left unchanged)

----


loop at it_data assigning <struc>.

move-corresponding <struc> to FAGL_S_RFSSLD00_LIST .

  • !! the following comment MUST NOT BE CHANGED !!

*<QUERY_BODY>

I just need to know what i should fill in the query head and body if I need all the fields in the structure to be selected