When using methods like getMemberList or getMembers a list of dimension members is returned. Sometimes too many or too few members seem to be returned.
The returned list depends on the data source type.
If the data source is a DSL universe, the returned list of members depends on the definition in the Information Design Tool. Per default, the list of values (LOV) does not reflect what the user is doing at runtime. The Information Design Tool provides options to create custom Lists Of Values (LOVs) for dimensions, which e.g. could be based on custom SQL. For details about how to create LOVs please see the user guide for the Information Design Tool. However, Design Studio does not have an option to influence the returned list of values.
If the data source is a BW BEx query, either being used via direct connection to BW or OLAP connection via BO, the behavior can be influenced by setting particular member access modes (called "read mode" in BW) for the questionable dimension (called "characteristic" in BW). The read mode can be set in three places:
- In transaction RSD1 -> tab Business Explorer -> Query Execution Filter Val. Selectn.
- This setting can be overruled in the BEx Query Designer -> open BEx query -> Properties (for the dimension/characteristic) -> tab "Extended" -> section "Filter Value Selection at Query Execution".
- This setting can be overruled in the Initial View Editor in Design Studio -> right click on the dimension -> Members for Filtering.
In general, there are three BW read modes:
- Master Data (M): retuns all members in the master data table. This is the fastest read mode.
- InfoProvider Data (D): returns only values, which are booked in the InfoProvider.
- Posted Values (Q): returns only posted values, according to the current navigation state in the data source. It corresponds with the display in the crosstab. This is the slowest read mode but prevents the user from selecting values, for which no data exist in the particular context.
Even if read mode Q is used, filters, which are set on the dimension for which getMemberList is executed, are ignored! They do not restrict the returned list of members for being able to change filters again. This is by design.