What is ZOA?
ZOA is an open source project to build an ABAP framework for consistent web services that read and update SAP data. ZOA stands for developer oriented architecture
How is ZOA different to BAPIs and RFCs?
ZOA is a framework for exposing services that are:
- able to log and trace calls
- able to supply metadata about fields and values
- developer friendly
Benefits of using ZOA's consistent framework
Reduced development times - easy to find, intuitive to use, meaningful messages, traces and logs
Low-impact enhancement - easily incorporate new functionality
Pre-emptive messaging - propose default values, list allowed values, related features, validate field entries, test user auth.
Extensible - parameter / value arrays for stable interfaces and proxies
What are "features'?
A feature is a flat structure reflecting SAP data, like Sales order header, or Purchase order item.
Features can have parents, children and siblings.
Relationships are managed using common classes and methods.
How can an interface be simple and complete?
Only very basic fields are named in interfaces
More complex fields are addressed using optional parameter/value arrays
GetFields method has filters to return mandatory, basic, grouped etc fields
GetRelatedFeatures delivers rich hierarchical context
ProposeDefaults reduces guesswork around user/config settings
Illustrative subset of methods
Here are some of the methods defined in the ZOA superclass and, if necessary, reimplemented in classes for specific features:
How will I build new features?
It will be quite easy to build new features, because the superclass does most of the hard work. The steps will be:
- Choose a name for the feature
- Put the basic fields into a structure
- Create a class under the ZOA superclass
- Register tables, fields names, keys and related features in the constructor
- Provide some code to implement each SAP data method - the superclass does the rest
Current status of the project
Code practices established
SAPSearch implemented for Address feature with:
- Field registration
- Core and extension field handling
- Dynamic field mapping
Launch Community Project - April 2009
Establish Protocols - July 2009
Develop superclass and first feature for alpha release - October 2009
How can I be involved?
If you are a very experienced ABAP developer and you would like to contribute to this project please register your interest by responding to this article or contacting the author directly.