Skip to Content

Introduction

The first version of ABAP Docs was introduced on SDN with Custom ABAP Development Methodology whitepaper – Custom ABAP Development Methodology – on July 31, 2008. The article discussed the custom development methodology that promotes the source code reusability and uses ABAP Docs as a tool to document software components, make their documentation available at developers’ fingertips and manage the software development life cycle.

The original whitepaper got very warm reception with over 17000 Web site visits and over 3500 downloads of the attached source code and documentation.

 

The latest ABAP Docs 2.1 version is loaded with numerous exciting features – some of them were introduced in November 2008 with the major release of ABAP Docs 2.0.This blog introduces the most important ABAP Docs features. The detail description of these features is available in ABAP Docs 2.1 User Manual that could be downloaded from SDN, together with the full source code in SAP transport format and Installation Manual, using the following link:http://www.sdn.sap.com/irj/scn/downloads?rid=/library/uuid/404a7694-b9e9-2b10-4e8f-e97f71c8ecb6 

Beside support for 16 component types, source code development life cycle, graphics, multi window display, component grouping, extensibility and implementation of many other features, ABAP Docs 2.1 can be also used as a source code exchange platform for posting and downloading ABAP code within end user, consulting organization or globally on Internet for the entire SAP development community. 

The following topics are discussed in this paper: 
• Graphics Support
• Multiple help Windows
• Support for 16 Component Types
• Support for Attachments
• Development Life Cycle
• Database Components
• Integrating ABAP Docs with Your Own Application
• Printing ABAP Docs Documentation
• ABAP Docs Extensibility
• Component Groups and Spaces
• Source Code Sharing/Exchange

ABAP Docs 2.1 is a premier custom ABAP software documentation system. Its ABAP Docs Cockpit gives instantaneous access to software components’ online documentation, organizing the development process and promoting source code reusability. The sample ABAP Docs Cockpit screen is shown below:

 

 

Graphics Support

The component on-line documentation could be greatly enhanced with images showing diagrams and screen prints. ABAP Docs supports displaying GIF images uploaded to SAP Web Repository with transaction SMW0. To display GIF image in ABAP Docs documentation, include its SAP Web Repository name embraced by @~ and ~@ delimiters; e.g., @~ZADOC2-ZCXF_APPL_EXECUTE-01.GIF~@ as shown in the following table:

The above ABAP Docs help template will render the following help document:

 

Multiple Help Windows

ABAP Docs allows displaying the component help information in multiple windows; i.e., one help document in ABAP Docs Cockpit window and multiple help documents in MS Explorer windows. To display the component help in ABAP Docs Cockpit, click on its hotspot name. To display the component help in MS Explorer window click on the icon to the right of the component name as shown on the following screen:

Support for 16 Component Types

ABAP Docs supports 16 component types as shown on the following screen:

 

Support for Attachments

In addition to storing the documentation on ABAP components inline ABAP source code, one might opt to store more elaborate documentation in the attachment. To store the documentation in attachment, you have to configure attachment extensions and corresponding viewers using transaction ZFLC21 as shown on the following screen:

 

You have to place the attachment files, prior to generating the help document, in the ABAP Docs user name dependent home directory as shown on the following configuration screen:

 

The attachment must be specified in the help template in the *ATTACHMENT section as follows:

To display the attachment, click on the attachment icon beside component name as shown on the following screen:

 

The use of attachments should not be abused. The best place to store bulky project documentation is in SAP Solution Manager. Only some documents not too big in size should be considered for storing in ABAP Docs as attachments.

Development Life Cycle

The development life cycle is controlled in component documentation templates by 3 status attributes; i.e., SPECIFICATION, DEVELOPMENT and TESTING, defined in the *STATUS section as shown in the following table:

Each of these attributes may assume one of the following values: PENDING, STARTED, SUSPENDED, RESUMED or COMPLETED. Beside status value, the developer login name and the date may be associated with these STATUS attributes.

The STATUS attributes flag values, corresponding icons, associated login names and dates are displayed in ABAP Docs Cockpit component list as shown on the following screen:

The component life cycle starts when the architect or team lead creates the component specification by defining component signature, functional and technical description as well as examples of usage to prepare it for the development by a programmer.

The architect releases the component for development by settings the SPECIFICATION attribute value to COMPLETED, the DEVELOPMENT attribute value to PENDING and assigning the developer for its implementation.

The developer implements the component and its test program and changes the DEVELOPMENT attribute value to COMPLETED once development and unit testing is completed.

The final testing is performed by QA programmer that further tests component and eventually changes TESTING attribute value to COMPLETED.

Only then, the component should be used in the development of various ABAP applications. Only then the component is available for downloading with ABAP Docs Code Exchange/Sharing feature.

The custom ABAP development life cycle was discussed in detail in the following blog:

Custom ABAP Development Methodology – Implementing Sample ABAP Form with ABAP Docs –  Custom ABAP Development Methodology – Implementing Sample ABAP Form with ABAP Docs

Database Components

Beside inline documentation, ABAP Docs supports some components that are documented with the help of ABAP Docs editor rather than ABAP Workbench editor. The documentation for these components; i.e., SAPF, SAPS, DOCU, PROC and PROD is stored in ABAP Docs database tables rather than ABAP programs/includes. The ABAP Docs editor is fully integrated with ABAP Docs Cockpit.

Integrating ABAP Docs with Your Own Application

You might want to integrate ABAP Docs with your own programs; e.g., as one shown in the following table:

 

Executing this program will display the following ABAP Docs screen:

 

Printing ABAP Docs Documentation

You might want to include ABAP Docs documentation in Technical Specification documentation and save it in SAP Solution Manager. To do this, display component documentation in ABAP Docs and click on Screen Version button to display entire component help as HTML text as shown on the following screen:

 

Then, cut and paste component HTML help text to your MS Word document as shown on the following screen:

ABAP Docs Extensibility

It is very easy to extend the functionality of ABAP Docs system. You might want to:

  • maintain documentation for not yet supported ABAP components; e.g., ZENHA for Enhancement, ZBADI for BAdIs, ZWDYN for WebDynpro for ABAP
  • add new sections to existing components; e.g., the *CONFIGURATION section for ZSAPF and ZSAPS components
  • create new business process related components; e.g., ZRESU for Resume,

 

It is suggested to create ZENHA, ZBADI and ZWDYN component help in separate ABAP includes, included in ABAP source code for these components, rather than directly within components source code. This way it would be much easier to specify ABAP name when generating the help documentation for these components.

For every new component you have to configure its header section and all other sections that are not yet used by other components. The component header section should be configured with the HELP_PATTERN configuration parameter as shown on the following screen:

You might add configuration for the SAP Enhancement component as shown on the following screen:

All secondary sections for new component that are not yet used by other components should be defined with: SECTION_ALSO, SECTION_DB, SECTION_HTML, SECTION_PARM and/or TABLE_FORMAT configuration parameters. You might need some small changes in ABAP Docs programs; e.g., ZABAP_DOCS_TYPE_INSTALL and ZABAP_DOCS_TYPE_DEFAULT_LIST to add icon for the new component type.

You would also need to add and install a new document template/pattern; e.g., ZABAP_DOCS_PATTERN_ZENHA and a new HTML display template; e.g., ZABAP_DOCS_HTML_TEMPLATE_ENHA.

Instead of creating new components help, e.g., ZENHA or ZBADI, you might consider to call a custom function modules as the only ABAP code inside these components and then document it with existing ZFUNC component help template.

For details on extension techniques, please, refer to ABAP Docs 2.1 User Manual.

Component Groups & Spaces

ABAP Docs components may by organized in groups and spaces. You may have more than one component with the same name each assigned to different component space. The component spaces are poor cousins of ABAP namespaces and allow to define multiple components with the same name implemented by different users as long as those components are defined in separate ABAP programs/includes as shown on the following screen:

 

You cannot use component spaces to define multiple function modules or global classes with the same names due to ABAP workbench limitations.

The component groups do not allow definition of multiple components with same name. You may reassign component to different group but you cannot define another component with the same name belonging to different component group. The component groups control the list of components available for viewing for ABAP Docs users as shown on the following configuration screen:

The users ABARYLA, BLEE and KMARTINEZ may view ABAP Docs components belonging only to SD-USER group. This allows dividing ABAP Docs users into different categories and let them see information on components that are important for them as shown on the following screen:

 

Source Code Sharing/Exchange

ABAP Docs 2.1 might be used as ABAP Code Sharing/Exchange platform for ABAP programmers working on different SAP systems.

The ABAP Code Sharing/Exchange Platform might be used:

  • locally on the end user system,
  • within consulting organizations,
  • globally on Internet for entire SAP community

ABAP Code might be developed or uploaded on the ABAP Code Sharing/Exchange platform where ABAP Docs is installed. ABAP Docs Component Spaces might be used to avoid name conflict for components with the same name posted by two developers. Before ABAP code is made available for downloading, it should be:

  • fully documented
  • fully tested
  • all status attribute values should be changed to COMPLETED
  • documentation template should contain the test program name and all dependent ABAP components names

Only then, posted ABAP component will be ready for downloading. Make sure that ABAP Docs is configured for code exchange with SAPlink as shown on the following screen:

Make sure that SAPlink is installed on the system.

The SAPlink icon will show beside all components that are eligible for download as shown on the following screen:

 

To download the selected component, click on the SAPlink icon. The following screen will appear:

 

Click on EXECUTE button to create a new SAPlink NUGG file. The list of related components will be displayed as shown on the following screen:

 Select components that you want to download. Keep in mind that some of these components might be already downloaded when downloading anther ABAP component before. Click on Download Component button. The SAPlink program will be executed and each sub-component ABAP code will be added to the SAPlink NUGG file as shown for the sample ZFLC_ERROR function group component:

 Click on EXECUTE button for each sub-component selected for download.

Click on the BACK button to return to ABAP Docs. The SAPlink NUGG file was created. It contains ABAP code for all selected sub-components. You can take this file and upload it to another SAP system.

The list of ABAP sub-components proposed for download is controlled by component document template *INCLUDE section as shown in the following table:

Notice specification for the test program, included sub-components and all status attribute values set to COMPLETED. Only then, SAPlink icon will show up beside component name allowing for component download.

Summary

With the help of ABAP Docs 2.1 you are well equipped to create quality documentation for your projects.

 

When doing any software development, it is important to focus on source code reusability by building libraries of well defined, tested and documented components.Developing software libraries might increase initial development time for small projects but it would pay off quickly when undertaking additional assignments that would reuse these libraries. For medium and large size projects, the development and usage of software component libraries would have a positive effect on the development timeline and better quality of the source code. The library of reusable components might be useful in any project and could start with the development of widely used components for error handling, string manipulation, file i/o and alerts to name few areas.

The road to success is not only in the development of reusable components but also in superior documentation that fully describes them, shows their signatures, examples of using them as well as provide a comprehensive search capabilities. Only then, the programmers will be fully aware of them and will appreciate and use them to the full extend rather than write similar ABAP code over and over again.ABAP Docs is not the artificial intelligence software.

The quality of the documentation created with it would be only as good as one that you would create. Creating the good documentation is time well spent. It would benefit you and your fellow developers on current and future projects. It would also help many other developers within your organization or in the entire SAP community if you would choose to use ABAP Docs as local or global Code Sharing/Exchange Platform.

Now it is good time to download ABAP Docs source code and documentation and give it a try in your organization:http://www.sdn.sap.com/irj/scn/downloads?rid=/library/uuid/404a7694-b9e9-2b10-4e8f-e97f71c8ecb6

To report this post you need to login first.

15 Comments

You must be Logged on to comment or reply to a post.

    1. Adam Baryla Post author
      Hi Ken:

      Thank you for your comment.

      I was not aware of SAP Help Center.

      After reading your comment, I checked the link you provided and looked at 3 minutes demo of SAP Help Center.

      It looks that SAP Help Center is geared towards the SAP end user and allows adding tips on how to use specific transactions/processes.

      ABAP Docs is for ABAP developers and its main purpose is to help them with easily available inline documentation on custom developed ABAP components; e.g, ABAP Forms, Macros, Function Modules, Classes, …. ABAP Docs provides superior search capabilities to look at once for help information on all component types. Its concept, scope and purpose is totally different from SAP Help Center and there conflict or overlapping functionality between these two products.

      Best regards,
      Adam Baryla

      (0) 
    2. Adam Baryla Post author
      The last sentence in comment above should read:

      Its concept, scope and purpose are totally different from SAP Help Center and there is no conflict or overlapping functionality between these two products.

      (0) 
  1. Andres Leon
    I´m trying to use the program ABAP Docs 2.1 cockpit but the I run it, it appears a popup message (Access to file denied Message no. FES012). Have you ever have this problem before? Would you help me to find a suitable solution?
    (0) 
    1. Adam Baryla Post author

      Hi Andres:<br/><br/>No, I did not have a problem like this. Could you please, let me know when do you get this message; e.g., when starting ABAP Docs Cockpit, when trying to display help on component, or in different situation.<br/><br/>Did you go through the installation process and performed all steps described in the Installation Manual; i.e.?<br/><br/>3.1.     Installing ABAP Docs Favorites Menu     5<br/>3.2.     Initializing ABAP Docs Configuration Parameters     7<br/>3.3.     Initializing ABAP Docs Components Space     9<br/>3.4.     Installing ABAP Docs Document Types     10<br/>3.5.     Installing ABAP Docs Editing Patterns     11<br/>3.6.     Generating ABAP Docs Sample Components Documentation     17<br/><br/>ABAP Docs downloads HTML documentation to a ZABAPDOCS_DOCUMENT_DTEXT.HTML file in directory configured with HELP_DIR- stands for you login name; e.g., HELP_DIR-ABARYLA) using ZFLC21 transaction. If not configured by default it uses C:\ directory. If this directory is not available for writing, you might get the problem you described. This could happen if you access ABAP Docs from; e.g., Citrix environment. If this is the case, please, read chapter on configuring directory for Citrix environment; i.e., User Manual – page 177 Using ABAP Docs in WTS/Citrix Environment. When I use it in Citrix environment, I set up HELP_DIR-ABARYLA parameter to
      CLIENT\C$\ZABAP_DOCS\Adam

      (0) 
  2. Ondrej Jurecek
    Hi all,

    the Custom ABAP Development Methodology whitepaper opened very interesting topic. And I think we need real Custom ABAP Development Methodology useful in practice as a system of templates and guidelines for technical specification preparation, architect’s guidelines and so on.

    Development activity of ABAP Docu tools rather belongs to free ABAP community member, not to core team of SAP America. SAP company as a authority would work on more important tasks from my point of view.

    Let open the “Custom ABAP Development Methodology” whitepaper and think about it. Inline coding really is not the most important thing.

    I am disappointed.. 🙁

    Ondrej

    (0) 
    1. Adam Baryla Post author
      Hi Ondrej:

      SAP software is widely used across the world by large and medium size enterprises. It is highly configurable and can be adopted to meet complex customer requirements. Yet, in some situations there is still need for custom development on many customer sites.

      I work for SAP America as a consultant (not a core developer) implementing complex custom solutions and plug-in subsystems whenever the customer chooses not to use standard SAP functionality or wants to enhance it – if in some cases SAP cannot be configured exactly to meet the customer requirements.

      In my line of work, I found the need for a good, easily available documentation that supports custom development process and ABAP Docs reflects it. The documentation provided by ABAP Docs is meant for developers. It should be prepared by developers and it should be used by developers. It is why the inline documentation concept is used to make it easy to create and update. The concept of inline documentation is not new. It was adopted successfully; e.g., by widely popular Java and JavaDocs.

      As discussed earlier in Custom ABAP Development Methodology blog in Jul 2008, ABAP Docs is used as a tool for a single yet important step of the custom development process and does not try to impose on other maybe more important parts of it. It tries to make life of developer easier providing documentation on ABAP components signatures, describing their functionality and providing example of usage, at programmers’ fingertips.

      I hope that this explains why I am interested in providing tools for documenting custom ABAP development.

      Best regards,

      Adam Baryla

      (0) 
  3. Larry Browning
    I went to the download link to download the latest version of ABAP docs, but before it would let me download it I had to agree to a 90 day evaluation licence. I thought this was a free open source product.  What’s up with this?  Not really complaining, just confused.
    (0) 
    1. Adam Baryla Post author
      Hi Larry:

      My current aim is to make ABAP Docs the part of the standard SAP NetWeaver product, which would address the feedback I received multiple times about support and maintenance. For now, this is seen to be the better option than to offer it with an open source license.

      The ABAP Docs 2.1 distribution under 90 days SAP Evaluation License Agreement is free of charge.

      Best regards,

      Adam Baryla

      (0) 
      1. Community User
        Hi Adam,

        I’ll think it’s a good idea to have SAP docs in the standard product!
        Can you tell when this will happen (and in which version)?
        What does the current license mean: ABAP docs can only be used for evaluation purposes and not in a productive environment anymore?

        Kind regards,

        Martin Nauta

        (0) 
  4. Adam Baryla Post author
    There is a small problem with global method parameters not being displayed. To fix it, add the following line:

    SHIFT lc_line.

    just above

    CONDENSE lc_line.

    statement in line 374 in ZABAP_DOCS_I include and recompile the code.

    Correct also minor problems with help for GET_TOP_ROW method of ZFLC_ALV_GRID_GC global class:
    – in line 4, change “get_top row” to “get_top_row”.
    – add “

    ” at the end of line 7.

    This is a quick fix. Those changes will be included at later time in update transport.

    (0) 
    1. Adam Baryla Post author
      Hello:

      ABAP Docs 2.1 was developed on ECC 6.0 system. The original ABAP Docs 1.0 was developed on R/3 4.7 system. The new 2.1 version should be almost compatible with R/3 4.7 system. If you encounter any problems; e.g., as one with SAP_BOOL, please, modify the source code to resolve it; e.g., you might define ZSAP_BOOL type and change references to SAP_BOOL to type you defined.

      Best regards,

      Adam

      (0) 
      1. Yuan Wei Chua
        Hi,

        I have defined ZSAP_BOOL. when i try to compile, i get below error.

        Class ZFLC_ALV_GRID_GC,Method CONSTRUCTOR
        Formal parameter “I_FCAT_COMPLETE” does not exist.          

        I cannot find parameter “I_FCAT_COMPLETE” in
        CL_GUI_ALV_GRID.

        I am using SAP 4.7

        Please advice.

        (0) 
  5. carlos valentini
    Good morning.
    In primeirolugar sorry my English is not very good.
    Well I’m from Brazil.
    I am a student of ABAP, and would like to know the project ABAP Docs.
    And who knows in the future to contribute.
    Could you give me permission to access the project.
    My email is carlos@gati.inf.br
    Thank you and congratulations great job.
    (0) 

Leave a Reply