Skip to Content

Reduce development costs with ABAP Report Wizard (Community Day Launch in Vegas!)

ABAP Report Wizard V1.0 is live!


Today, during the Vegas Community day, we launched officially the ABAP Report Wizard. Simultaneously we are launching it on SDN as well so we can reach even more people.

This has been a community project and we hope it is just the beginning, bringing even more volunteers to improve this tool.

This Weblog will present the tool in a similar way the session at the Community day. 

IMPORTANT: As of now, the tool was created for and tested on Netweaver 2004s or 7.0. It needs to be ported to older  versions and for that, we welcome volunteers.

ABAP Report Wizard 



During the SDN day in Vegas last year (2006), I presented a concept/tool to automate creation of ABAP reports. It was in very early stages, but it was a very good experience for me and I had the opportunity to meet  Rich Heilman . He attended to the session and since then we’ve kept in contact.


Another developer who I have worked with in the past has also shown interest in the initiative. His name is Alexandre Giguère. So the three of us formed a team.


Alex, Rich and I have improved the initial concept to a much more powerful tool.


We’ll be presenting a tool that can be used “right out of the box”. Also, we expect to spark the discussion of what could be added to it.



  • Reduce development cost by reducing time required to create reports;
  • Reduce maintenance costs by proposing use of company standards;
  • Leverage your own development team by using a state-of-the-art report;
  • Leverage Allow development team to work on more important activities like designing business improvements;
  • Allow development team to work on more important activities like designing business improvements

The tool

Using this tool you can create ABAP report structure including the following parts:

  1. Documentation header;
  2. Selection screen;
  3. Data Declaration;
  4. Initialization;
  5. Start-of-selection;
  6. End-of-selection 

This report supports data from the following data sources:

  1. Table join (using graphical join editor);
  2. Single table


  1. Use the latest global ALV classes for report generation;
  2. The use the same global class template that encapsulates the report structure and functionalities, making not only simpler to use but also making all reports having the same “look and feel”;
  3. Allow developer to choose if the user is going to be allowed to save the layout or not;
  4. Allow the deleloper to choose if the event handlers (shell) are to be created or not.

The tool, step by step

Starting the Wizard In SE80 or SE38, put your cursor on an empty line within the source code editor, and click the pattern button. In the dialog, select the radiobutton for “Pattern” and enter the name of the pattern as Z_REPORT_WIZARD and click the green check. The wizard will then be triggered.  Using the ABAP Report Wizard This first screen of the wizard is simply for information purposes. Here you will see all the steps that will be processed by the Wizard.


Click continue to go to the first step of the wizard. The first step is called “Define Report Type”. In this step, you will define the title of the report and the data source.


Enter the report name and select the data Source.


You can either do a single table read, or a table join. If you select “Table”, you will be asked to enter the name of the table. If you select “Table Join”, you will be asked to define the table join by clicking the “Define” button.


The Graphical Join editor is called. This is exactly the same functionality available on ABAP Queries and ABAP List viewer.


Click the “Insert Table” icon on the application toolbar. Enter the name of the first table in the join.


The table will then be added to the display.


Next, click the “Insert Table” icon on the application toolbar again to add the second table in the join.


Again, give the name of the table and hit enter. The graphical editor will then display both tables as well as the join condition between the two. Repeat this procedure to add another table.


Once it is done, you will see that the 3 tables are displayed and they are joined. IMPORTANT: The sequence of the screens affect the final result.


OPTIONAL: See that the join may be even further refined and changed to a Left outer join. To do so, right-click on the link and set it so.


OPTIONAL: See the result. The join is defined as requested.


Click the “Back” button to leave the editor. Continuing to the next step of the wizard, you will need to define the selection criteria. This is where you will define what SELECT-OPTIONS or PARAMETERS will be created in your finalprogram. By default, the selections, will be SELECT-OPTIONS, you must check the checkbox for “Parameters” in order to switch to a PARAMETERS statement. You can also define them as obligatory.

Click “Continue” when finished defining your selection screen.




The next step of the wizard is to define the output fields in your report.


Open the node of the specific table an select the fields that you want to be displayed in the ALV Output.



Click “Continue” when finished selecting your output fields. The next step in the wizard is to define some options for your generated report program. Currently there is only two options, event handler generation, and save layout functionality.


If you select the “Create Event Handler” option, the wizard with then create a local class for handling events raised by the ALV Grid. If you select “Allow user to save the layout”, the ALV layout functionality will be turned on. Select both and Click “Continue”.


The last screen is a “Completion” screen. Simply click the complete button.


The required source code will then be written to your program from where you called the pattern.


Save the report. Details of the generated code: Header Comments – Self-explanatory…


Tables Statement – To support the select-options statement (further in the code)


Selection screen – Notice that the screen in created grouping the parameters (or select-options) by table.


Data Declaration – The definition of the target structure is created based on the selected output fields.


Based on this type definition, we will have workarea WA_DATA and an internal table IT_DATA.


Initilization – description for the selection screen from the dictionary


Event Handler section


And maybe most importantly, the select statement (join)


And the end-of-selection event with the global ALV class call (through a custom class)


Activate and run your program. The output will resemble the image below.



The community project 


This is now a community project. Please feel to propose changes, report bugs or just volunteer to help.


Community project site


Please refer to the other Weblog posted on how to install this tool on your system.

How to Install the ABAP Report Wizard 

You must be Logged on to comment or reply to a post.
  • Leonardo…I’m sorry I’m missed your session…The tool looks really amazing and useful…So thanks for blog, I that I watch it live -:P

    Hope to meet at dinner.



    • hi Alvaro,
      I am glad you liked it and I feel sorry for you not making to our session.
      Just let me know if you are interested, I can meet you and show you the application in more detail. ( advantages of being at the SAPTechEd….  Hehe )
      see you later at the demo jam!


  • Hi Leo,

    great work and thanks a lot to you and the others that worked on this initiative.

    I had played with an earlier version but I just did a download and install of the latest SAPLink and ABAP RepWiz and it worked great.

    Well done.

    Graham Robbo

      • Hi Leonardo,

        Eventhough i am not an ABAP expert, but i have some knowledge to understand the code, its really very nice wizard that you guys have worked on…congrats to three of you first,

        i have doubt can i use the report created by this wizard to extract data to my BI system, like for BI we create generic datasource which can get data from ABAP report, Function Module, Table…so i can use the report created by this wizard as a normal abap report and proceed with my BI extraction.

        Thanks a lot again.


  • Great Work guys!

    Really funny to play with and the generated code is well done !
    I’m posting this message to say that I tested this wizzard on a ECC5.0 with WAS 6.40 and it is working well!


    • Thanks for the feedback!

      It is rewarding to hear people are using it and like it.

      It is also great news that 6.40 is working fine. We expected a few problems but we had no time to test is ourselves.

      Thanks again,


      • Hi Leo,
        I just went thought it now.It looks really good.Still to download though.
        But I have just one question.Please do correct me if I am wrong.
        Do you think it will be correct to use JOIN statments in production system.Simply because when it hits the database ,there is going to be loads of data there.So I guess if the tool can actually seperate out select queries rather than join,,its gonna rock even more
  • It looks like a great tool.  I’ll try it and introduce it to my team.

    I didn’t know about it but saw your reply to “Blag’s best blogs picks from 2007”

    • Hi Leo,
      Thanks for trying it.
      Yes, we launched it during the SAPTechEd Vegas 2007. It is a project that we worked on for a couple of years, with remote developers from different countries. It is a true community project that delivered a ready to use tool.
      I thought it would have got more support from SDN but until today it was “under the radar”.
      I am glad now to see that SDN is featuring this weblog. Our team put a lot of hours on it and it is rewarding to see it reaching the large community.

      Let us know if you have questions.

      Leonardo De Araujo

  • hi
    i tried here
    se38 i click on pattern then selected Other pattern radio button and press F4 then it show only one ‘Z’ report i.e  Z_SEQUITTE_ABAP not

    so Z_REPORT_WIZARD  is not in my system.
    i have sap SAP ERP Central Component 5.0 version

    • Hi Jim,
      Thanks for trying the tool.
      I think I should have more clearly outlined in the blog that this tool is available for download but needs to be installed. It is not part of the standard delivery of Netweaver 7.0

      Please follow the link below for instructions on how to download and install it.

      Good luck and let me know if you have any questions.


      • Sorry Jim, forgot to mention…
        This tool was designed and developed for Netweaver 7.0 > Since you are running ECC 50, you are running on Netweaver 2004 or 6.4.
        We never tested it in an environment like this.
        We had feedbacks saying that some people were able to make it work but others were not able to.

        I guess it is worth for you to try it.

        The initiative to port it back to older Netweaver releases is a good one but we need help for that. Depending on the posts we get on this weblog, I will post a new one inviting people to help downporting it to older versions.

        Lets wait and see.

        Leonardo De Araujo


    • Hi Atul,
      Thanks for trying our tool.
      This tool is available for download and can be installed using the following link:

      How to Install the ABAP Report Wizard

      Please read this blog and proceed with the installation steps. It has to work on your system since it was designed and coded on Netweaver 7.0.

      Let us know if you have any questions.


        • hmmm a webdynpro version… never thought of that.
          Yes, I know, many suggestions are being sent to us. We are compiling them and consolidating with the list of future enhancements of the tool that we had in mind.
          We will soon resume development for the next version.
          Thanks again,
  • Hi Leonardo,

    I’m from Brazil and I have tested the tool in our system and worked very weel.
    The code is very clear and easy to understand.
    Keep going with the good job…

    Sílvio Miranda

    • Thanks Silvio,

      That was the goal; to have a community project delivering tools for the community.
      It is rewarding to hear that someone else has downloaded and found it usefull.
      Thanks for the feedback.

      (valeu mesmo. Abraco!)

  • Hi ..

    First of all congrats for this idea and  the tool !!

    I am facing some problem while installing the Documentation and Message class plug-ins of the SAP Link.
    All the others are installed successfully .. but in the above two cases it is not giving any success output.. It is not at all entering the  * While currentNode is initial* loop.

    waiting for ur reply !!!

    Sai Ramesh

  • Hi Leonardo De Araujo,
          I am new to ABAP. I went through the ABAP Report wizard and its a great tool to generate reports quickly. I have the following question(correct me if I am wrong).
         I use transaction SQVI(query viewer) to get data from selected tables by  using selection screen and selecting the required output and than generate a report from it.
       Can you please tell me the difference between ABAP report wizard and SQVI like its advantages..etc


    • Hi Neha,
      Thanks for checking it.
      Yes, there are many similarities to SQVI. We actuatlly reuse the graphical join editor so from an user perspective, it looks very similar.
      Now, “under the hood” is where the changes start to appear. First and foremost SQVI generates ABAP code that you are not allowed/supposed to change. Our tool has a goal to generate your own abap report based on predefined selections.
      In my own experience I find that functional team members use SQVI a lot since for them it is quite usefull. But for us developers we prefer to have our own report so our customization options are greater. What I see more and more, in may companies, is that ABAP reports are coded instead of Queries.
      So, with the purpose of helping you generating your own code, the Wizard is quite helpful.
      Additionally, and also very important, this tool not only help your development team to generate code the same way, what reduces maintenance costs, but also expose your whole development team to the way a report should be written, following the best practices adopted by your company. Ex: Using SALV class for reports.
      From a user perspective it is also good since you may generate tons of reports, but they all have the same look and feel. All would have the same header, for example.

      Also, this is the first version. We plan to release in the future other functionalities that would differentiate even further from SQVI. Ex: Join Performance analyser (to give you hints on bad joins), further ALV fields customization and use of ALV trees.

      If you intend to create a ABAP report from scratch, we believe that this wizard can really help you point to the right direction.

      Leonardo De Araujo
      Another important

  • Hello Loenardo,

    I got this output while a download the nugget:

    SAPlink 0.1.3

       Start import of nugget ABAP_REPORT_WIZARD

       There is no installed SAPlink plugin for object type DTEL
       There is no installed SAPlink plugin for object type TABL
       There is no installed SAPlink plugin for object type TTYP
       There is no installed SAPlink plugin for object type FUGR
       There is no installed SAPlink plugin for object type DOCV
       There is no installed SAPlink plugin for object type MSAG

    I am trying it install at system 6.40,
    I dont found any NW syst. component – could this be the reason ?

    Thank You,
    Best Regards

    Radek Dusek

    • Hi Radek,
      2 considerations:

      1 – This tool has been designed and developed for Netweaver 7.0. We had reports however that the functionality works on 6.4. But at the same time other reports were thet it doesn’t work. We never had the opportunity to test it.
      2 – It looks like you didn’t install SAPLink completely. You need to install it (what you did) and then load all the plugins. See the comment ” You will also need the following plug-ins which can be downloaded from  

      Required Plug-ins :

      Function Groups
      Message Classes
      Dictionary Objects
      ” on
      How to Install the ABAP Report Wizard

      Please try again and let us know if it works under 6.4



      • Hi Leonardo,

        I reinstalled this plugins:


        But after that I still get the message:

        There is no installed SAPlink plugin for object type TABL and … TTYP

        Then a instaled the rest of all plugins, but does not help. I tried to reinstall the plugins in another sequens – no success. I think I should debug this loader and find the reason, but our internal was upgraded to NW7 and the old will be next week deleted. At new system it works fine, Im happy with it.

        Thank You,



    • Had the same problem.
      The reason is most likely that you still need to activate the classes. Use SE80 and select class ZSAPLINK*. Activate all classes that start with ZSAPLINK*.
    • Hi..

      Good work guys……

      I was trying to use it on ECC 6.0 and the SAP_ABA shows Release 700 and SAP_Basis shows Release 700.

      But I was unsuccessful. So should I install the plugins. Does it should be installed by BASIS..


      • Hi Chaithanya,

        If you are running ECC60, you should be able to completely install it.
        I don’t want to interfere with your companies policies regarding creation of programs, but normally this task belongs to developers only, so, you should be fine.

        The installation of the SAPLink, its plugins and the ABAP Report Wizard is just a creation of programs, classes and dictionary objects. It is not a real SAP PLUG IN.

        Please follow carefully the installation steps described on this BLOG:
        How to Install the ABAP Report Wizard


        Good luck and let me know.


  • Hi Leo,
    I just went thought it now.It looks really good.Still to download though.
    But I have just one question.Please do correct me if I am wrong.
    Do you think it will be correct to use JOIN statments in production system.Simply because when it hits the database ,there is going to be loads of data there.So I guess if the tool can actually seperate out select queries rather than join,,its gonna rock even more
    • Good point Rahul. Sometimes it is better to split the select. Sometimes though, the simplicity far surpasses the performance hit if you have a very well stablished join statement (with proper selection criteria). I stress that cause I agree this is often overlooked and performance problems are common.
      One of the things we think about implementing is a tool to somehow evaluate the “quality” of the defined join.
      In another hand, you suggestion is good. We’ll think about it. We could have a checkbox at the end of the wizard that when checked, produces a multiple select code.



  • Hi..

    Good work guys……

    I was trying to use it on ECC 6.0 and I have the following SAP_ABA shows Release 700 and SAP_Basis shows Release 700.

    But I was unsuccessful. So should I install the plugins. Does it should be installed by BASIS..


    • Hi Chaithanya,

      If you are running ECC60, you should be able to completely install it.
      I don’t want to interfere with your companies policies regarding creation of programs, but normally this task belongs to developers only, so, you should be fine.

      The installation of the SAPLink, its plugins and the ABAP Report Wizard is just a creation of programs, classes and dictionary objects. It is not a real SAP PLUG IN.

      Please follow carefully the installation steps described on this BLOG:

      How to Install the ABAP Report Wizard


      Good luck and let me know.


  • This works great, i am trying play with it to change the Logo and other stuff. The best part is that you can add your own stuff with the code it has created. I would rate this excellent.


  • hey guys, you have done a pure excellent job there.
    I hope I’ll be able to change the SAP Enjoy logo to the one of our company.
    But there is still a minor bug, as far as the language is concerned. When using the wizard with sap language set to german the menu of the wizard is missing and some other headers, e.g. the headers where you can choose the selection fields (select-options, parameters and obligatory).
    When using SAP set to English, the mentioned things work great but the whole describtion text is missing.
    Nevertheless, its still an awfull tool.
    • Hi Erik,
      If I started reading your comment from the end I would have thought you didn’t like the tool…  😉
      Thanks for trying and using the tool. Again, it is good to see that people are trying it.
      You raise a very good point. Our development was done in english. It works for sure, but we never tested it in other laguages.
      I suspect that the SAPLink plugin that export/import the texts do so in the logon language while the text elements are done so in the export laguage (english) – or vice versa.
      I will spread the word.
      For you I would just ask you to translate it yourself using SE63.
      If you can then send us copy of your translation, I will try to make it part of the nugget.
      Thanks again
      • There are three things that have to be translated:
        1) The wizard describtions e.g.
        ‘Welcome to the ABAP Report Wizard!
        This Wizard will help you create…’.
        I think they are located in the DOCV Objects, e.g.
        Unfortunately, I can’t find them via SE63 and I cant find them anywhere else in the SAP System. I need some help there.

        2) The menu at the left side of the wizard cannot be seen. Where do I find these entries?

        3) The short text phrases that are displayed running the report, e.g. User name, Runtime… must not be hardcoded.
        But for the time being I changed them directly, inside the header and footer classes.

        • For the immediate translation of these texts, please try the following (here I can confirm it works, I have a codepage error):
          SE63 then go to
          Then on the pop up window, expand L3 Dialog texts and Select DT – Dialog texts.
          Then proceed with the translation of the following objects:

          Let me know it if works.


          • Only these are required to be translated:

            the others were old texts…


          • Im working on the translation at the moment.
            I first tried it with SE63, but that sucked. ’cause I always got the the Error ‘Object not found’ or ‘Incorrect Codepage’.
            Now I am doing it with SE61 and it works great.
            I allready tested it with English and German Login.
            How do you want nugget? Shell I only export
            or the whole ABAP Wizard?
            And besides, there is still bug with the menu. Its  invisible when using german language and I dont know where to translate the menu items.
            Here is a picture of the broken menu.
          • Thanks for the feedback.
            Yes, Please send us (via email please) the nugget of the texts when you can.
            Additionally, here is how to translate the menu texts. These are text symbols for function module SAPLZWIZ_BT_REPORT_WIZARD. Just translate it using SE37.


  • Hello Leonardo,

    First of all, congratulation for that achievement!
    Now, quick technical question:
    Does that tools enable to join Cluster such as EDID4 or KONV?
    It’s not possible in SQVI nor SQ02, so I am wondering if that tool will support it.
    Thanks in advance for your cooperation.


    Francois Potier
    SAP Canada

    • Hi Francois,  obviously you are still bound by the rules of the ABAP language and runtime, so no, you can not join cluster tables with this tool.

      Rich Heilman

      • Thanks for the reply Rich.

        Hi Francois, great to see you here! Wow, I am flatered..

        We are discussing an option where we would allow transforming the join from a JOIN to a sequence of SELECT’s . In that case, we should be able to handle it.
        In a short version, as of today, no, you can’t, unfortunately.

        I will keep you posted though,


  • This tool will provide much more time for the developers to think about the logic and the performance of the code. It will increase the quality of the new developments.

    Congratulations Leonardo!

    • Thanks Thiago,

      In fact yes, that is our point of view. Some developers I talked to in the past said things like “this could reduce the amount of work for us” or things of that nature.
      THAT IS NOT THE CASE. The whole purpose is to speed ut the labor intensive time consuming tasks like variable definitions and programs structuring. This way the developers will be able to focus on the most important thing that is to add quality to the developments, improve performance and propose new functionalities.
      I strong believe in developers fulfilling a more design, architect role in the future. And we hope that this tool is a step towards that!

      Congratulations to the whole team. I didn’t do this alone. Rich and Alex were key players in this.

      Thanks again,

      Leonardo De Araujo

  • Good work guys. It must be a great tool. I tried to our system (640) but it does not work (error in class CL_SALV_FUNCTIONS_TREE, does not exit). I will try it to our BI system 7.0.

    PS: Is it possible to re write it for older systems?

    • Possible it is. The problem is manpower…
      We’ve focused most of our efforts on delivering new functionality, not on backwards compatibility.

      I am planning on creating a version that supports older releases, but no promisses there. For sure it would be a streamed down version (since we base ourselves on the latest functionalities).


  • hey guys, first of all a very well job done..
    now is there a way to incorporate the radiobutton and checkbox functionality in this tool????
    • Hi Wilson,
      Thanks for the feedback.
      As this application generate selection based on SAP tables, we probably would never have a situation where radio buttons could be implemented. Let me explain better: radio buttons are generally used to defined different behaviour during the execution, like RB_PO and RB_STO to distinguish different selections. But  you still need to program all the logic behind it so this part we have no control.
      What we can do is to create a pattern specifically to generate radio buttons on the selection screen, that way you would only need to add your own logic after.
      One of the things we can do.

      Leonardo De Araujo

  • Are you planning on adding  more customization of the ALV? Things like sort order, sums, and other field catalog settings? I want to try to look at attempting some of those extensions myself. I would love to be able to contribute to the effort. I’ve been thinking about doing something like that myself for a while now.

    Keep up the good work!

    • Hi Mark,
      Thanks for the feedback.

      Yes, we are open to volunteers.

      Here a small list of things we planned for the next version:
      – Delivery of JOIN wizard as a standalone pattern
      – Join x select into table sequences
      – Use of Business classes as data retrieval layer
      – Portability to versions<SAP Netweaver 7.0

      We only need to make sure we preserve the original programming guidelines (in other words: not mess up with our existing code)

      Let us know if you would like to take on some of it.

      Leonardo De Araujo

  • Hello,

    First of all i would like to tell what a great idea this is. This is exactly what we need to fast create simple reports.

    However i think i have found a bug.

    If you create a report that has a join for 3 tables for example MARA MARD and MEAN.
    The program proposes a join, but when the proposed join is changed, for example linking MEAN directly to mara instead of to MARD. the created join in the program no does not contain MEAN. This is the select you get:

    SELECT a~matnr b~ean11 c~pstat c~lvorm
    FROM ( ( mara AS a
    INNER JOIN mard AS c ON a~matnr = c~matnr AND
    a~matnr = b~matnr )
    INTO TABLE it_data ” <– Attention ! Field sequence !
    WHERE a~matnr IN so_matnr .

    As you can see b~ is mentioned in the where, but there is now joint that contains as b.

    Is this a know issue?


    Dimitri Deflo

    • Hi Dimitri,
      Sorry for the delay responding. This message got under my radar… 😉
      Thanks for the feedback. No, I was not aware of this problem. I will take a look at it.

      Leonardo De Araujo

  • Hi Leonardo,

    I am a master student, working as an Intern in SAP ABAP. This tool is really great. I also implemented this tool at my work place. I have a quick question (May be a silly one, I am a very beginner in this field), IS there any way go back to the report wizard after completing every thing. I mean once the code has generated, If I need any changes can I go back to GUI screen, where we connect the tables & other steps? Instead of changing the code manually.

    I am sorry, if I confuse you with my question.

    • Hi,
      Thanks for the feedback.
      As for your question, no, the way it is designed, if you need to change something, you would need rerun the wizard or do the changes manually. It would get too difficult to figure out where you are at and allow changes.

      Leonardo De Araujo

  • Hi All,

       This is awesome tool.
       This is Balaji Pinni from Intelligroup Inc., working as ABAP Developer. We are planning to web enable the ‘Report Wizard’, could you suggest the best approach to use from ‘ITS’, ‘BSP’ and ‘WebDynpro’.

    Balaji P

    • Hi Balaji,
      The “web enabling” to the ABAP report wizard is not something we planned in detail since it is an important change in scope and design.
      I would defenitely push for ABAP WebDynpro since BSP is no longer going to be developed by SAP.
      What could be done is to create a generic data browser web application and the wizard would generate the data selection and provide the data….
      Have to think about it.