class %DeepSee.CubeManager.RegistryMap
extends %RegisteredObject, %XML.Adaptor, %JSON.Adaptor
The class responsible for organizing the information about the registered state of all cubes on the system.
property BuildStartHour
as %String(VALUELIST=",00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23") [ InitialExpression = "21" ];
The hour of the acceptable build window for the day,
used to construct the timestamp that defines the window when builds may be started.
property BuildStartMinute
as %String(VALUELIST=",00,15,30,45") [ InitialExpression = "00" ];
The quater hour of the acceptable build window for the day,
used to construct the timestamp that defines the window when builds may be started.
property Description
as %String(MAXLEN=2500);
Description of this registry definition.
property Disabled
as %ZEN.Datatype.boolean;
Disabled = true will suspend the automated Build and Synch tasks for this namespace.
relationship Groups
as %DeepSee.CubeManager.RegistryMapGroup [ Inverse = Map,Cardinality = many ];
The collection of groups that are defined in the overall sysem registry map
property IndependentSync
as %ZEN.Datatype.boolean [ InitialExpression = 0 ];
Controls whether cubes within a group are synchronized based on the relationship dependency (the default)
or if it synchronizes solely based on schedule.
property SerialUpdates
as %ZEN.Datatype.boolean [ InitialExpression = 1 ];
If this property is set to 1, the updater tasks will not job off the group update code
and will instead run all updates in a single process.
property StorageClass
as %String(XMLPROJECTION="NONE");
When this is loaded into memory, this stores the name of the class
the map was loaded from.
method CreateMapTimeStamp()
as %String
Return the current build time in hh:mm:ss format.
classmethod LoadFromClass(pClassname As %String, Output pStatus As %Status)
as %DeepSee.CubeManager.RegistryMap
Deserialize the XML from the Registry XData block into a RegistryMap model.
method Print()
Diagnostic method, prints information about the current map.
method SaveToClass(pClassName="")
as %Status
Serializes the current Registry structure into XML inside the
XData block in the relevant Registry class.
method ToArray(ByRef pGroups, ByRef pCubes, ByRef pBuildOrders, ByRef pLookup)
as %Status
Converts the current map into an array. If this is the full
{registered}U{unregistered} map, the first three arrays will match those returned using the call
%DeepSee.CubeManager.Utils.GetCubeGroups(.pGroups,.pCubes,.pBuildOrders)
This method also returns a special lookup index which can be used to quickly reference the group or
cube objects contained in the current map object.
Set CubeName = "HOLEFOODS"
Set Map = ##class(%DeepSee.CubeManager.Utils).BuildRegistryMap()
Do Map.ToArray(.Groups,.Cubes,.BuildOrders,.Lookup)
Set GroupIdx = $LG(Lookup("cubes",CubeName),1)
Set CubeIdx = $LG(Lookup("cubes",CubeName),2)
Set Cube = Map.Groups.GetAt(GroupIdx).Cubes.GetAt(CubeIdx)
method Validate()
as %Status
Perform validation on the Map object to determine if it is ready for save.