We are using Oracle applications adapter to call Oracle EBS (both R11.5 and R12) APIs. I want to understand the best practice around error handling when using Oracle Apps Adapter to call Oracle EBS.
Here are some observations:
1. Most of the APIs return X_RETURN_STATUS and X_MSG_DATA containing the status and messages if any.
2. If the MSG COUNT is 1 then X_MSG_DATA contains the message, if MSG COUNT is > 1. X_MSG_DATA is empty.
We know that when calling the API directly from PL/SQL, we need to loop through FND_MSG_PUB to fetch all messages when there are more than 1. How do we achieve the same using Apps Adapter as Apps Adapter generates the PL/SQL block to call the API dynamically at runtime.
In some APIs, which have table/rec types as input or output parameters, Apps Adapter generates a wrapper package to do conversion from SQL--> PL/SQL and viceversa. In this case the adapter calls the custom package generated which internally calls the API. For these APIs we were able to put the logic to loop through FND_MSG_PUB and return a concatenated string as value of X_MSG_DATA.
But what should we do for the APIs which do NOT have a rec/table type as input or output, in which case the Apps Adapter directly calls the API and there is no intermediate custom package?