sap abap queries

Upload: tumojitekato

Post on 08-Aug-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/22/2019 Sap Abap Queries

    1/8

    SAP ABAP QueriesIntroduction

    Why ABAP/4 Queries?

    Many times a need arises for SAP Users and Functional Consultants to generate quick reports

    without getting any ABAP coding done time taken to complete the coding in development,transport and test it in QA system and then transport to production is sometimes too long. Insuch cases, ABAP/4 query is a tool provided by SAP for generating these kinds of reports.

    This document aims at explaining the concept of ABAP/4 query in a simple and straight forwardmanner. The reader of this document should have a moderate knowledge of ABAP concepts andauthorizations for understanding the concept of ABAP query.

    Type of Report Desired

    Before starting to write an ABAP query, its advisable to decide the type of report that the userwants. ABAP query provides the following type of reports:

    Basic List Simple report

    Statistics Report containing statistical functions like Average &Percentage

    Ranked List Report written for analytical purpose

    Read This Nugget

    The output is always seen in the order of Basic List, then Statistics and thenRanked List if any. One ABAP query can have one basic list, maximum of 9

    statistics and maximum of 9 ranked lists.

    In a nutshell, an ABAP/4 query can be designed in four steps

    1. Creation of a user group2. Creation of functional area

    3. Assignment of user group to functional area

    4. Creation of the query based on functional area

    The various objects that form an ABAP query can be created in the following 2 ways:

    Tools => ABAP/4 Workbench => Utilities => ABAP/4 Query

    OR

    By executing the transaction codes mentioned below

    SQ01 ABAP/4 Query

    SQ02 Functional Area

    SQ03 User group

  • 8/22/2019 Sap Abap Queries

    2/8

    Step I Create Functional Area

    In the functional area section, the user indicates from which part of the SAP database the data isgoing to be retrieved and how the data is to be retrieved by the query. One functional area can beassigned to many user groups. A functional area can be created with or without a logicaldatabase.

    To create a functional area with a logical database, one has to mention the name of the databaseand then select the fields from the tables that form the logical database.

    SAP ABAP QueriesCreating Functional Areas using a Logical Database

    To create the functional area with a logical database

    Tools => ABAP/4 Workbench => Utilities => ABAP/4 query => Functional Areas.

    Give the functional area name and click on Create button

    In the next screen give a brief description of the functional area

    Specify the name of the logical database, for e.g. Database FI, Application S. This

    will be the definition for the flight database

    Click on the button Functional Group present on the application toolbar, in order to

    create the functional group for the required fields from the logical database tables

    In the functional group box mention the number of the functional group and the

    description for the functional group

    The tables from the logical database are shown in Tables Of Logical Database/Joins

    while the fields are displayed in the Fields Box

    Double click on the table name in order to change the list

    Every field that has to be selected in the query should be assigned a functional group

    number against it

    Sometimes the list of fields in the Fields box will not be completely visible. To have a

    wider display of the list place the cursor in the fields box area and click on Settings=> Full Screen from the SAP menu bar

    To see the fields from different tables select the table and double click on it.

    Once the required fields are selected, save the functional Area by clicking on the

    SAVE icon on the toolbar, and then Generate the Functional Area by clicking theGenerate icon on the toolbar

    To add user defined fields to the abap query use the menu bar option GOTO =>

    Additional Field

  • 8/22/2019 Sap Abap Queries

    3/8

    Give the field name and the table name from the logical database to which

    the field needs to be included. Click the ENTER button.

    On the next screen give the Sequence, description, title and the technical

    attributes for the field (field type, length). Here you can also specify theformula for the field. Click on the SAVE button to register the data to the

    database.

    Remember that the sequence of the field matters if the second field uses

    the first field in its code then the second field should have a higher sequencethan the first. Tables can also be included to do this use the menu optionGoto => Additional Tables

    You can include your own selection criteria and parameters to control the data to be

    selected from the database. For these additions to get activated, code needs to bewritten for taking care of the additional fields.

    To display something before the execution of the actual query, go to the start of

    selection event via the menu path Goto => Code => Start-of-selection.

    To display something just before or after the output of the query, go to the end of

    selection event via the menu path Goto => Code => End-of-selection.

    To display something at the beginning of the page, go to the top of page event via the

    menu path Goto => Code => Top-of-page.

    After finishing everything save and generate the functional area and click on the BACK icon tocome out.

    SAP ABAP Queries

    Creating Functional Areas Without a Logical Database

    To create a functional area without a logical database

    One of the following can be selected

    Based on a single table

    Using an ABAP/4 program

    Using Table Joins

    Using Sequential Dataset

    The steps to be followed for creating the functional area are as follows

    Tools => ABAP/4 Workbench => Utilities => ABAP/4 query => Functional Areas.

    Give the functional area name and click on Create button

    In the next screen give a brief description of the functional area

  • 8/22/2019 Sap Abap Queries

    4/8

    In the Without a logical database area give the base table on which to form the ABAP

    query

    To form the query with two or three tables, we need to create a join. For this check

    the Table Join Check Box and click on the Table Join button.

    NOTE: The tables to be used in the join should have at least one field in common i.e. itshould have the same name, domain or data element.

    Mention the tables that you want to include in the join condition in the Joined Tables area andpress ENTER.

    A checkbox will appear against the table names on the left side, and three radio buttons willappear against the tables on the right side specifying the join type.

    Base table name remains grayed out. Select the two tables to be involved in the join

    by clicking the check boxes against them. Use menu path Edit => Join => Definecondition to create the join. A mapping between the tables will be displayed on the

    right hand side. Click on the button provided (with + and down arrow symbol) tospecify the join.

    Click YES on the Proposal Requested message that gets displayed.

    If the join tables have a foreign key relationship then the common fields in the tables

    will be marked with 00 to indicate that the join has been created. User can create thejoin by specifying 00, 01 etc. against the fields that qualify for the join.

    Complete the join condition by adding more tables if necessary.

    Remaining concepts for creating the functional area without a logical database are same as theconcepts for creating the functional area with a logical database.

    After finishing everything save and generate the functional area and click on the BACK icon tocome out.

    SAP ABAP QueriesCreating the User Group

    STEP II Creating User Group

    Here you specify the users who should be authorized to run the query. A user group is alwaysassociated with a Functional Area.

    Go to the menu path Environment => User Group. Give a user group name in the screen

    that comes next.

    Specify the sap logins of the users whom you want to authorize for using the functional

    area and click on the Create button.

    Use the menu path Assign Functional Area to assign the functional area to the user

    group.

    Save the user group and back out of the screen by clicking the Back button.

  • 8/22/2019 Sap Abap Queries

    5/8

    Note: One user group can be assigned to any number of functional areas with logical database orwithout logical database.

    The final step is to create the actual query.

    SAP ABAP Queries

    Creating the ABAP Query

    STEP III Creating The Query

    In order to create the query use the menu pathEnvironment => Queries Give a name to the query and click on the Create button

    Give the description of the query in the next screen. Specify the output length and select

    the processing option from the Further Processing Options box. The data can bedisplayed in various formats such as table, download to a file, and display in Word etc.

    Click on the Next screen icon. Select the functional group screen. All the functional

    groups created in the functional area are displayed. Select the groups that you desire fields from only these groups will be displayed in the output. Click on the respectivecheck boxes and click on the Next Screen icon.

    The Select Field screen gets displayed. Select all the fields from the user group that you

    need to display on the output of the query. If required, specify the short names for thefields using the menu path Edit => Short Names => Switch On/Off or you can alsochange the selection text contains in the order you want to appear on the selectionscreen. You can also maintain column headers for the fields by using the menu path Edit=> Column Header => Maintain.

    Click on the Next Screen icon to get the Selections Screen. Here you can check against

    the fields that you require to be shown on the selection screen.

    Now we need to specify the output type for the query as Basic List, Statistics or Ranked

    List. Choose the option Basic List.

    On the Basic List line structure screen the following things can be done

    Specify the report layout in detail lines on which the fields will appear.

    Order in which the fields will appear in the output

    Sort order for the fields this is optional.

    For the numeric fields you can check against the fields for which you require totals in the

    output.

    Beautify the output according to the options provided.

    Click on the next screen icon, to specify the control levels as mentioned below

    Specify the sort order. The default sort order is ascending and can be changed to

    descending if required. Totals for each field selected for sorting can be displayed

    To display the output of a field in a box click on the check box against box. To display a

    line after the output of a field, click on the check box against BlnkLn

    To display the output of a field on a new page click on the check box against New Page

    Click on the next screen icon to get the List Line options Screen. Here you can specify

    the background color for displaying the output.

    Click on the next screen icon to get the Field Output Option screen. In this you can

    specify the following:

    Change the output length or the display positions of the fields

  • 8/22/2019 Sap Abap Queries

    6/8

    Specify the display position of the unit for quantity or currency fields. Click left radio

    button to display it before the figure, middle radio button to display it after the figure whilelast radio button to hide the unit altogether.

    Specify color for the column of every field under the Format option.

    Specify the label against the output of sort fields.

    Click on the Next screen option to go to the Basic List Header screen. Here you can

    specify Give page header and page footer for the output

    Include user name and date by specifying &N and &D respectively.

    After providing all the above options you can save the query and execute it by clicking theExecute button twice.

    SAP ABAP QueriesRanked List and Statistics

    Ranked List and Statistics

    Same process mentioned above can be used for generating Ranked list and statistics. The onlydifference is that you should choose Ranked list or statistic instead of Basic List.

    Ranked lists are special outputs where numeric values are summed for key terms and displayedin the table, and the sorting is always by a numeric value called Ranked List Criterion. Only acertain number of additional items are displayed on the output.

    One query can have many ranked lists hence every ranked list should be assigned a title. Thedefault entries in the ranked list can be 10 but user can also change the number.

    One of the fields should be defined as the ranked list criterion. The default sort sequence for thisfield is descending but ascending order can also be specified. An output length and a roundingfactor can also be defined.

    In case of statistics, a reference currency or reference units to convert all the amounts for thecurrency fields and quantity fields. You can also maintain the header and specify graphicparameters for statistics.

    To define another ranked list choose the menu option Next Ranked List.

    SAP ABAP QueriesData Retrieval Using Program

    Retrieving Data Using Program

    Sometimes a situation arises when an ABAP querys automatic data retrieval facility is notenough to get the desired results. In that case, the steps up to creating the functional area are thesame. Only difference is that on the Title and Database screen specify a structure in the fieldTable and select the field Data Retrieval Using Program.

    The default report name given by the system can be overwritten.

    This report needs to be defined before hand because it is used as a model while generating thequery report. Thus the report itself remains unchanged but based on that another one is created.

  • 8/22/2019 Sap Abap Queries

    7/8

    Note: Ensure that the report is free of syntax errors and has the same fixed point arithmeticsettings as the functional area.

    General Format Of the Report

    A typical report of this type will have the following format:

    Report .

    Tables: .

    Parameters: .

    Select-options: .

    Data: < all internal tables>.

    * 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.

    .

    * 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.

    SAP ABAP QueriesAuthorizations

    ABAP Query Authorizations

    To use an ABAP query, the user must have appropriate authorizations. Two ways of providingauthorizations to the users are as follows:

  • 8/22/2019 Sap Abap Queries

    8/8

    User groups

    The user should be a part of at least one user group to run the corresponding ABAP query. Thisautomatically restricts the access of the user to specific functional areas, and thus thecorresponding underlying logical databases.

    Authorizations

    The authorization object S_QUERY should be used to give proper authorizations to the user for aquery. This authorization object has a field named ACTVT which can take values 02 for Change,23 for Maintain and 67 for Translate.

    This value determines whether the user can create and modify the query. The possibleauthorizations in the object are as follows:

    S_QUERY_ALL Change, maintain and translate query

    S_QUERY_UPD Change and Translate

    Though the general concept of an ABAP query is moderately difficult, the results and the longterm use of the ABAP query is worth the effort.