As discussed in Time and Technical Characteristics, a master data read class is assigned to such a special InfoObject which handles the master data retrieval. The values for display attributes are derived(by this class) from the year of the data record.
The time characteristic 0CALYEAR uses the class is CL_RSMD_RS_0CALYEAR(see note 1387166).
As explained in notes 2194279 and 2074801, it is important to use the current content version of this characteristic. It is not recommended to change the delivered version of the object, however, it is possible to create your own hierarchies. It is not allowed to set the display attributes as navigation attributes.
Transaction RSRHIERARCHYVIRT can be used to define a time interval which is the basis for the F4 help of time characteristics. In case of inconsistencies, this transaction also offers an option to refill the corresponding master data tables(more precisely, the SID, P, and X tables) for the characteristics 0DATE, 0CALMONTH, 0QUARTER and 0FISCPER(since the new content versions of these objects contain navigation attributes). So, the button 'Execute Recreate' has no effect for the time characteristic 0CALYEAR.
2608688 New Rebuild Option for Time Characteristics Master Data
For time characteristics like 0CALYEAR so called Virtual Time Hierarchies can be used in order to get a hierarchical display of the periods in query results. See Virtual Time Hierarchies for further details. It is also possible to create manually hierarchies with transaction RSD1/RSH1 and BW Modeling Tools.
There is a check called "Consistency of SID and X table for relevant Time Characteristics" in RSRV you can use to check whether the records in the SID, P and X tables are consistent. But for 0CALYEAR will be considered as invalid parameter, as it does not have navigational attributes in content version.
The mode (F4 Modes) being passed to the value help processor dictates where (which database table) the data is to be fetched from. More information of F4 Help behaviour in BW75 and BW/4 systems can be found under "Examples" section.
BW75 Systems: Content Version
Since there are only display attributes, the P and X tables are not needed. Hence the P table only contains the initial value(and the X table does not exist at all):
BW/4Hana Systems: Content Version
For 0CALYEAR the system is not delivered empty in BW/4 system.
BW/4Hana Example: Filling of SID Tables
In BW75 when the system is new, all the master data tables(/BI0/SCALYEAR, /BI0/PCALYEAR) of 0CALYEAR are empty. But BW/4 system is delivered with entries in SID table.
Choose the interval needed to be created and save it.
In our case time interval 01.01.2017 - 31.12.2019 is selected. Then click on the "Save" button to fill missing table entries.
BW75 Example: Filling of SID Tables
Since the P table is not needed, for this infoobject type the P table remains empty.
BW75 Example: F4 Help for 0CALYEAR
In this section F4 behaviour of 0CALYEAR will be discussed. In this example, the INFOPROV is only loaded with one data record, which is 2019.
Keeping this information in mind, let's execute a query where 0CALYEAR is used in variable selection. If the query is executed where 0CALYEAR is selected as 'D-Mode' (F4 Modes), below value(s) is returned:
If the query is executed where 0CALYEAR is selected as 'M-Mode' (F4 Modes), below value(s) is returned:
The date range created via RSRHIERARCHYVIRT will be shown in M-Mode. If you ask how the F4 help reads the master data? The answer of the question is hidden in _VALUE_GENERATE method of the class CL_RSMD_RS_0CALYEAR. Here the class cl_rsr_hierarchy_virt will be called and the values will be filled accordingly.
BW75 Example: F4 Help for 0CALYEAR-2
In this example we load the Infocube with data record (=2015) which is outside of data range created via RSRHIERARCHYVIRT. We observed the belows:
The SID table will be updated with 0CALYEAR=2015
If the query is executed where 0CALYEAR is selected as 'M-Mode' (F4 Modes), the data range created via RSRHIERARCHYVIRT will be shown:
If the query is executed where 0CALYEAR is selected as 'D-Mode' (F4 Modes), the data loaded into infocube will be shown: