Application-specific information (ASI) in business object definitions provides the BAPI Module with application-dependent instructions on how to process business objects. These instructions are specified at the following levels:
The business object-level ASI should be set for each type of object as
described in Table 13.
Table 13. Business object-level ASI
Object type | Application specific information |
---|---|
Objects representing single BAPI calls | type=bapi |
Objects representing BAPI transactions | type=bapi_txn |
Objects representing BAPI ResultSets | type=bapi_resultset |
The verb-level ASI should be set for each type of object as described in Table 14. Note that there is no verb ASI for BAPI ResultSet
business objects.
Object type | Verb ASI |
---|---|
Objects representing single BAPI calls | verb ASI=NameOfBAPI |
Objects representing BAPI transactions | verb ASI=NameOfBAPI1;NameOfBAPI2;NameOfBAPI3 |
Objects representing custom business object handlers | CBOH=bapi.client.customBOHandlerName |
Note that the connector supports verb ASI formats of business objects from earlier releases, where the value of the AppSpecific property captures the classname of the BAPI-specific business object handler (verb ASI= bapi.client.BOHandlerName, where bapi.client is the WebSphere Business Integration qualifier of the BAPI-specific business object handler name and BOHandlerName is the name of the class). You must include the value client before the business object handler name to identify that the business object handler acts as a client. Note that while the connector supports these earlier formats, SAPODA does not automatically generate them and therefore you must explicitly specify them by name in the verb ASI.
For example, if you are supporting the SALES_ORDER_CREATEFROMDAT2 BAPI from an earlier release, then the application-specific information is as follows:
AppSpecificInfo = bapi.client.sales_order_createfrom dat2
For custom business object handlers, the verb ASI should be explicitly set (since it is not generated by SAPODA) and fully qualified with the package name, where bapi.client represents the package name.
The connector uses the value of an attribute's application-specific information to determine which importing, exporting, and table parameters to use. The value of this property contains the prefix I (for importing parameters) or E (for exporting parameters). The prefix indicates whether the attribute value is used to pass data into or out from the SAP application.
Because structure parameters can be either importing or exporting, they use either an I or an E before the parameter value. Because table parameters can pass data to and return data from a BAPI, they can have both I and E parameter values.
Figure 49 illustrates the correspondence between a business object and an example BAPI named BAPI_EXAMPLE. In the example, the simple attributes (Attribute_1, Attribute_2, and Attribute_3) specify only an importing or exporting parameter. The attribute that represents a child business object (Child_1) corresponds to an exporting structure parameter. The attribute that represents an array of child business objects (Child_2) corresponds to a table parameter.
Each child business object has a simple attribute that corresponds to a field of the corresponding structure or table (Attribute_11 and Attribute_14, respectively). You can find these fields by looking at the details of the BAPI.
Figure 49. Correspondence between a business object and an example BAPI
Table 15 identifies the format of the application-specific
information for specific kinds of attributes.
Table 15. AppSpecificInfo format for specific kinds of attributes
AppSpecificInfo Format | Attribute Type |
---|---|
IParameterName:EParameterName | Simple |
ITableName:ETableName | Represents a child business object mapped to a table parameter |
IStructureName:EStructureName | Represents a child business object mapped to a structure parameter |
IFieldName:EFieldName | Represents an attribute of a child business object mapped to a field in a table or structure parameter |
SAPODA automatically generates the appropriate application-specific information for the business object definition. It is recommended that you do not change the parameter names of the generated application-specific information.
As explained in Business object structure for BAPI ResultSets, a BAPI ResultSet is a wrapper object that contains two
attributes of the object type: BAPI_Query and
BAPI_Result. BAPI_Query represents the Get List
BAPI, while BAPI_Result represents the Get Detail BAPI. The
attribute-level ASI for these two attributes is described in Table 16 .
Table 16. Attribute-level ASI for ResultSets
ResultSet attribute | Application-specific information |
---|---|
BAPI_Query | bapi=name_Of_GetListBAPI |
BAPI_Result | key=key_field;bapi=name_Of_GetDetailBAPI |
The Key attribute of the BAPI_Result object is identified using the attribute-level ASI key=name_Of_KeyAttribute. The business object handler uses this information for performance optimization.
The Foreign Key attribute of the BAPI Result object captures the relationship between BAPI_Result and BAPI_Query objects. It is identified using the attribute level ASI FK=BAPI_Query:Name of child object of BAPI_Query that contains the key attribute:name of key attribute.
For example, FK=Query:sap_addressdata:Customer_number. The BAPI business object handler uses this information for setting key values from a BAPI query object into BAPI Result object key attributes, for then retrieving Detail Result objects for each key.