Getting Objects of a Class
This section shows example code of reading objects of a class.
'//////////////////////////////////////////////////////////////////////////////////
'
' GetClassObjects
'
'/////////////////////////////////////////////////////////////////////////////////
Sub GetClassObjects()
Dim testList As MetaInfoList
Dim info As MetaInfo
Dim class1info As New MetaClassInfo
Dim class2info As New MetaClassInfo
DisplayHeadingLine "MetaActive::GetClassObjects"
'get the definitions of the classes
class1info.name = CANNED_CLASS_NAME1
class1info.ObjectID = ScriptingClass1
class1info.Read
class2info.name = CANNED_CLASS_NAME2
class2info.ObjectID = ScriptingClass2
class2info.Read
'get the class objects via GUID
Set testList = Repository.GetClassObjects(class1info.ObjectGUID, 0)
Set testList = Nothing
'get class objects via classID
Set testList = Repository.GetClassObjects("", ScriptingClass1)
Set testList = Nothing
'get class objects via object name
Dim names(6) As String
Dim i As Integer
names(0) = "Entry One"
names(1) = "Entry Two"
names(2) = "Entry Three"
names(3) = "Entry Four"
names(4) = "Entry Five"
For i = 0 To 4
Set testList = Repository.GetClassObjects("", class1info.ObjectID, names(i))
Next
Set testList = Nothing
Exit Sub
End Sub
'//////////////////////////////////////////////////////////////////////////////////
'
' GetClassObjectsByProperty
'
'//////////////////////////////////////////////////////////////////////////////////
Sub GetClassObjectsByProperty()
Dim i As Integer
Dim goodCount As Integer
Dim lastdate As Date
Dim info As MetaInfo
Dim class2info As New MetaClassInfo
Dim errorExpected As Boolean
Dim testList As MetaInfoList
Dim filterList As New MetaFilterList
Dim sortList As New MetaInfoKeyList
Dim filter As New MetaFilter
Dim sortKey As New MetaInfoKey
DisplayHeadingLine "MetaActive::GetClassObjectsByProperty"
'get the definitions of the class
class2info.name = CANNED_CLASS_NAME1
class2info.ObjectID = ScriptingClass1
class2info.Read
' check multiple properties
' the condition used is: long >= 100 AND integer >= 100 AND date >= Jan 1, 1986
filter.filter.name = LONG_PROPERTY_NAME
filter.filter.value = 100
filter.operator = GREATER_THAN_OR_EQUAL
filter.Logical = META_AND
filterList.Add filter
filter.filter.name = INTEGER_PROPERTY_NAME
filterList.Add filter
filter.filter.name = DATE_PROPERTY_NAME
filter.filter.value = CDate(#1/1/1986#)
filterList.Add filter
Set testList = Repository.GetClassObjectsByProperty("", ScriptingClass1, "",
filterList, sortList)
status0 = "name pattern and property filters"
status1 = META_PASSED
filter.filter.name = LONG_PROPERTY_NAME
filter.filter.value = 100
filter.operator = GREATER_THAN_OR_EQUAL
filter.Logical = META_AND
filterList.Add filter
Set testList = Repository.GetClassObjectsByProperty("", ScriptingClass1, "E%e%",
filterList, sortList)
' request sorted results
DisplayStatus "sorted on one property"
filterList.Clear
filter.filter.name = LONG_PROPERTY_NAME
filter.filter.value = 100
filter.operator = GREATER_THAN_OR_EQUAL
filter.Logical = META_AND
filterList.Add filter
sortKey.name = STRING_PROPERTY_NAME
sortList.Add sortKey
Set testList = Repository.GetClassObjectsByProperty("", ScriptingClass1, "",
filterList, sortList)
' test fetching DIM objects
filterList.Clear
filter.filter.name = "SynchronizationLevel"
filter.filter.value = 1
filter.operator = GREATER_THAN_OR_EQUAL
filter.Logical = META_AND
filterList.Add filter
sortList.Clear
status1 = META_PASSED
Set testList = Repository.GetClassObjectsByProperty("", TableClassID, "",
filterList, sortList)
Exit Sub
End Sub