Char relationships template class = CL_RSPLS_CR_EXIT_BASE
The create method has to fill table e_th_chas with all admissible combinations for the given selection table i_tsx_seldr. Use the method seldr_to_range to convert i_tsx_seldr to a the format e_t_range which is similar to a standard ABAP range table.
CALL METHOD seldr_to_range EXPORTING i_tsx_seldr = i_tsx_seldr IMPORTING e_t_range = lt_range.
The selection tables can be compared with the ‘where’ part of an SQL statement. So in general it is not ok to pick values from the selection table and to fill it to e_th_chas.
1) characteristic relationships depend on the InfoCube, not on the aggregation level. This is the reason why per relation you have to choose the characteristics relevant for the relation. So you can (and should) use the minimal set of characteristics needed in the relation. The system automatically decides when a relation has to be called (based in the aggregation level used and the ‘list geometry in an input ready query).
The create method will be called at run time whenever the system has to create the valid combinations (e.g. in some implementations of planning functions or in input ready queries when the setting ‘access mode for result values’ based on characteristic relationships is used). This does not affect invalid combinations, e.g. when these combinations exists on the DB.
When invalid combinations exist on DB then the system will read these combinations and will check these combinations (call the check method) and make the corresponding records not input ready. Usually one should delete invalid combinations with the corresponding planning function and then compress the cube with zero elemination.Google+