Class Reference
IRIS for UNIX 2019.2
InterSystems: The power behind what matters   
Documentation  Search
  [%SYS] >  [%ExtentMgr] >  [GUID]
Private  Storage   

persistent class %ExtentMgr.GUID extends %Persistent

GUID,OID value pairs are recorded in ^OBJ.GUID. %ExtentMgr.GUID is a persistent class that models ^OBJ.GUID. This class can be queried using SQL. It is also a fully functioning persistent class with the GUID as the ID value. The OID property is swizzle-able. Instances of this class can be deleted and updated. New instances can be created.


This class defines two indexes. idxGUID is the IDKEY for the class and indexes the GUID value. idxOID is a unique index on OID and indexes the OID value. The GUID value is stored in the idxOID as data. Index methods Open and Exists can be used for various purposes. For example, to see if an OID is defined in the GUID registry, simply call the idxOIDExists() method, passing in the requested OID value. All index Exists() methods will return the ID corresponding to the requested key value in an option pass by reference argument. For example:
	SAMPLES>set person = ##class(Sample.Person).%OpenId(5)
	
	SAMPLES>write "Exists: ",##class(%ExtentMgr.GUID).idxOIDExists(person.%Oid(),.id),", GUID: ",id
	Exists: 1, GUID: A7413A9A-F73C-11DF-BF93-23DF9B6F8200
	SAMPLES>
Remember, OIDs are meant to be opaque values and simply constructing an OID value using $ListBuild is breaking encapsulation and it might not produce the desired results. For example:
	SAMPLES>write "Exists: ",##class(%ExtentMgr.GUID).idxOIDExists($ListBuild(5,"Sample.Person"),.id),", GUID: ",id
	Exists: 0, GUID: 
	SAMPLES>

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
2 2 2


Summary

Properties
GUID OID

Methods
%AddToSaveSet %AddToSyncSet %BMEBuilt %CheckConstraints
%CheckConstraintsForExtent %ClassIsLatestVersion %ClassName %ComposeOid
%ConstructClone %Delete %DeleteExtent %DeleteId
%DispatchClassMethod %DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty %Exists
%ExistsId %Extends %GUID %GUIDSet
%GetLock %GetParameter %GetSwizzleObject %Id
%InsertBatch %IsA %IsModified %IsNull
%KillExtent %KillExtentData %LoadFromMemory %LockExtent
%LockId %New %NormalizeObject %ObjectIsNull
%ObjectModified %Oid %OnBeforeAddToSync %OnDetermineClass
%Open %OpenId %OriginalNamespace %PackageName
%PhysicalAddress %PurgeIndices %Reload %RemoveFromSaveSet
%ResolveConcurrencyConflict %RollBack %Save %SaveDirect
%SaveIndices %SerializeObject %SetModified %SortBegin
%SortEnd %SyncObjectIn %SyncTransport %UnlockExtent
%UnlockId %ValidateIndices %ValidateObject GetGUID
idxOIDExists


Properties

• property GUID as %Library.Binary;
• property OID as %Library.Persistent(CLASSNAME=1) [ Required ];

Methods

• classmethod GetGUID(pOID As %Library.Binary = "") as %Library.Binary [ SQLProc = GetGUID ]
GetGUID returns a GUID value registered to the object whose OID is pOID. If no GUID is currently assigned to that object or if pOID is NULL then NULL is returned.
• classmethod idxOIDExists(pOID As %Library.Binary = "", ByRef id As %String = "") as %Boolean
idxOIDExists() This method returns true if a GUID exists whose OID matches the pOID value passed in by the caller. The optional byref id parameter will contain the id matching the object that was found to match the index key value upon a successful return.

Indices

•index (idxGUID on GUID) [IdKey];
•index (idxOID on OID) [Data = GUID,Type = key,Unique];


Copyright (c) 2019 by InterSystems Corporation. Cambridge, Massachusetts, U.S.A. All rights reserved. Confidential property of InterSystems Corporation.