Skip to main content

%DeepSee.CubeManager.RegistryMapGroup

Class %DeepSee.CubeManager.RegistryMapGroup Extends (%RegisteredObject, %XML.Adaptor, %JSON.Adaptor)

A node representing the named cube groupings within the registry

Properties

Map

Relationship Map As %DeepSee.CubeManager.RegistryMap [ Cardinality = one, Inverse = Groups ];

Reference to the parent map

Cubes

Relationship Cubes As %DeepSee.CubeManager.RegistryMapCube [ Cardinality = many, Inverse = Group ];

The collection of cubes that are a part of this group

GroupName

Property GroupName As %ZEN.Datatype.string;

Display Name for the group.

IsRegistered

Property IsRegistered As %ZEN.Datatype.boolean [ InitialExpression = 0 ];

IsValid

Property IsValid As %ZEN.Datatype.boolean;

This group is checked for validity and the result is stored in this property.

UpdatePlan

Property UpdatePlan As %String(DISPLAYLIST = ",Manual,Build Only,Build and Synch,Synch Only", VALUELIST = ",Manual,Build,BuildSynch,Synch") [ InitialExpression = "BuildSynch" ];

GROUP DEFAULT - Plan for how the cube is to be managed by the build/synch tasks.

Disabled

Property Disabled As %ZEN.Datatype.boolean [ InitialExpression = 1 ];

GROUP DEFAULT - Disabled = 1 will block all automatic updates while leaving the cube visible in the registry.

BuildFrequency

Property BuildFrequency As %Integer [ InitialExpression = 1 ];

GROUP DEFAULT - Indicates how often the cube is to be built, in units of BuidTimeUnit

BuildTimeUnit

Property BuildTimeUnit As %String(DISPLAYLIST = ",Day,Week,Month", VALUELIST = ",Day,Week,Month") [ InitialExpression = "Week" ];

GROUP DEFAULT - Base unit of time for cube builds.

BuildDayOfWeek

Property BuildDayOfWeek As %String(DISPLAYLIST = ",Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday", VALUELIST = ",1,2,3,4,5,6,7") [ InitialExpression = "1" ];

If week is selected for the BuildTimeUnit, this will allow the user to pick which day of the week the build should take place.

BuildDayOfMonth

Property BuildDayOfMonth As %Integer(MAXVAL = 31, MINVAL = 1) [ InitialExpression = 1 ];

If Month is selected as the BuildTimeUnit, this will allow the user to pick which day of the month this build should take place.

SynchFrequency

Property SynchFrequency As %Integer [ InitialExpression = 1 ];

GROUP DEFAULT - Indicates how often the cube is to be synched, in units of SynchTimeUnit

SynchTimeUnit

Property SynchTimeUnit As %String(DISPLAYLIST = ",Minute,Hour,Day", VALUELIST = ",Minute,Hour,Day") [ InitialExpression = "Day" ];

GROUP DEFAULT - Base unit of time for cube synchs.

BuildAsynch

Property BuildAsynch As %ZEN.Datatype.boolean [ InitialExpression = 1 ];

GROUP DEFAULT - Flag which allows the user to select whether the build executes synchronously or asynchronously. Asynchronous build is the default.

UserUpdatesLocked

Property UserUpdatesLocked As %ZEN.Datatype.boolean [ Internal ];

This is a flag that can be set in the stored registry to prevent users from being able to adjust the Disabled setting and prevents builds from this item in the registry.

Methods

%OnNew

Method %OnNew(pRegGroupName = "") As %Status

This callback automatically performs some of the property settings as it is created for the RegistryMap

BuildGroup

ClassMethod BuildGroup(pGroupIndex = "", pAsync As %Boolean = 1, pVerbose As %Boolean = 1, pIndexOnly As %Boolean = 0, pMaxFacts As %Integer = 0, pTracking As %Boolean = 0, pUpdateAll = 0, ByRef pBuildStats) As %Status

This method walks through all cubes contained in the group and checks to see if it should be updated. Prior to running the synchronize, this method will run the cube's Pre-Synch Code if present.
The cube will be built if any of these conditions are met:
- The cube has not been built within the scheduled time period
- It is the day of the week/month scheduled for the cube build
- A cube is dependent on another cube that has been built in this cycle

- The pUpdateAll flag is set to 1

SynchronizeGroup

ClassMethod SynchronizeGroup(pGroupIndex = "", pVerbose As %Boolean = 1, Output pFactsUpdated As %Integer, pUpdateAll = 0, ByRef pSynchronizeStats, pReadCommitted As %Boolean = 1, pCheckReferences As %Boolean = 1, pAsync As %Boolean = 0) As %Status

This method walks through all cubes contained in the group and checks to see if it should be updated.
The cube will be synchronized if either of these conditions are met:
- the cube has not been synchronized within the scheduled time period
- a cube is dependent on another cube that has been synchronized in this cycle
- The pUpdateAll flag is set to 1
and the Pre-Synchronization Code has not set the $$$AbortSynch token to 1

CheckGroupLocks

ClassMethod CheckGroupLocks(pGroup As %DeepSee.CubeManager.RegistryMapGroup, pLocked As %String = "") As %Status [ Internal ]

ToArray

Method ToArray(ByRef pGroup, ByRef pCubes, ByRef pBuildOrders) As %Status

Convert this group object to array form. This will match the index arrays returned using the call
%DeepSee.CubeManager.Utils.GetCubeGroups(.pGroups,.pCubes,.pBuildOrders)
trimmed to the subset of only the cubes in this group