This is the interface between the OLAP processor and the data manager. The tables SFC>, SFK, SELDR> andfor non-cumulative values, the table RTIME> aretransferred to the data manager.
- Table SFC controls the 'group by' . Using the fields SFC-SIDRETURNNM and
SFC-KEYRETURNNM, the system controls which fields are filled in thereturn structure S_DATA.
- The required (basic) key figures are collected in table SFK.
- Table SELDR is predominately used to describe the where condition.
- In table RTIME, all time points necessary for the evaluation of
non-cumulatives are described. The data manager splits such a request into a sequence of databasequeries, sends them off partially in parallel, and returns the data tothe OLAP processor in individual packages. Each return package is described in greater detail in tableTX_SPLITPACK. This contains the following components:
- PARTPROV (PARTPROV_SID) and AGGREGATE: These components specify from
which sub-InfoCube or aggregate the data comes.
- NCUM_VALUES: With non-cumulative cubes, this component specifies if
there are non-cumulatives or deltas.
- NODERETFL: This component specifies whether the nodes or the expanded
leaves are returned.
- SEL_FEMS: The n-th bit specifies whether the data for FEMS = n belong
to the SELDR.
- CHARET: For each characteristic, the system specifies whether the KEY
and/or SID was returned, and whether the proportion of WHERE conditionsin FEMS = 0 or FEMS >0 can be guaranteed. In the form OLAP_BACK, each of these data packages is handled accordingto its SPLITPACK-description and finally filled in the save table. In the form USER_EXIT, the data package is transferred to the EXIT andafterwards the dymanic filtering of the derived characteristic isactivated. The flag NODERETFL determines whether the system is to check againsthierarchy nodes or leaves. In the form ASSIGN_KEYSID, a key or an SID is assigned via an Assign > command. Both the DATA field and the right sides are assigned. In the form CHECK_NAV_INIT_BACK, a dynamic filter is activated forthose characteristics that could not be checked by the data manager (forexample, VirtualProvider, user_exit). The form FILTER_BACK is theapplication of this very general filter. The package is sorted to improve performance in cases where hierarchyleaves must be verified against hierarchy nodes. Calling up SELECT_0 brings about a jump into the generated part. Thefollowing forms are run here: SELECT_1>: All selection nodes are collected in the tableSN>. Each SNID corresponds to a bit in the structure-LEAF. In the form GET_NODE_BACK, the bits of all nodes areset to true>>> in the bit string G_SNX, for which therecord S_DATA qualifies. Afterwards, all selections of FEMS = 0 arechecked. This check can be deactivated using <(> <<)>G_CHECK0> and is only executed when required. SELECT_2>: The assignments (MOVE) are made here. = BIT-AND assign the free characteristics from S_DATA toG_SX_S-K. G_S_Q collects the currency fields and the conversion factors(and the 'LIT' 100 correction) are returned in the form GET_FACTOR. Fornumeric variables 'with replacement path attribute', the formVARCHAVL_GET gets the attribute value. SELECT_4>: The form CHECK is the main case distinction. Everyrecord S_DATA must be checked against every selection group, that is,against every FEMS >0. In the forms MOVE_Z_SP_%FEMS, the calculationsare executed 'before aggrevation', the currency factors <<)>G_FInnn>are multiplied out and the container work areas are filled. Afterwards,collect > takes place in the save table <(> <<)>G_THX_S>, where the special fields specific to every container arefilled and the exception aggregation AGGRGEN is taken into account. After all packages have been processed, you can look at the memory table in the form FILL_SP. For non-cumulatives, the post-processingAVI_INTEGRAL and the method for filling non-cumulative gaps LI_BACK areexecuted.
|