This document describes how to access DSO tables using the BAPI connector. It also describes how to transform data in the data_array field of a RFC_READ_TABLE base view to a simple table. Finally, the document gives tips for using SAP supported filters.
To create a base view for a DSO table follow these steps:
The base view will always have the following fields: delimiter, no_data, query_table, rowcount, rowskips, data_array, fields_array, and options_array.
To query the base view, set the query_table field to the physical table name. For instance: ‘query_table’ = ‘/BIO/EXAMPLE_TABLE’.
The images below show a query example and the result obtained
One thing to keep in mind is that the size of the output of the RFC call is limited. If the DSO table has too many columns the error “BUFFER_EXCEED” will appear. The solution is to project only the required columns. The columns to project can be specified as a condition. For instance: “SELECT * FROM bv_rfc_read_table WHERE query_table = ‘/BIO/EXAMPLE_TABLE’and (fields_array).fieldname = 'MANDT' “
The actual data from the DSO table is in the data_array field. The DSO table field names are in the fields_array field. The image below displays data from the data_array field.
To transform the data in the data_array field of an RFC_READ_TABLE base view to a simple view follow these steps:
‘bv_rfc_read_table.query_table’ = ‘/BIO/EXAMPLE_TABLE’
‘bv_rfc_read_table.delimiter’ = ‘;’
Note: This semicolon will separate each piece of data in the data_array field. Specifying the delimiter aids in the join between the data_array field and a delimited view. The join is the final step of transforming the data into a simple table.
The image below displays an example configuration for the selection view:
The images below display the configuration for the flatten view.
The images below are an example of the configuration for the join view.
SAP supports filters. To include filters for the Virtual DataPort views it is possible to use the (options_array).text field in a where condition. The input for the(options_array).text will be the same as in an SQL query.
For instance, to select data that has the value “MAT003” in the column “/BIC/IO_MAT” the condition would look like this:
(options_array).text = '/BIC/IO_MAT = ''MAT003'''
Note: Denodo provides a RFC_READ_TABLE custom wrapper which can be used to query tables from the SAP system. The custom wrapper can be found in the DenodoConnects under the Downloads section of the support site. For more details, refer to Denodo RFCReadTable Custom Wrapper - User Manual. This wrapper simplifies the steps to create the base view by automatically creating view schema without the need to create data combinations manually.