From 7c7d8abdd6bd2f4a7f72b8ea869f058ddb298864 Mon Sep 17 00:00:00 2001 From: lotsaram Date: Wed, 7 Aug 2019 10:24:08 +0200 Subject: [PATCH 1/6] Fix for #64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix for #64 CellIsUpdateable check on source and not target cell results in skipüing copy of rule derived attribute values. --- main/}bedrock.dim.clone.pro | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/main/}bedrock.dim.clone.pro b/main/}bedrock.dim.clone.pro index 7615408..6e37a4f 100644 --- a/main/}bedrock.dim.clone.pro +++ b/main/}bedrock.dim.clone.pro @@ -4,7 +4,7 @@ 586,"}Cubes" 585,"}Cubes" 564, -565,"rge2Tys4=;lhvYZuM0Z``ZacOR>kJe]H@;dY2?i3;M8WpMW0@RS?lGOc1hszA_MeLnyUZFN6CHeX@z4=Uv?phj_rYmc912^ccpp2gk1vz`lzi@r?R2iRCCKJz^lEai@RszG0UB:x\MlfVQbUbmffcu1j]jA1UHtBOEG" 559,1 928,0 593, @@ -18,7 +18,7 @@ 566,0 567,"," 588,"." -589, +589,"," 568,"""" 570, 571,All @@ -218,7 +218,7 @@ DatasourceDimensionSubset = 'ALL'; ### Replicate Attributes ### # Note: DType on Attr dim returns "AS", "AN" or "AA" need to strip off leading "A" sAttrDim = '}ElementAttributes_' | pSrcDim; -sAttrTragetDim = '}ElementAttributes_' | pTgtDim; +sAttrTargetDim = '}ElementAttributes_' | pTgtDim; If( pAttr = 1 & DimensionExists( sAttrDim ) = 1 ); nNumAttrs = DimSiz( sAttrDim ); @@ -227,9 +227,9 @@ If( pAttr = 1 & DimensionExists( sAttrDim ) = 1 ); sAttrName = DimNm( sAttrDim, nCount ); sAttrType = SubSt(DType( sAttrDim, sAttrName ), 2, 1 ); - If ( DimensionExists( sAttrTragetDim ) = 0); + If ( DimensionExists( sAttrTargetDim ) = 0); AttrInsert(pTgtDim,'',sAttrName,sAttrType ); - ElseIF(DimIx(sAttrTragetDim, sAttrName) = 0); + ElseIF(DimIx(sAttrTargetDim, sAttrName) = 0); AttrInsert(pTgtDim,'',sAttrName,sAttrType ); Endif; @@ -295,7 +295,7 @@ If( pAttr = 1 & DimensionExists( sAttrDim ) = 1 ); While( nCount <= nNumAttrs ); sAttrName = DimNm( sAttrDim, nCount ); sAttrType = SubSt( DTYPE( sAttrDim, sAttrName ), 2, 1 ); - If( CellIsUpdateable( sAttrDim, vEle, sAttrName ) = 1 ); + If( CellIsUpdateable( sAttrTargetDim, vEle, sAttrName ) = 1 ); If( sAttrType @= 'S' % sAttrType @= 'A' ); sAttrVal = AttrS( pSrcDim, vEle, sAttrName ); If( sAttrVal @<> '' ); From 815070de415fa752b7085347222a3b96baf92679 Mon Sep 17 00:00:00 2001 From: lotsaram Date: Wed, 7 Aug 2019 11:16:36 +0200 Subject: [PATCH 2/6] Update }bedrock.cube.view.delete.pro Fix for multiple view conditions not being trimmed if user passes spaces around delimiter character --- main/}bedrock.cube.view.delete.pro | 33 ++++++++++++++---------------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/main/}bedrock.cube.view.delete.pro b/main/}bedrock.cube.view.delete.pro index 63ce1be..13385ae 100644 --- a/main/}bedrock.cube.view.delete.pro +++ b/main/}bedrock.cube.view.delete.pro @@ -4,7 +4,7 @@ 586, 585, 564, -565,"zCOX;eTa_mj7p]c1_G3\N\EPiraSDl6YkkFw\?Pc3T?NlaPScw5WR;Ag@dvX]wgG09issOpr4SXkrmrHDD?P>kSjlGn_\LBow_BAP73dWYz`N^P[OnJ5b;\PJOyyyUOPrvuOvZ3V;f@OvaA:eCQDcLxF1lg2VWQ>juq?:MTDw=r6k>pKwZpr_;fNvcB31XI" +565,"rR`QWvY`tLc1srjJLfa;BMHITo8pXtSpjZGkD;k=evHCMh5G68=6aLr5lQaL@26J6l;RfELztD06JvoLh1@L\\Y5iaE?yJ9;bctMP0W>rObva_poOb4M[fKwVF:SVQlvhQY=;zo5EmFXxpNXEdH8sbed1GVqP\1nl]\5\:EV[>G" 559,1 928,0 593, @@ -18,7 +18,7 @@ 566,0 567,"," 588,"." -589, +589,"," 568,"""" 570, 571, @@ -38,7 +38,7 @@ pDelim 590,4 pLogOutput,0 pCube,"" -pView,"}Bedrock*" +pView,"}bedrock*" pDelim,"&" 637,4 pLogOutput,"Optional: write parameters and action summary to server message log (Boolean True = 1)" @@ -52,7 +52,7 @@ pDelim,"Delimiter Character (default value if blank = '&')" 581,0 582,0 603,0 -572,226 +572,223 #Region CallThisProcess # A snippet of code provided as an example how to call this process should the developer be working on a system without access to an editor with auto-complete. If( 1 = 0 ); @@ -146,17 +146,16 @@ EndIf; # Validate delimiter If( Trim( pDelim ) @= '' ); - pDelim = '&'; + pDelim = '&'; EndIf; - ### Iterate through cubes ### # If no cube has been specified then process all cubes If( Trim( pCube ) @= '' ); - sMessage = 'No cube specified.'; - nErrors = nErrors + 1; - LogOutput( cMsgErrorLevel, Expand( cMsgErrorContent ) ); + sMessage = 'No cube specified.'; + nErrors = nErrors + 1; + LogOutput( cMsgErrorLevel, Expand( cMsgErrorContent ) ); EndIf; ### Check for errors before continuing @@ -180,7 +179,7 @@ While( nCubeDelimIndex <> 0 ); # Create subset of cubes using Wildcard to loop through cubes in pCube with wildcard sCubeExp = '"'|sCube|'"'; - sMdxPart = '{TM1FILTERBYPATTERN( TM1SUBSETALL( [}Cubes] ), '| sCubeExp | ')}'; + sMdxPart = Expand('{TM1FILTERBYPATTERN( TM1SUBSETALL( [}Cubes] ), %sCubeExp% )}'); IF( sMdx @= ''); sMdx = sMdxPart; ELSE; @@ -214,10 +213,10 @@ EndIf; While( nViewDelimIndex <> 0 ); nViewDelimIndex = Scan( sDelimiter, sViews ); If( nViewDelimIndex = 0 ); - sView = sViews; + sView = Trim( sViews ); Else; - sView = SubSt( sViews, 1, nViewDelimIndex - 1 ); - sViews = SubSt( sViews, nViewDelimIndex + Long( sDelimiter ), Long( sViews ) ); + sView = Trim( SubSt( sViews, 1, nViewDelimIndex - 1 ) ); + sViews = Trim( SubSt( sViews, nViewDelimIndex + Long( sDelimiter ), Long( sViews ) ) ); EndIf; # Check if a wildcard has been used to specify the view name. @@ -232,10 +231,10 @@ EndIf; # If it has then iterate through '}Views_CubeName' dimension Else; sDimViews = '}Views_' | sCurrentCube ; - If( DimIx( '}Dimensions', sDimViews ) <>0 ); + If( DimensionExists( sDimViews ) = 1 ); # Create subset of views using Wildcard to loop through views in current cube sViewExp = '"'|sView|'"'; - sMdxViewPart = '{TM1FILTERBYPATTERN( {TM1SUBSETALL([ ' |sDimViews| '])},'| sViewExp | ')}'; + sMdxViewPart = Expand('{TM1FILTERBYPATTERN( {TM1SUBSETALL([%sDimViews%])}, %sViewExp% )}'); IF( sMdxView @= ''); sMdxview = sMdxViewPart; ELSE; @@ -256,7 +255,7 @@ EndIf; # Validate attribute name in sDim If( ViewExists( sCurrentCube, sViewEle ) = 1 ); If( pLogOutput = 1 ); - LogOutput( 'INFO', Expand( ' Destroying view %sViewEle% in cube %sCurrentCube%.' ) ); + LogOutput( 'INFO', Expand( 'Destroying view %sViewEle% in cube %sCurrentCube%.' ) ); EndIf; ViewDestroy( sCurrentCube, sViewEle ); Endif; @@ -276,8 +275,6 @@ EndIf; nCountCubes = nCountCubes - 1; End; - - ### End Prolog ### 573,4 From 953edb8168a38bcc07414407205d174377b191ed Mon Sep 17 00:00:00 2001 From: lotsaram Date: Wed, 7 Aug 2019 12:11:39 +0200 Subject: [PATCH 3/6] Update }bedrock.cube.view.create.pro Investigation of #65 No fix done but some minor formatting changes --- main/}bedrock.cube.view.create.pro | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/main/}bedrock.cube.view.create.pro b/main/}bedrock.cube.view.create.pro index 4be9a7c..dc0c552 100644 --- a/main/}bedrock.cube.view.create.pro +++ b/main/}bedrock.cube.view.create.pro @@ -4,7 +4,7 @@ 586, 585, 564, -565,"lOLloJRVm9j4aHn2DWk=cLnMTH^Zhk\L8p8EuM\\@pN\iTMV6CHmLm6ekq^8\ITvPGg4[?Xg1mQM`Z7cLVg[8[^:zFS_BhbW?\g[Y@TG3qxUldMirL1V7b4P^b9M4YiwIX>juL^t?c;@pf=3;6dLJ0Tc?1hbu;kv`DKAjh0s@\X8dt1KWs4xBDdWOv48[h]z" +565,"wDLN9LJ2S_4>solXsZ@a\JnI_zi_[C4Z8WqJQuYnP3;;mgUBc?Vj0NuV5b]Gnw;870bfM;cF7:7qrYc=MNf`v;bTR>IyjjiunKEd3I@SX 1 ); - sMessage = 'Unable to add all elements on subset ' | sSubset | ' on dimension ' | sCubeDimName; + sMessage = Expand('Unable to add all elements on subset %sSubset% in dimension %sCubeDimName%'); nErrors = nErrors + 1; LogOutput( cMsgErrorLevel, Expand( cMsgErrorContent ) ); EndIf; @@ -228,7 +228,7 @@ If( ViewExists( pCube, pView ) = 1 ); End; Else; ### Create View ### - sMessage = 'Creating view ' | pView | ' on cube ' | pCube; + sMessage = Expand('Creating view %pView% in cube %pCube%'); LogOutput( cMsgInfoLevel, Expand( cMsgInfoContent ) ); ViewCreate( pCube, pView, pTemp ); EndIf; @@ -297,12 +297,11 @@ WHILE (nChar <= nCharCount); nCount = 1; nDimensionIndex = 0; While( TabDim( pCube, nCount ) @<> '' ); - sCubeDimName = TabDim( pCube, nCount ); - IF( - sDimension @= sCubeDimName); - nDimensionIndex = nCount; - ENDIF; - nCount = nCount + 1; + sCubeDimName = TabDim( pCube, nCount ); + If( sDimension @= sCubeDimName ); + nDimensionIndex = nCount; + EndIf; + nCount = nCount + 1; End; If( nDimensionIndex = 0 ); @@ -320,7 +319,7 @@ WHILE (nChar <= nCharCount); EndIf; # Attach to the view - ViewSubsetAssign(pCube, pView, sDimension, sSubset); + ViewSubsetAssign( pCube, pView, sDimension, sSubset ); nIndex = 1; sLastDelim = sChar; From 28ba30103d01cf60b6f59cb27e69bcde001cf252 Mon Sep 17 00:00:00 2001 From: lotsaram Date: Wed, 7 Aug 2019 15:41:15 +0200 Subject: [PATCH 4/6] hier.unwind fix & enhancements (#71) fix for #62 #66 --- main/}bedrock.hier.unwind.pro | 115 +++++++++++++++++----------------- 1 file changed, 59 insertions(+), 56 deletions(-) diff --git a/main/}bedrock.hier.unwind.pro b/main/}bedrock.hier.unwind.pro index a12e56a..0495e28 100644 --- a/main/}bedrock.hier.unwind.pro +++ b/main/}bedrock.hier.unwind.pro @@ -4,7 +4,7 @@ 586,"}Cubes" 585,"}Cubes" 564, -565,"t2flrmVM[\hN0t\@GjDoaHtdIMDmZR;GkvN:yz^7_U\0aorWZQdMwXZL?l73^C2:F96Z_E7aAy]xzU\Z2wl>?1N=No3j?fi<[4<^`WFVHHSG@deL9@5Fitqtc03Q`E838n9lYOD1aT9zudi_Bsuy9Z9qqc3ZfzrLdqUp@gehvqt7Tr5^2Y=kswu;XnK:3e0`xPke1^Z0" +565,"j\niAJLLCGa;hA;GB<24KTbxJwtRgIg7OE]]rkt8WVtg@a[kwvu^Ukv4^\I;FsGT;J[6Z\zAR77XPQbnjorC`Ez?u3W0hAsSYlove\S\^B4xkbTg`tdPQF5^PNtz0: 0 ); + pConsol = HierarchyElementPrincipalName( pDim, pHier, pConsol ); + EndIf; + ### Turn-off Logging in the Attribute cube sAttrCube = '}ElementAttributes_' | pDim; If( CubeExists( sAttrCube ) = 1 ); @@ -206,22 +211,22 @@ If( Scan( '*', pDim ) = 0 & Scan( '?', pDim ) = 0 & Scan( pDelim, pDim ) = 0 & S CubeSetLogChanges( sAttrCube, 0 ); EndIf; - ### Set Descendent attribute value + ### Create Temp Descendent Attribute AttrDelete( pDim, cHierAttr ); AttrInsert( pDim, '', cHierAttr, 'S' ); - nElementIndex = 1; - nElementCount = ElementCount( pDim , pHier ); - While( nElementIndex <= nElementCount ); - sElement = ElementName( pDim, pHier, nElementIndex ); - If( ElementIsAncestor( pDim, pHier, pConsol, sElement ) = 1 ); - ElementAttrPutS( cAttrVal, pDim, pHier, sElement, cHierAttr ); - EndIf; - nElementIndex = nElementIndex + 1; - End; - ### Assign data source ### - If( pRecursive = 1); + If( pRecursive = 1); + # Set Descendent attribute value + nElementIndex = 1; + nElementCount = ElementCount( pDim , pHier ); + While( nElementIndex <= nElementCount ); + sElement = ElementName( pDim, pHier, nElementIndex ); + If( ElementIsAncestor( pDim, pHier, pConsol, sElement ) = 1 % pConsol @= sElement ); + ElementAttrPutS( cAttrVal, pDim, pHier, sElement, cHierAttr ); + EndIf; + nElementIndex = nElementIndex + 1; + End; # Assign Data Source DataSourceType = 'SUBSET'; DatasourceNameForServer = pDim|':'|pHier; @@ -229,16 +234,14 @@ If( Scan( '*', pDim ) = 0 & Scan( '?', pDim ) = 0 & Scan( pDelim, pDim ) = 0 & S DatasourceDimensionSubset = 'ALL'; Else; ### Remove direct children from the target consol ### - nChildren = ElementComponentCount( pDim, pHier, pConsol ); - While( nChildren > 0 ); - # Unwind direct children of target hierarchy only - sChild = ElementComponent( pDim, pHier, pConsol, nChildren ); - HierarchyElementComponentDelete( pDim, pHier, pConsol, sChild ); + If( ElementComponentCount( pDim, pHier, pConsol ) > 0 ); + sEleNext = ElementName( pDim, pHier, ElementIndex( pDim, pHier, pConsol ) + 1 ); If( pLogOutput = 1 ); - LogOutput( 'INFO', Expand( 'Deleting component "%sChild%" from consolidation %pConsol% in hierarchy "%pHier%" of "%pDim%" dimension.' ) ); + LogOutput( 'INFO', Expand( 'Deleting all components from consolidation %pConsol% in hierarchy "%pHier%" of "%pDim%" dimension.' ) ); EndIf; - nChildren = nChildren - 1; - End; + HierarchyElementDelete( pDim, pHier, pConsol ); + HierarchyElementInsert( pDim, pHier, sEleNext, pConsol, 'C' ); + EndIf; # No data source, straight to Epilog DataSourceType = 'NULL'; EndIf; @@ -246,19 +249,21 @@ If( Scan( '*', pDim ) = 0 & Scan( '?', pDim ) = 0 & Scan( pDelim, pDim ) = 0 & S ### If pConsol is "*" and there is no separator and wildcard in the pDim & pHier parameters then unwind the whole hierarchy ElseIf( Scan( '*', pDim ) = 0 & Scan( '?', pDim ) = 0 & Scan( pDelim, pDim ) = 0 & Scan( '*', pHier ) = 0 & Scan( '?', pHier ) = 0 & Scan( pDelim, pHier ) = 0 & Trim( pConsol ) @= '*' ); - # as pConsol is * wildcard it doesn't matter if recursive or not. We unwind everything - nCtrEle = ElementCount( pDim, pHier ); - While( nCtrEle > 0 ); + # as pConsol is * wildcard it doesn't matter if recursive or not. We unwind everything. As speed enhancement rather than removing children delete and add back C elements to empty children in one step (not steps = count of children) + nMaxEle = ElementCount( pDim, pHier ); + nCtrEle = 1; + While( nCtrEle <= nMaxEle ); sEle = ElementName( pDim, pHier, nCtrEle); - If( ElementType( pDim, pHier, sEle ) @= 'C' ); - nCtrChld = ElementComponentCount( pDim, pHier, sEle ); - While( nCtrChld > 0 ); - sChild = ElementComponent( pDim, pHier, sEle, nCtrChld ); - HierarchyElementComponentDelete( pDim, pHier, sEle, sChild ); - nCtrChld = nCtrChld - 1; - End; + If( ElementComponentCount( pDim, pHier, sEle ) > 0 ); + If( nCtrEle < nMaxEle ); + sEleNext = ElementName( pDim, pHier, nCtrEle + 1 ); + Else; + sEleNext = ''; + EndIf; + HierarchyElementDelete( pDim, pHier, sEle ); + HierarchyElementInsert( pDim, pHier, sEleNext, sEle, 'C' ); EndIf; - nCtrEle = nCtrEle - 1; + nCtrEle = nCtrEle + 1; End; # since hierarchy already fully unwound no subset; datasource = NULL @@ -381,24 +386,25 @@ Else; sMessage = Expand( 'Hierarchy "%sCurrHierName%" in Dimension "%sDim%" being processed....' ); LogOutput( 'INFO', Expand( cMsgInfoContent ) ); EndIf; - # Loop through consolidated elements in in pConsol + # Loop through consolidated elements in pConsol sEles = Trim( pConsol ); If( sEles @= '*' ); # no need for recursive call for ALL wildcard. We can just unwind whole hierarchy - nCtrEle = ElementCount( sDim, sCurrHierName ); - While( nCtrEle > 0 ); + nMaxEle = ElementCount( sDim, sCurrHierName ); + nCtrEle = 1; + While( nCtrEle <= nMaxEle ); sEle = ElementName( sDim, sCurrHierName, nCtrEle); - If( ElementType( sDim, sCurrHierName, sEle ) @= 'C' ); - nCtrChld = ElementComponentCount( sDim, sCurrHierName, sEle ); - While( nCtrChld > 0 ); - sChild = ElementComponent( sDim, sCurrHierName, sEle, nCtrChld ); - HierarchyElementComponentDelete( sDim, sCurrHierName, sEle, sChild ); - nCtrChld = nCtrChld - 1; - End; + If( ElementComponentCount( sDim, sCurrHierName, sEle ) > 0 ); + If( nCtrEle < nMaxEle ); + sEleNext = ElementName( sDim, sCurrHierName, nCtrEle + 1 ); + Else; + sEleNext = ''; + EndIf; + HierarchyElementDelete( sDim, sCurrHierName, sEle ); + HierarchyElementInsert( sDim, sCurrHierName, sEleNext, sEle, 'C' ); EndIf; - nCtrEle = nCtrEle - 1; + nCtrEle = nCtrEle + 1; End; - Else; # a delimited list of consolidations is given. Handle with recursive call and temp descendents attribute nDelimiterIndexB = 1; @@ -455,7 +461,7 @@ Else; EndIf; ### End Prolog ### -573,30 +573,27 #****Begin: Generated Statements*** #****End: Generated Statements**** @@ -466,23 +472,20 @@ EndIf; ## Check for errors in prolog ### If( nErrors <> 0 ); - ProcessBreak; + ProcessBreak; EndIf; ### Break all parent/child links below target consol ### -If(pConsol @= ''); +If( pConsol @= '*' ); sAttrVal = cAttrVal; Else; - sAttrVal = ElementAttrS( pDim, pHier, vElement, cHierAttr); + sAttrVal = ElementAttrS( pDim, pHier, vElement, cHierAttr ); EndIf; If( sAttrVal @= cAttrVal & ElementType( pDim, pHier, vElement ) @= 'C' & ElementComponentCount( pDim, pHier, vElement ) > 0 ); - nChildren = ElementComponentCount( pDim, pHier, vElement ); - While( nChildren > 0 ); - sChild = ElementComponent( pDim, pHier, vElement, nChildren ); - HierarchyElementComponentDelete( pDim, pHier , vElement, sChild ); - nChildren = nChildren - 1; - End; + sEleNext = ElementName( pDim, pHier, ElementIndex( pDim, pHier, vElement ) + 1 ); + HierarchyElementDelete( pDim, pHier, vElement ); + HierarchyElementInsert( pDim, pHier, sEleNext, vElement, 'C' ); EndIf; ### End Metadata ### From 2c8be33f4d0317a3289b7fcc64718f8d443b8461 Mon Sep 17 00:00:00 2001 From: lotsaram Date: Wed, 7 Aug 2019 16:51:34 +0200 Subject: [PATCH 5/6] Add support for sandboxes to cube.data processes #59 support for sandboxes --- main/}bedrock.cube.data.clear.pro | 43 ++++++++++---- main/}bedrock.cube.data.copy.intercube.pro | 46 ++++++++++----- main/}bedrock.cube.data.copy.pro | 65 ++++++++++++++-------- main/}bedrock.cube.data.export.pro | 39 +++++++++---- main/}bedrock.cube.data.import.pro | 34 ++++++++--- 5 files changed, 161 insertions(+), 66 deletions(-) diff --git a/main/}bedrock.cube.data.clear.pro b/main/}bedrock.cube.data.clear.pro index b2e7dbd..b57ea78 100644 --- a/main/}bedrock.cube.data.clear.pro +++ b/main/}bedrock.cube.data.clear.pro @@ -4,7 +4,7 @@ 586, 585, 564, -565,"sKxr\8D5j_XM?2qD1pHasqWk`HWt5@u[`:exSX[O?f?_N5yX@xQarJA4;9sTivOQ1juYke=?ImGZ?oJ3qkTmH]Y9eE?6UZq4hOY?Io^oDpDaSXV9=D?5A9= '' ); + If( ServerSandboxExists( pSandbox ) = 0 ); + SetUseActiveSandboxProperty( 0 ); + nErrors = nErrors + 1; + sMessage = Expand('Sandbox %pSandbox% is invalid for the current user.'); + LogOutput( cMsgErrorLevel, Expand( cMsgErrorContent ) ); + Else; + ServerActiveSandboxSet( pSandbox ); + SetUseActiveSandboxProperty( 1 ); + EndIf; +Else; + SetUseActiveSandboxProperty( 0 ); +EndIf; + ### Check for errors before continuing If( nErrors <> 0 ); ProcessBreak; @@ -282,7 +301,7 @@ While( nCubeDelimiterIndex <> 0 ); RunProcess( cThisProcName, 'pLogoutput', pLogoutput, 'pCube', pCube, 'pView', pView, 'pFilter', sFilter, 'pFilterParallel', '', 'pDimDelim', pDimDelim, 'pEleStartDelim', pEleStartDelim, - 'pEleDelim', pEleDelim, 'pCubeLogging', pCubeLogging, 'pTemp', pTemp + 'pEleDelim', pEleDelim, 'pCubeLogging', pCubeLogging, 'pTemp', pTemp, 'pSandbox', pSandbox ); nThreadElCounter = 0; sFilter = ''; @@ -293,7 +312,7 @@ While( nCubeDelimiterIndex <> 0 ); RunProcess( cThisProcName, 'pLogoutput', pLogoutput, 'pCube', pCube, 'pView', pView, 'pFilter', sFilter, 'pFilterParallel', '', 'pDimDelim', pDimDelim, 'pEleStartDelim', pEleStartDelim, - 'pEleDelim', pEleDelim, 'pCubeLogging', pCubeLogging, 'pTemp', pTemp + 'pEleDelim', pEleDelim, 'pCubeLogging', pCubeLogging, 'pTemp', pTemp, 'pSandbox', pSandbox ); ENDIF; Else; @@ -434,7 +453,7 @@ While( nCubeDelimiterIndex <> 0 ); RunProcess( cThisProcName, 'pLogoutput', pLogoutput, 'pCube', pCube, 'pView', pView, 'pFilter', sFilter, 'pFilterParallel', '', 'pDimDelim', pDimDelim, 'pEleStartDelim', pEleStartDelim, - 'pEleDelim', pEleDelim, 'pCubeLogging', pCubeLogging, 'pTemp', pTemp + 'pEleDelim', pEleDelim, 'pCubeLogging', pCubeLogging, 'pTemp', pTemp, 'pSandbox', pSandbox ); nThreadElCounter = 0; sFilter = ''; @@ -445,7 +464,7 @@ While( nCubeDelimiterIndex <> 0 ); RunProcess( cThisProcName, 'pLogoutput', pLogoutput, 'pCube', pCube, 'pView', pView, 'pFilter', sFilter, 'pFilterParallel', '', 'pDimDelim', pDimDelim, 'pEleStartDelim', pEleStartDelim, - 'pEleDelim', pEleDelim, 'pCubeLogging', pCubeLogging, 'pTemp', pTemp + 'pEleDelim', pEleDelim, 'pCubeLogging', pCubeLogging, 'pTemp', pTemp, 'pSandbox', pSandbox ); ENDIF; Else; diff --git a/main/}bedrock.cube.data.copy.intercube.pro b/main/}bedrock.cube.data.copy.intercube.pro index 8371281..f4da01a 100644 --- a/main/}bedrock.cube.data.copy.intercube.pro +++ b/main/}bedrock.cube.data.copy.intercube.pro @@ -4,7 +4,7 @@ 586,"Bedrock Source Cube" 585,"Bedrock Source Cube" 564, -565,"d0PFaZvxzZ:d?exd<_mcwxvHlDFZJ`e^Q?[WdEqs2l=Q1iTZF7OAcH=bpjFK3n9=3`L@Tx7qapxu9zDq;MMfih4R6<;OC3L0rpAA]np^bl^tbQ^oEuratBb<7NmYFXxZmQ\dR '' ); + If( ServerSandboxExists( pSandbox ) = 0 ); + SetUseActiveSandboxProperty( 0 ); + nErrors = nErrors + 1; + sMessage = Expand('Sandbox %pSandbox% is invalid for the current user.'); + LogOutput( cMsgErrorLevel, Expand( cMsgErrorContent ) ); + Else; + ServerActiveSandboxSet( pSandbox ); + SetUseActiveSandboxProperty( 1 ); + EndIf; +Else; + SetUseActiveSandboxProperty( 0 ); +EndIf; + ### Check for errors before continuing If( nErrors <> 0 ); ProcessBreak; @@ -1206,8 +1225,6 @@ WHILE (nChar <= nCharCount); EndIf; nElementCount = nElementCount + 1; - - sLastDelim = sChar; # Clear the word @@ -1265,7 +1282,7 @@ If( Scan( pEleStartDelim, pFilterParallel ) > 0 ); 'pSrcCube', pSrcCube, 'pFilter', sFilter, 'pFilterParallel', '', 'pTgtCube', pTgtCube, 'pMappingToNewDims', pMappingToNewDims, 'pSuppressConsol', pSuppressConsol, 'pSuppressRules', pSuppressRules, 'pZeroTarget', pZeroTarget, 'pZeroSource', pZeroSource, 'pFactor', pFactor, 'pDimDelim', pDimDelim, 'pEleStartDelim', pEleStartDelim, 'pEleDelim', pEleDelim, - 'pTemp', pTemp, 'pCubeLogging', pCubeLogging, 'pThreadMode', 1 + 'pTemp', pTemp, 'pCubeLogging', pCubeLogging, 'pSandbox', pSandbox, 'pThreadMode', 1 ); nThreadElCounter = 0; sFilter = ''; @@ -1277,7 +1294,7 @@ If( Scan( pEleStartDelim, pFilterParallel ) > 0 ); 'pSrcCube', pSrcCube, 'pFilter', sFilter, 'pFilterParallel', '', 'pTgtCube', pTgtCube, 'pMappingToNewDims', pMappingToNewDims, 'pSuppressConsol', pSuppressConsol, 'pSuppressRules', pSuppressRules, 'pZeroTarget', pZeroTarget, 'pZeroSource', pZeroSource, 'pFactor', pFactor, 'pDimDelim', pDimDelim, 'pEleStartDelim', pEleStartDelim, 'pEleDelim', pEleDelim, - 'pTemp', pTemp, 'pCubeLogging', pCubeLogging, 'pThreadMode', 1 + 'pTemp', pTemp, 'pCubeLogging', pCubeLogging, 'pSandbox', pSandbox, 'pThreadMode', 1 ); ENDIF; DataSourceType = 'NULL'; @@ -1316,8 +1333,9 @@ Else; 'pDimDelim', pDimDelim, 'pEleStartDelim', pEleStartDelim, 'pEleDelim', pEleDelim, - 'pTemp', pTemp , - 'pCubeLogging', pCubeLogging + 'pTemp', pTemp, + 'pCubeLogging', pCubeLogging, + 'pSandbox', pSandbox ); IF(nRet <> 0); diff --git a/main/}bedrock.cube.data.copy.pro b/main/}bedrock.cube.data.copy.pro index 258d6cf..27ead6e 100644 --- a/main/}bedrock.cube.data.copy.pro +++ b/main/}bedrock.cube.data.copy.pro @@ -4,7 +4,7 @@ 586,"zzSYS 50 Dim Cube" 585,"zzSYS 50 Dim Cube" 564, -565,"zZuP@6RSYzE8JQRQ]l=2Sl1o1CHJyzb2t8TWxG\_d[2HJBthhH:>m6ro2AR@a`XY<[WkF7w9D>MIflpoum0TI2sFc" +565,"pj7f8U6xC '' & TRIM( pMappingDelim) @= ''); - nErrors = nErrors + 1; - sMessage = 'Mapping Delimiter & Element Mapping can not both be empty.'; - LogOutput( cMsgErrorLevel, Expand( cMsgErrorContent ) ); + nErrors = nErrors + 1; + sMessage = 'Mapping Delimiter & Element Mapping can not both be empty.'; + LogOutput( cMsgErrorLevel, Expand( cMsgErrorContent ) ); Endif; +# Validate Sandbox +If( TRIM( pSandbox ) @<> '' ); + If( ServerSandboxExists( pSandbox ) = 0 ); + SetUseActiveSandboxProperty( 0 ); + nErrors = nErrors + 1; + sMessage = Expand('Sandbox %pSandbox% is invalid for the current user.'); + LogOutput( cMsgErrorLevel, Expand( cMsgErrorContent ) ); + Else; + ServerActiveSandboxSet( pSandbox ); + SetUseActiveSandboxProperty( 1 ); + EndIf; +Else; + SetUseActiveSandboxProperty( 0 ); +EndIf; + ### Check for errors before continuing If( nErrors <> 0 ); ProcessBreak; @@ -1120,7 +1139,7 @@ If( Scan( pEleStartDelim, pFilterParallel ) > 0 ); 'pFilter', sFilter, 'pFilterParallel', '', 'pEleMapping', pEleMapping, 'pMappingDelim', pMappingDelim, 'pDimDelim', pDimDelim, 'pEleStartDelim', pEleStartDelim, 'pEleDelim', pEleDelim, 'pFactor', pFactor, 'pSuppressRules', pSuppressRules, 'pCumulate', pCumulate, - 'pZeroTarget', pZeroTarget, 'pZeroSource', pZeroSource, 'pTemp', pTemp, 'pCubeLogging', pCubeLogging, 'pThreadMode', 1 + 'pZeroTarget', pZeroTarget, 'pZeroSource', pZeroSource, 'pTemp', pTemp, 'pCubeLogging', pCubeLogging, 'pSandbox', pSandbox, 'pThreadMode', 1 ); nThreadElCounter = 0; sFilter = ''; @@ -1133,7 +1152,7 @@ If( Scan( pEleStartDelim, pFilterParallel ) > 0 ); 'pFilter', sFilter, 'pFilterParallel', '', 'pEleMapping', pEleMapping, 'pMappingDelim', pMappingDelim, 'pDimDelim', pDimDelim, 'pEleStartDelim', pEleStartDelim, 'pEleDelim', pEleDelim, 'pFactor', pFactor, 'pSuppressRules', pSuppressRules, 'pCumulate', pCumulate, - 'pZeroTarget', pZeroTarget, 'pZeroSource', pZeroSource, 'pTemp', pTemp, 'pCubeLogging', pCubeLogging, 'pThreadMode', 1 + 'pZeroTarget', pZeroTarget, 'pZeroSource', pZeroSource, 'pTemp', pTemp, 'pCubeLogging', pCubeLogging, 'pSandbox', pSandbox, 'pThreadMode', 1 ); ENDIF; DataSourceType = 'NULL'; @@ -1152,8 +1171,9 @@ Else; 'pDimDelim', pDimDelim, 'pEleStartDelim', pEleStartDelim, 'pEleDelim', pEleDelim, - 'pCubeLogging', pCubeLogging , - 'pTemp', pTemp + 'pCubeLogging', pCubeLogging, + 'pTemp', pTemp, + 'pSandbox', pSandbox ); IF(nRet <> 0); @@ -1655,7 +1675,7 @@ ElseIf( nDimensionCount = 27 ); ### End Data ### -575,52 +575,53 #****Begin: Generated Statements*** #****End: Generated Statements**** @@ -1678,7 +1698,8 @@ If( nThreadMode <> 0 ); 'pEleStartDelim', pEleStartDelim, 'pEleDelim', pEleDelim, 'pTemp', pTemp, - 'pCubeLogging', pCubeLogging + 'pCubeLogging', pCubeLogging, + 'pSandbox', pSandbox ); EndIf; diff --git a/main/}bedrock.cube.data.export.pro b/main/}bedrock.cube.data.export.pro index 9919072..7c64259 100644 --- a/main/}bedrock.cube.data.export.pro +++ b/main/}bedrock.cube.data.export.pro @@ -4,7 +4,7 @@ 586,"}APQ Staging TempSource" 585,"}APQ Staging TempSource" 564, -565,"aaYxNe6j>PCV?WGA64n0LbGktX\yf`>or_G4Upm7=A16yA;Wl68r40QIlYpC`H_gcm7p]aiL3rRYT1;RyrJVx`eCz]GHh4HJn[>`]JSSKI;_l^shyy1ZbBiy;kt?Guexs;BMfZftrDaazHY^b5nCyqaPfcd\xGKV=W9xNp]MIYWcDEbMmtD38vzi=\>9NEz:TVv3L=>Mbs\KTPT`Y93`umL7Twnj1zMJb:2MF?5BIRzcGv8AY6`R4E8W0yr8fpiTyZ3Xxd6sbsZLCJIYw==xEPrzTK[>D3SLh:2xskPsEJ^R4Y4[FFi^V0Kt]A5BbC_iS>B[O=]B0UNhCFOYQ3oAI6Zf\>6:yFM" 559,1 928,0 593, @@ -18,14 +18,14 @@ 566,0 567,"," 588,"." -589, +589,"," 568,"""" 570,}TI_Dummy_View 571, 569,0 592,0 599,1000 -560,20 +560,21 pLogoutput pCube pView @@ -46,7 +46,8 @@ pFileName pDelim pQuote pTitleRecord -561,20 +pSandbox +561,21 1 2 2 @@ -67,7 +68,8 @@ pTitleRecord 2 2 1 -590,20 +2 +590,21 pLogoutput,0 pCube,"" pView,"" @@ -88,7 +90,8 @@ pFileName,"" pDelim,"," pQuote,"""" pTitleRecord,1 -637,20 +pSandbox,"" +637,21 pLogoutput,"Optional: write parameters and action summary to server message log (Boolean True = 1)" pCube,"Required: cube name" pView,"Optional: Temporary view name" @@ -109,6 +112,7 @@ pFileName,"Optional: Export Filename (If Left Blank Defaults to cube_export.csv) pDelim,"Optional: AsciiOutput delimiter character (Default=comma, exactly 3 digits = ASCII code)" pQuote,"Optional: AsciiOutput quote character (Accepts empty quote, exactly 3 digits = ASCII code)" pTitleRecord,"Optional: Include Title Record in Export File? (Boolean 0=false, 1=true, Default=1)" +pSandbox,"OPTIONAL: To use sandbox not base data enter the sandbox name (invalid name will result in process error)" 577,101 V1 V2 @@ -722,7 +726,7 @@ VarType=32 ColType=827 VarType=32 ColType=827 VarType=32 ColType=827 603,0 -572,331 +572,346 #Region CallThisProcess # A snippet of code provided as an example how to call this process should the developer be working on a system without access to an editor with auto-complete. If( 1 = 0 ); @@ -733,7 +737,7 @@ If( 1 = 0 ); 'pSuppressZero', 1, 'pSuppressConsol', 1, 'pSuppressRules', 1, 'pZeroSource', 0, 'pCubeLogging', 0, 'pTemp', 1, 'pFilePath', '', 'pFileName', '', - 'pDelim', ',', 'pQuote', '"', 'pTitleRecord', 1 + 'pDelim', ',', 'pQuote', '"', 'pTitleRecord', 1, 'pSandbox', pSandbox ); EndIf; #EndRegion CallThisProcess @@ -927,6 +931,21 @@ Else; EndIf; EndIf; +# Validate Sandbox +If( TRIM( pSandbox ) @<> '' ); + If( ServerSandboxExists( pSandbox ) = 0 ); + SetUseActiveSandboxProperty( 0 ); + nErrors = nErrors + 1; + sMessage = Expand('Sandbox %pSandbox% is invalid for the current user.'); + LogOutput( cMsgErrorLevel, Expand( cMsgErrorContent ) ); + Else; + ServerActiveSandboxSet( pSandbox ); + SetUseActiveSandboxProperty( 1 ); + EndIf; +Else; + SetUseActiveSandboxProperty( 0 ); +EndIf; + # Jump to Epilog if any errors so far IF ( nErrors > 0 ); DataSourceType = 'NULL'; @@ -975,7 +994,7 @@ If( Scan( pEleStartDelim, pFilterParallel ) > 0 ); 'pSuppressZero', pSuppressZero, 'pSuppressConsol', pSuppressConsol, 'pSuppressRules', pSuppressRules, 'pZeroSource', pZeroSource, 'pCubeLogging', pCubeLogging, 'pTemp', pTemp, 'pFilePath', pFilePath, 'pFileName', sFileName, - 'pDelim', pFieldDelim, 'pQuote', pQuote, 'pTitleRecord', pTitleRecord + 'pDelim', pFieldDelim, 'pQuote', pQuote, 'pTitleRecord', pTitleRecord, 'pSandbox', pSandbox ); nThreadElCounter = 0; sFilter = ''; @@ -992,7 +1011,7 @@ If( Scan( pEleStartDelim, pFilterParallel ) > 0 ); 'pSuppressZero', pSuppressZero, 'pSuppressConsol', pSuppressConsol, 'pSuppressRules', pSuppressRules, 'pZeroSource', pZeroSource, 'pCubeLogging', pCubeLogging, 'pTemp', pTemp, 'pFilePath', pFilePath, 'pFileName', sFileName, - 'pDelim', pFieldDelim, 'pQuote', pQuote, 'pTitleRecord', pTitleRecord + 'pDelim', pFieldDelim, 'pQuote', pQuote, 'pTitleRecord', pTitleRecord, 'pSandbox', pSandbox ); ENDIF; DataSourceType = 'NULL'; diff --git a/main/}bedrock.cube.data.import.pro b/main/}bedrock.cube.data.import.pro index 4d31014..2eff3bc 100644 --- a/main/}bedrock.cube.data.import.pro +++ b/main/}bedrock.cube.data.import.pro @@ -4,7 +4,7 @@ 586,"C:\TM1\Bedrock\Data\Bedrock.Z.Cube.Placeholder.csv" 585,"C:\TM1\Bedrock\Data\Bedrock.Z.Cube.Placeholder.csv" 564, -565,"g21[6axa0R@Pqav;4L\qoikyj68>:<[J2Cu:7eLk7=Q@qSlVJgTr<`6bwlU@HoGS[tYwRBsPY8469]Boj40bUZkCuDKcqnafBGhN;Wzi72vm:CJHvt3l\0^5b[Y '' ); + If( ServerSandboxExists( pSandbox ) = 0 ); + SetUseActiveSandboxProperty( 0 ); + nErrors = nErrors + 1; + sMessage = Expand('Sandbox %pSandbox% is invalid for the current user.'); + LogOutput( cMsgErrorLevel, Expand( cMsgErrorContent ) ); + Else; + ServerActiveSandboxSet( pSandbox ); + SetUseActiveSandboxProperty( 1 ); + EndIf; +Else; + SetUseActiveSandboxProperty( 0 ); +EndIf; + ### Check for errors before continuing If( nErrors <> 0 ); ProcessBreak; @@ -463,7 +482,6 @@ IF( pDimension @<> ''); ENDIF; - ## Validate delimiter pDelimiter = TRIM(pDelim); If( pDelimiter @= '' ); From ccf7f5a9c4bf09126eb3522ed46629517c11e64f Mon Sep 17 00:00:00 2001 From: lotsaram Date: Wed, 7 Aug 2019 17:27:47 +0200 Subject: [PATCH 6/6] cube.data updates #41 #59 --- main/}bedrock.cube.data.clear.pro | 4 ++-- main/}bedrock.cube.data.copy.pro | 32 ++++++++++++++++++------------ main/}bedrock.cube.data.export.pro | 4 ++-- main/}bedrock.cube.data.import.pro | 4 ++-- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/main/}bedrock.cube.data.clear.pro b/main/}bedrock.cube.data.clear.pro index b57ea78..5946f3c 100644 --- a/main/}bedrock.cube.data.clear.pro +++ b/main/}bedrock.cube.data.clear.pro @@ -4,7 +4,7 @@ 586, 585, 564, -565,"dN@IaZD=a^IsbQ2SFgeFDCPbbZ\owByUEZ@F;X6`O6Yxoq\E\S7khkXXbz0TVT>OY?Io^oDpDaSXV9=D?5A9=8>7nIod=2eWNFMfg?[@6CuwVj@hxp2td^TxF]6ez>1=C;[=5JXB56xC7B?oqjuOSbRdPJq<0X>x:Jx]`dt33h6pk9UgBqX37c0ouLQp5VMUr`Wg', 'pDimDelim', '&', 'pEleStartDelim', '¦', 'pEleDelim', '+', - 'pFactor', 1, 'pSuppressRules', 1, 'pCumulate', 0, + 'pFactor', 1, 'pSuppressConsol', 1, 'pSuppressRules', 1, 'pCumulate', 0, 'pZeroTarget', 1, 'pZeroSource', 0, 'pTemp', 1, 'pCubeLogging', 0, 'pSandbox', '' ); @@ -487,7 +491,7 @@ cRandomInt = NumberToString( INT( RAND( ) * 1000 )); cTempSub = cThisProcName |'_'| cTimeStamp |'_'| cRandomInt; cMsgErrorLevel = 'ERROR'; cMsgErrorContent= 'Process:%cThisProcName% ErrorMsg:%sMessage%'; -cLogInfo = 'Process:%cThisProcName% run with parameters pCube:%pCube%, pSrcView:%pSrcView%, pTgtView:%pTgtView%, pFilter:%pFilter%, pFilterParallel:%pFilterParallel%, pParallelThreads:%pParallelThreads%, pEleMapping:%pEleMapping%, pMappingDelim:%pMappingDelim%, pDimDelim:%pDimDelim%, pEleStartDelim:%pEleStartDelim%, pEleDelim:%pEleDelim%, pFactor:%pFactor%, pSuppressRules:%pSuppressRules%, pCumulate:%pCumulate%, pZeroTarget:%pZeroTarget%, pZeroSource:%pZeroSource%, pTemp:%pTemp%, pCubeLogging:%pCubeLogging%.' ; +cLogInfo = 'Process:%cThisProcName% run with parameters pCube:%pCube%, pSrcView:%pSrcView%, pTgtView:%pTgtView%, pFilter:%pFilter%, pFilterParallel:%pFilterParallel%, pParallelThreads:%pParallelThreads%, pEleMapping:%pEleMapping%, pMappingDelim:%pMappingDelim%, pDimDelim:%pDimDelim%, pEleStartDelim:%pEleStartDelim%, pEleDelim:%pEleDelim%, pFactor:%pFactor%, pSuppressConsol:%pSuppressConsol%, pSuppressRules:%pSuppressRules%, pCumulate:%pCumulate%, pZeroTarget:%pZeroTarget%, pZeroSource:%pZeroSource%, pTemp:%pTemp%, pCubeLogging:%pCubeLogging%, pSandbox:%pSandbox%'; cDefaultView = Expand( '%cThisProcName%_%cTimeStamp%_%cRandomInt%' ); ## LogOutput parameters @@ -696,7 +700,7 @@ sElementStartDelim = TRIM( pEleStartDelim ); sDelimDim = TRIM( pDimDelim ); sFilter = TRIM( pFilter); sTargetFilter = ''; -sSuppressConsol = 1; +nSuppressConsol = pSuppressConsol; nSubN = 0; nChar = 1; nCharCount = LONG( sElementMapping ); @@ -893,7 +897,9 @@ If( nCharCount > 0 ); If ( DTYPE( sDimension, sElement) @= 'C' ); IF( nElementCount = 1 ); - sSuppressConsol = 0; + If( pSuppressConsol <> 1 ); + nSuppressConsol = 0; + EndIf; nSubN = 1; Else; sMessage = Expand( 'Target element: %sElement% for dimension %sDimension% is consolidated' ); @@ -1138,7 +1144,7 @@ If( Scan( pEleStartDelim, pFilterParallel ) > 0 ); 'pCube', pCube, 'pSrcView', pSrcView, 'pTgtView', pTgtView, 'pFilter', sFilter, 'pFilterParallel', '', 'pEleMapping', pEleMapping, 'pMappingDelim', pMappingDelim, 'pDimDelim', pDimDelim, 'pEleStartDelim', pEleStartDelim, 'pEleDelim', pEleDelim, - 'pFactor', pFactor, 'pSuppressRules', pSuppressRules, 'pCumulate', pCumulate, + 'pFactor', pFactor, 'pSuppressConsol', pSuppressConsol, 'pSuppressRules', pSuppressRules, 'pCumulate', pCumulate, 'pZeroTarget', pZeroTarget, 'pZeroSource', pZeroSource, 'pTemp', pTemp, 'pCubeLogging', pCubeLogging, 'pSandbox', pSandbox, 'pThreadMode', 1 ); nThreadElCounter = 0; @@ -1151,7 +1157,7 @@ If( Scan( pEleStartDelim, pFilterParallel ) > 0 ); 'pCube', pCube, 'pSrcView', pSrcView, 'pTgtView', pTgtView, 'pFilter', sFilter, 'pFilterParallel', '', 'pEleMapping', pEleMapping, 'pMappingDelim', pMappingDelim, 'pDimDelim', pDimDelim, 'pEleStartDelim', pEleStartDelim, 'pEleDelim', pEleDelim, - 'pFactor', pFactor, 'pSuppressRules', pSuppressRules, 'pCumulate', pCumulate, + 'pFactor', pFactor, 'pSuppressConsol', pSuppressConsol, 'pSuppressRules', pSuppressRules, 'pCumulate', pCumulate, 'pZeroTarget', pZeroTarget, 'pZeroSource', pZeroSource, 'pTemp', pTemp, 'pCubeLogging', pCubeLogging, 'pSandbox', pSandbox, 'pThreadMode', 1 ); ENDIF; @@ -1193,7 +1199,7 @@ Else; 'pView', cViewSource, 'pFilter', sFilter, 'pSuppressZero', 1, - 'pSuppressConsol', sSuppressConsol, + 'pSuppressConsol', nSuppressConsol, 'pSuppressRules', pSuppressRules, 'pDimDelim', pDimDelim, 'pEleStartDelim', pEleStartDelim, diff --git a/main/}bedrock.cube.data.export.pro b/main/}bedrock.cube.data.export.pro index 7c64259..2c3c06e 100644 --- a/main/}bedrock.cube.data.export.pro +++ b/main/}bedrock.cube.data.export.pro @@ -4,7 +4,7 @@ 586,"}APQ Staging TempSource" 585,"}APQ Staging TempSource" 564, -565,"d47]aJqJl5FFYnIpD>38vzi=\>9NEz:TVv3L=>Mbs\KTPT`Y93`umL7Twnj1zMJb:2MF?5BIRzcGv8AY6`R4E8W0yr8fpiTyZ3Xxd6sbsZLCJIYw==xEPrzTK[>D3SLh:2xskPsEJ^R4Y4[FFi^V0Kt]A5BbC_iS>B[O=]B0UNhCFOYQ3oAI6Zf\>6:yFM" +565,"wMk]1KPR=P>BOR5PBx]mrp:adXmzy\CtwCC;Fx]LSa\r[8BqvH9MVQQo?kUq27Arf4O>:<[J2Cu:7eLk7=Q@qSlVJgTr<`6bwlU@HoGS[tYwRBsPY8469]Boj40bUZkCuDKcqnafBGhN;Wzi72vm:CJHvt3l\0^5b[Yo3[_aG>PNPwxQV8I0E2PwO_VIzIfznYoYqjGf0@:Ua7Ycm5?c^Oc4@:e_?MJuzVZkOck3ILuQJQI>p2^h[]u3O4hxkOoFd03fEC`0VoX9CNbmSfOxo?=OD6Ooun;QO8C2vTz;[Dfx7>q7otRnB>9xvWn:v[tAiz5=Kp1r" 559,1 928,0 593, @@ -320,7 +320,7 @@ cRandomInt = NumberToString( INT( RAND( ) * 1000 )); cTempSub = cThisProcName |'_'| cTimeStamp |'_'| cRandomInt; cMsgErrorLevel = 'ERROR'; cMsgErrorContent = 'User:%cUserName% Process:%cThisProcName% ErrorMsg:%sMessage%'; -cLogInfo = 'Process:%cThisProcName% run with parameters pSrcDir:%pSrcDir%, pSrcFile:%pSrcFile%, pCube:%pCube%, pDim:%pDim%, pSrcEle:%pSrcEle%, pTgtEle:%pTgtEle%, pTitleRows:%pTitleRows%, pDelim:%pDelim%, pQuote:%pQuote%, pCumulate:%pCumulate%, pCubeLogging:%pCubeLogging%.' ; +cLogInfo = 'Process:%cThisProcName% run with parameters pSrcDir:%pSrcDir%, pSrcFile:%pSrcFile%, pCube:%pCube%, pDim:%pDim%, pSrcEle:%pSrcEle%, pTgtEle:%pTgtEle%, pTitleRows:%pTitleRows%, pDelim:%pDelim%, pQuote:%pQuote%, pCumulate:%pCumulate%, pCubeLogging:%pCubeLogging%, pSandbox:%pSandbox%'; cLenASCIICode = 3; pDelimiter = TRIM(pDelim);