Getting Objects of a Class - Teradata Meta Data Services

Teradata Meta Data Services Programmer Guide

Product
Teradata Meta Data Services
Release Number
15.00
Language
English (United States)
Last Update
2018-09-28
Product Category
Teradata Tools and Utilities

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