Bug Fixes

#478 - Fix MDX query in }APQ.C3.Dim.CoAMap.Dimension.Export

Symptom

When DRILLDOWNMEMBER( [FIN KCoA], RECURSIVE, ALL) is used, all elements will be repeated 3-times in the resulting MDX set. This will cause issues when the generated CSV export file is loaded back to FPM.

Solution

Removed DRILLDOWNMEMBER function from base MDX and replaced by HIERARCHIZE over dimension members.

#493 - Splicer: Fix --basepath switch usage when desplicing is required

Symptoms

When desplicing is required by specifying desplice command to Splicer, --basepath swith is ignored.

Solution

Base path switch value is now passed to desplicing method from command line. Please note: Issue is resolved in Splicer version 1.1.5.

#506 - Some roundtrip processes contain multiple occurrences of CubeSetLogChanges

Symptom

Some roundtrip processes contain CubeSetLogChanges command setting cube logging off multiple times during prolog. This might potentially cause locking situations when parallel processing is required during roundtrip data copy.

Solution

Redundant CubeSetLogChanges commands were removed from code, only cases when master thread calls CubeSetLogChanges were retained.

#500 - Replace redundant parameters in }APQ C3 FIN Planning Param Control cube

Requirement

There are currently redundant parameters in }APQ C3 FIN Planning Param Control cube after transition from FIN Planning Control. Redundant parameters are BUDBASE, FCSTBASE and BUDPERBASE. Presence of the parameters causes confusion in context of target plan type, parameters BUDBASE and FCSTBASE should be unified into a single parameter BASE, parameter BUDPERBASE should be renamed to PERBASE. Figure 1

Solution

Parameters BUDBASE and FCSTBASE were merged and renamed to BASE, parameter BUDPERBASE was renamed to PERBASE. Code references across FPM model were changed to point to new parameter names. Cube }APQ C3 FIN Planning Param Control now allows to specify parameter values of BASE and PERBASE in necessary cases only:

  • BASE must be specified for Balance Sheet planning in connection with working budget (WBUD*), top-down (TDOWN*), rolling forecast (RFCST*) or working forecast (WFCST*) type versions.
  • PERBASE must be specified for Balance Sheet, Expenses and Revenues planning in connection with working budget (WBUD*), top-down (TDOWN*), rolling forecast (RFCST*) or working forecast (WFCST*) type versions.

Package deployment script provides migration of currently defined values of replaced parameters to new ones. Please note: It is recommended to review parameter values after deployment of update package.

#504 - Review parallel processing filter sections in roundtrip processes

Symptoms

When parallel processing is required on FIN BSEG 3 or FIN BSEG 4 in any of parallel-enabled roundtrip process and filter is applied on the BSEG dimensions, wrong filter values are used to construct MDX that returns list of elements for elements to threads allocation.

Solution

Fixed wrong assignments of filters in case of FIN BSEG 3 or FIN BSEG 4 are used as filters and the dimension is used for parallel processing.

#510 - CoA sync process causes existing subset to lose alias assigned

Symptom

Alias assigned to a subset in a dimension that is created by CoA framework by sync process will be lost after the sync process is run with pRebuildOption = 2.

Solution

Missing code to set attribute type to alias was added to handle situation when Description attribute is processed and Code and Description is created automatically.

#332 - Copy roundtrip configuration should create a new config if it doesn't exist

Symptom

Copy process }APQ.C3.FIN.Cub.Roundtrip Control.Copy will exit with error when parameter pTgtRoundtripConfiguration is set to element that doesn't exist in roundtrip configuration dimension }APQ C3 FIN Roundtrip Configuration. Subsequently the error message is not properly routed to message cube }APQ Process Response Message.

Solution

Element representing target roundtrip configuration will be created in case it doesn't exist in dimension }APQ C3 FIN Roundtrip Configuration. Proper message routing was added to the process, messages are stored into }APQ Process Response Message cube.

#507 - Fix parallel processing in roundtrip processes transferring data between operative and planning cubes

Symptoms

Parallel enabled processes need to make sure correct separation of thread working space when parallel processing is enabled on dimensions that have mapping based on attribute value. Typically this applies to relation between FIN BSEG and FIN BSEG Plan dimensions where relation is based on attributes linking elements in operative and planning dimensions. Type of the relation is N:1 (operative to planning) and 1:1 (planning to operative). Separation of thread working space is a safeguard that prevents any 2 threads to share elements of parallel enabled dimension from source and/or destination, so correct data transfer is assured.

Solution

The elements will be mapped to threads first through FIN BSEG Plan dimension when parallel processing is enabled on any of FIN BSEG 1 - FIN BSEG 4 dimensions. After each thread has allocated its planning elements it will allocate FIN BSEG elements by applying mapping from FIN BSEG to FIN BSEG Plan elements that have been firstly allocated. This will make sure no elements in both source and target parallel enabled dimensions are shared between any 2 threads.

#516 - Update parameter pUpdateHierarchies description in }APQ.C3.Dim.CoAMap.PlanDimension.Update

Requirement

Description of parameter pUpdateHierarchies needs to be updated as value 2 is no longer supported by process }APQ.C3.Dim.CoAMap.Update.Hierarchies.KPI called from }APQ.C3.Dim.CoAMap.PlanDimension.Update.

Solution

Parameter description has been updated.

#514 - Review process ​}APQ.C3.Dim.PlanDimension.Update

Symptoms

The process generates wrong NA element into a planning dimension FIN BSEG 1 Plan: NA FIN BSEG 1. No messaging is used, process checking mappings doesn't use messaging either. Missing pRebuildOption like in CoA solution due to changes of element types requiring separate call to cleanup target dimension. Rollback changes to supply dimension name rather than index of BSEG.

Solution

#518 - Fix process }APQ.C3.Dim.CoAMap.SetFlags as pAddDummyAccounts has no effect

Requirement

Setting value of parameter pAddDummyAccounts has no effect in process }APQ.C3.Dim.CoAMap.SetFlags, dummy accounts are always created.

Solution

Added missing handler of pAddDummyAccounts parameter value, dummy accounts are added only in case pAddDummyAccounts is set to 1.

#517 - Fix processes updating KPI and Total GL Accounts rollups

Symptom:

When both }APQ.C3.Dim.CoAMap.Update.Hierarchies.GL and }APQ.C3.Dim.CoAMap.Update.Hierarchies.KPI processes are run from UX, the attempt to create temporary subsets fails due to invalid character being used in the temporary subset and view name (the character that causes the issue is comma due to conversion of timestamp based serial). The code generating temporary view and subset names obscured standard code from code template.

Solution

Code obscuring temporary subset and view names was removed, original code from standard code template is used.

#520 - Process updating plan dimension is failing if pRecreateAttribute is set to 1

Symptoms

When at least one attribute is added between two runs of plan dimension update process, the process }APQ.C3.Dim.CoAMap.PlanDimension.Update will output following errors for every new attribute: "FIN OCoA",Data Source line (1) Error: MetaData procedure line (119): Component Element "Description short" not found.

Solution

Code was added to handle situation when new attributes are added between two runs of the plan dimension update process.

#522 - Skip processing of inconsistent CoA IDs

Symptoms

Some CoA processes are prone to errors due to inconsistencies of CoA maintained dimension between FIN CoA ID, }APQ C3 FIN CoA Map and }APQ C3 FIN CoA Map Attributes.

Solution

Checks were added to make sure settings of dimensions maintained in CoA are consistent. In case inconsistencies are found the dimension processing is skipped and warning is output to both system server log and message cube.

#515 - Splicer: Fix Splicer wrappers to support paths containing whitespaces

Symptoms

Calls to Splicer from wrapper processes }APQ.UX.Splicer.Splice.All and }APQ.UX.Splicer.Desplice.All will fail with command line error in cases when path to Splicer contains whitespace characters.

Solution

Path to splicer that is generated in wrappers to point to executable batch file are enclosed in double quotes (applies to both Windows and Linux) to make sure OS picks up the path to the file properly. Additionally support of Linux was added to both processes.

#521 - Subset issue for leaf level accounts in CoA Map

Symptoms

Users are not able to use picklist of values for certain KPIs and fixed accounts as subsets that are used as a source for picklist are not dynamic and not refreshing with changes to dimensions maintained with the CoA framework.

Solution

Leaf level picklist Leaf Elements are now using dynamic subsets based on ElType in }APQ C3 FIN CoA Map cube for given template dimension. Only those elements in a template dimension that have ElType set to N are taken into account in the Leaf Elements subset. Subsets are created during import processes or during plan dimension update. The migration script is available in a package script to generate the subsets for all existing template dimensions that are available in the CoA framework during the update.

#526 - CoA selection of mapping levels should allow to pick more than 8

Requirement

Currently there is a limitation on number of available levels in picklists for Mapping Level and Mapping Level Override in }APQ C3 FIN CoA Map cube. The limit should be up to level of current element in the template dimension.

Solution

Currently both Mapping Level and Mapping Level Override support selection of up to 31 levels, maximal value is always set to level of current CoA element in the template dimension.

#530 - Fix MDX to select steps in }APQ.C3.FIN.Roundtrip.Main

Symptoms

MDX that selects roundtrip steps to be executed for selected roundtrip configuration contains hardcoded reference to PLAN-1 instead of pRoundtripConfiguration value.

Solution

MDX was corrected to use pRoundtripConfiguration instead of hardcoded value.

#541 - Preset Total GL Accounts and other mandatory accounts ElType in CoA

Symptoms

Rollup Total GL Accounts is empty in actual dimension after syncing, but the same rollup in template dimension is properly populated with all leaf level elements. Issue will appear as soon as empty value of ElType for Total GL Accounts is set in }APQ C3 FIN CoA Map for the dimension.

Solution

All mandatory accounts like FIN OCoA Rollups, Reporting Rollups, Total GL Accounts need to have ElType set to C in }APQ C3 FIN CoA Map cube to make sure detection of element type change will be suppressed. Similarly NA FIN OCoA element ElType must be always set to N. Code was added to process }APQ.C3.Dim.CoAMap.Update.Hierarchies.GL to ensure above ElType assignments. The process is called from }APQ.C3.Dim.CoAMap.SetFlags so correct chaining of the prerequisite is assured before synchronization of the dimension.

#558 - Fix APQ.C3.FIN.Cub.GeneralLedger.Update.OB.From.CB to set retained earnings account after all tests passed

Symptom

The process will output the following error message when attempting to extract retained earnings account in the case when the retained earnings account is not set up underneath the C3_EQ_RETEARN fixed account. Error: Prolog procedure line (211): Numeric index "1" out of range for dimension:subset "FIN OCoA:}TI_src_APQ.C3.FIN.Cub.GeneralLedger.Update.OB.From.CB_20210513111334_236"

Solution

Extraction of retained earnings account was moved to a section following after all tests have been done.

#551 - Fix rule mirroring ElType in }ElementAttributes_FIN CoA Map

Symptom

No values of ElType attribute in FIN CoA Map:FIN OCoA are visible despite ElType values are properly defined in mapping cube }APQ C3 FIN CoA Map.

Solution

Value of ElType is mirrored from String to AttrValue as rule in }ElementAttributes_FIN CoA Map is accessing ElType attribute value stored in context of AttrValue measure in }APQ C3 FIN CoA Map, but ElType is stored in context of String measure. This solution was required to avoid a chance to change the value of AttrValue that could potentially lead to the inconsistent entry of ElType in two different places.

#556 - Fix }APQ.C3.Dim.Create.UniqHierarchy to clear target dimension before update

Requirement

The FIN BSEG Unique Hierarchy dimension needs to be cleared before being updated to make sure the correct structure is maintained.

Solution

The target dimension is always cleared before updates.

#568 - Fix planning cubes load processes

Requirement

The following needs to be refactored in planning cubes load processes:

  • fix rule detach/reattach
  • minimal starting month is M00 for }APQ.C3.FIN.Cub.BalanceSheetPlanning.Update.From.GeneralLedger
  • replace MDX with GENERATE logic when creating a source list of FIN OCoA accounts with a loop

Solution

Condition enabling rule detachment/reattachment feature was fixed, feature is enabled only when pMaxThreads is set to 1. The process now accepts M00 as a valid parameter value of pMonthFrom and pMonthTo parameters in }APQ.C3.FIN.Cub.BalanceSheetPlanning.Update.From.GeneralLedger. MDX creating a list of source FIN OCoA accounts was replaced with a WHILE loop logic, significant processing time improvement was gained by this change.

#566 - Fix }APQ.C3.Dim.CoAMap.SetFlags to properly handle C to N reverse mapping

Requirement

Process }APQ.C3.Dim.CoAMap.SetFlags should be handling cases when reverse mapping from FIN PCoA to FIN OCoA would map leaf level node to a consolidated node. In this case a first leaf level node descending from the node in operative dimension should be set in the reverse mapping.

Solution

First available leaf level node descending from consolidated node in FIN OCoA will be used in cases when reverse mapping would map leaf level node in FIN PCoA to a consolidated level node in FIN OCoA.

#565 - Fix parallel-enabled roundtrip processes

Symptoms

In all parallel-enabled roundtrip processes, fix the following:

  • Fix behavior when time threshold is watched and run on a single thread is requested - in this case, the thread should work as a worker thread and no watching should be employed
  • check the usage of FIN BSEG 1 - FIN BSEG 4 (FIN BSEG 1 Plan - FIN BSEG 4 Plan) or FIN Company dimensions in }APQ C3 DIN BSEG Control cube - if any of FIN BSEG 1 - FIN BSEG 4 (FIN BSEG 1 Plan - FIN BSEG 4 Plan) or FIN Company dimensions are not marked as Used in the control cube, then it should not be possible to run parallel processing on them
  • Fix messaging - main thread reports 0 processed cells when running in a single thread mode
  • Fix rule detachment/reattachment check that currently blocks the function, rule detachment and reattachment should be only enabled when pMaxThreads is set to 1
  • Enable code that activates threads only when pMaxThreads > 1
  • Skip data processing if the worker thread has not allocated any elements in its working space
  • Allow processing of multiple versions in all processes that originally did not allow it

Solution

Processing of multiple versions at the same time is allowed, parameter pYear must be supplied for processes loading data from planning cubes when multiple versions processing is required, as default pYear value in case of empty parameter value is taken from }APQ C3 FIN Planning Param Control cube for a specific version. Error is output when FIN BSEG 1 - FIN BSEG 4 (FIN BSEG 1 Plan - FIN BSEG 4 Plan) is not set as Used in }APQ C3 FIN BSEG Control cube and parallelization is required on the dimensions. Watching thread mode is disabled when pMaxThreads is set to 1 and Maximum run time allowed for parallel processing is non-zero in }APQ C3 Settings. Record Count reporting was fixed for single thread mode. Rule detachment/reattachment is allowed only when pMaxThreads is set to 1. Activation of worker threads is enabled only when pMaxThreads > 1. Worker thread will skip processing when it has allocated no elements in its working space.

0 Comments

Add your comment

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.