|
Blogs
IntroductionProgramming complex business applications using 3GL languages like ABAP require a lot of time. The applications tend to be large and difficult to maintain. Most ABAP programs could be grouped into specific application types; e.g., data load programs, standard and ALV reports, BSP applications, inbound/outbound proxies for WebServices and PI/XI system, conversion programs, data mapping programs to name the few. When developing programs of the same type; e.g., ALV reports, you could use one program as a pattern, copy it over and make required changes to get another application of the same type. Even so the structure of programs of the same type are similar, the required changes are often substantial and spread out all over the source code making the modification tedious and prone to errors. The described process could be automated. Rather than coping programs and then make the required changes by hand, a set of tools could be developed and then used for developing programs of the same type. Depending on the program type, different set of tools might be helpful to make programming more efficient. The following tools might be useful:
The tools mentioned above are components of Rapid Development Environment - RDE - for applications of specific type. These applications are created by developing 4GL scripts that usually define application screens and how application should respond to certain events; e.g., data initialization, click on button, data record pattern matching, etc. All other details of the application could be handled automatically by cockpits, templates, code generators and runtime engines. For complex applications, the application scripts and code generators or runtime engines provide the most efficient development approach. For simple applications or for the marketing purposes, the Script Builder tools can be added on top of scripts. The Script Builders might provide nicely looking environment utilizing graphics, table based definitions as well as drag-and-drop technologies that are slick and very efficient for simple applications but cumbersome to use for complex ones. The Builders' applications should be always designed on top of scripts allowing the power users to opt out of Builders and use Editors instead. If both the Builders and the Editors are implemented, they should be available in parallel; e.g., at a click on the toggle button. Depending on application type, you could develop the appropriate set of custom tools, test them and then reuse them over and over when developing the custom applications. Using application type specific tools could speedup the development process by order of magnitude and sometimes even as much as 100 times. When designing script syntax, think about simplicity of its use by application developers. Each class of applications should have the set of its own script formats - specifically designed for applications to be used for. Simplicity of using it is very important. Otherwise, you would not have savings in the development time. In most cases you would not want to use XML based scripts. Even, so XML format might be appealing because availability of XML parsers, XML is not that user friendly - it is too verbose. It is very useful for machine processing but for humans, even so it is readable, it contains too many details and too little essence. Opting out of XML format for proprietary format - the best suited to define problem within specific application type/class - adds the time required to develop script parser. But you would develop parser once when building tools and you would not have to worry about it anymore. With XML based scripts you can use XML parsers, but still, it is quite cumbersome to get data out of XML and interpret it in your program. As a final touch of a complete set of toolset you might add XML layer for persistence data storage. But user should be always faced with much simpler script text format. The conversion from and to XML format could a part of a mature application class toolbox. RDE - Rapid Development Environment Model and Its ComponentsThe superset of Rapid Development Environment tools representing comprehensive RDE Model is shown on the following diagram:
Its components are marked with numbers 1 to 10. Depending on application type, the subset of components and links might be used for specific RDE implementation. Let us analyze RDE components and their relations:
What's NextThis whitepaper presents the principals of RDE design. The subsequent whitepapers that will be published in the near future will show concrete examples of RDE in use: Accelerating ABAP Development - Part II - Defining Screens in TAB Delimited Spreadsheet Files - for SAP Controls Technology based applications Accelerating ABAP Development - Part III - SAP Controls Extended Framework - for SAP Controls Technology based applications Accelerating ABAP Development - Part IV - ZSQL - for generating complete ABAP applications from SQL statement or Function Module signature The above mentioned whitepapers will include screen shots, sample 4GL scripts and ABAP code to illustrate the RDE concepts.
Adam Baryla Ph.D., is a Platinum Development Consultant at SAP America
| |||||||||||||||||||||||