Using generated business object definitions
Use SAPODA to generate business object definitions for
each RFC-enabled function that you want to support. You can use
the generated objects without any modifications. However, you can
manually edit these objects to refine the functionality.
After the objects are generated, you must add the business object definition to your WebSphere business integration system's runtime environment.
Important:
You can modify the name of the generated business object
as well as the name of its child business objects. To do so, you
must edit the definition as a text file rather than in Business
Object Designer. If you do change a business object's name,
ensure that you also modify all references to the names that you
change.
Note:
For BAPIs and RFC-enabled ABAP functions that are
developed in a development namespace, SAPODA removes or replaces "/" characters in the function name with
"_" when naming the business object definition, .java, and .class files. SAPODA removes the "/" character only when it is the first character
of the name. Although the definition name or file name does not contain
this character, the code still accurately calls the specified function
with its proper name containing the "/" characters. Also, when a function name begins with a digit, SAPODA prepends the name with the string Rfm_.
Tips and tricks
This section describes the following tips and tricks for developing business objects:
Multiple business objects contain the same return business
object
Most BAPIs use the same name for the return object. When
SAPODA generates a business object definition, it creates a child
business object to represent this return object. If multiple business
object definitions contain an identically named child business object,
you can add that child business object into the repository only
once, or copy only a single definition file into the repository
directory.
To enable multiple business objects to contain the return business
object, you must modify the name of the return business object to
be unique for each business object.
To rename the return business object, modify the definition of
each business object definition that contains it. The definition
of the child business object is contained in the same definition
file as its parent.
To rename the child, do the following:
- Open the definition file for the top-level business object in
a text editor.
- Locate the definition of the BOprefix_return child business object.
- Change the child's name to be unique. For example,
append a number to the text (sap_return_2).
- Change all references in the definition to refer to the newly
named child. For example, change the value of the Type property
for every attribute that represents the child business object.
- Save the changed definition file.
- Use System Manager (CSM) to load the newly named child business
object into the repository.
Note:
Alternatively, if InterChange Server is the integration
broker, you can use the repos_copy command to load the definition into the repository.
Generated business object definition contains unnecessary attributes
and child business objects
SAPODA interprets all BAPI interface parameters and, for
each one, it creates a corresponding business object attribute or
child business object. To increase performance of business object
processing, remove from the business object definition all attributes
and business objects that are not required.
Note:
SAPODA facilitates graphically removing all optional
attributes and child business objects before definition generation.
For more information, see
Developing business objects for the BAPI Module.
To increase performance of business object processing, you can
also remove from the application-specific information all importing
and exporting table parameter values that are not required.
After definition generation, you can use Business Object Designer
to manually edit the business object definition if you require other
changes. However, be careful that you remove only attributes that
you absolutely will not be using.
Generated business object names are too long or fail your
naming conventions
SAPODA uses the name of the BAPI function module to generate
the name of the business object definition. You can use a text editor
to modify a business object's name.
Important:
If you do change the name, ensure that you modify all
references to the name as well. However, do not modify the parameter
names of the generated application-specific information.
To change a generated business object's name:
- Save the definition to a file.
- Use a text editor to shorten or change the name.
- Use System Manager (CSM) to load the newly named child business
object into the repository.
Note:
Alternatively, if Interchange Server is the integration
broker, you can use the repos_copy command to load the definition into the repository.
Generated AppSpecificInfo for table parameters specify unnecessary
parameters
Table parameters can be both importing and exporting parameters.
If you do not require importing or exporting of values for a table
parameter, you can remove it from the application-specific information.
For example, for a create operation, if you do not need to return
the table data from the SAP application after the create operation
has completed, you can remove the exporting parameter value (such
as Etable name).
For a retrieve operation, you do not need to specify any importing
table parameters. Therefore, you can remove the importing parameter
value (such as Itable name).
Note:
You must remove the unneeded value from the AppSpecificInfo of the attribute in the parent that represents the child
as well as from the AppSpecificInfo at the business-object level of the child business object.
Do not remove the colon (:).
For example, to remove the ETable_7 exporting parameter in Figure 49, you
would do the following:
- In the Child_2 attribute of the Top_Level_BusObj business object,
change the attribute's AppSpecificInfo value to:
ITable_7:
- In the AppSpecificInfo at the business-object level of the Child_2
business object, change the value to:
ITable_7:
- In the AppSpecificInfo for each attribute of the child business
object, using Attribute_14 as an example, change the value to:
IField_14:
