When calling a function module in SAP using RFC function call, the (BODI-1112394)>. (BODI-1111081) error is a common occurence. This document aims to provide a solution for such cases.
For the purposes of demonstration, I’ve chosen the Function Module GUID_CREATE which is a standard FM in SAP. The requirement is to generate GUIDs in BODS by calling this function module. The so generated GUIDS need to be sotred in a template table. The subsequent use of these stored GUIDS can be used in BODS ETL routines and this varies with the requirements so this documetn will not explore it.
A screenshot of the error message is show below in Fig 1.
The above mentinoed error message occurs because syntactically the function call in the mapping for the GUID column in Fig 1 is incorrect for BODS validation.The validation failure occurs because the BODS Validation treats the RFC_FUNCTION mapping as incorrect without any input parameters being passed in the function call.
The Function Module
The Import and Export parameters definition for the FM GUID_CREATE is shown in Fig 2 below. the FM can be viewed in transaction SE37.
From Fig 2 it is clear that the Function Module does not need an input parameter and hence just invoking the FM will provide the GUID output as defined in the Export parameters of the FM. when this Function module is executed in SAP, it works without any errors and returns the GUID as expected (Fig 3).
However in BODS, the syntax error occurs because there are no import parameters for this function module.
How to Resolve this situation ?
In order to resolve this error, there should be an input parameter defined for the RFC_FUNCTION call in order to complete the syntax for BODS Validation to be successful. This can be achieved by creating a custom Function Module (ZGUID_CREATE) in SAP that calls the original FM GUID_CREATE but also has an import parameter. This import parameter need not be used in the FM but having this import parameter will complete the syntax in BODS for the RFC Function call.
Fig 4 below shows the “Define Input Parameter(s)” section for RFC_FUNCTION call of function module GUID_CREATE.
The definition for the customer Function Module ZGUID_CREATE is shown in Fig 5.
Note that the ZGUID_CREATE function module does not use the declared import parameter in the source code section. The purpose of the import parameter is for the benefit of the RFC_FUNCTION call in BODS. In Fig 6 below the RFC_FUNCTION call contains the input parameter in the “Define Input Parameter(s)”.
The RFC_FUNCTION call now is completed syntactically in the mapping for the GUID column as shown below and validates without errors.
This is one way of getting over the eror message with the syntax when calling the function module via RFC function call.