Я использую PowerDesigner v16 и создал файл Extension
; в этом Extension
добавлен MetaClass
типа Таблица; в этом MetaClass
был создан обработчик событий с использованием VBScript для просмотра всех таблиц и создания некоторых полей/столбцов (атрибутов) по умолчанию во всех таблицах.
Но теперь я хочу воспользоваться тем, что я просматриваю все таблицы, а также VBScript
, чтобы создать стандартную Trigger
, которая находится в TriggerTemplate
, и я не знаю, как это сделать через VBScript.
Мой главный вопрос: как создать Trigger
с помощью VBScript
и назначить TriggerTemplate
?
Можете ли вы привести пример?
Возможно сопутствующий вопрос:
PowerDesigner — назначить TriggerTemplate триггеру через VBScript?
Ниже показана функция, которую я использую для просмотра всей таблицы и проверки наличия стандартных столбцов:
Примечание. Эта функция выполняется в PowerDesigner
Extencion
с использованием моделирования PDM. А путь этого расширения такой: DEFAULT COLUMNS::Profile\Table\Event Handlers\Initialize
'******************************************************************************
' Função para checar se a coluna já existe na tabela.
'******************************************************************************
function ColumnExists(tab, name)
'output "ClassName: " + tab.ClassName
'Checa se a o objeto passano no parâmetro "tab" é do tipo Table (tabela)
if tab.ClassName = "Table" then
dim col
'Passa por todas as colunas da tabela
for each col in tab.Columns
'Checa se o nome da coluna atual já existe igual ao passado por parâmetro ("name")
if col.Name = name then
'output "... já existe " + col.Name
ColumnExists = true
exit function
end if
next
end if
ColumnExists = false
end function
'******************************************************************************
' Função responsável por criar as colunas padrao de uma tabela.
'******************************************************************************
Sub DoCreateColumns(tab)
' Checa se o objeto passado no parâmetro ("tab") é do tipo "Table"
if not tab.ClassName = "Table" then exit sub
dim c
dim myColumns, column
' Executa função "DefaultColumns()" serve para criar um array com todas as colunas padrão
myColumns = DefaultColumns()
'Passa por todas as colunas salvas'
for each column in myColumns
'Checa se esta coluna é um ID
if column.Name = "ID_" then
' Adiciona o nome da tabela junto com a palavra ID
column.Name = "ID_" + tab.Name
column.Code = column.Name
end if
'Checa se a coluna ja existe
if not ColumnExists(tab, column.Name) then
set c = tab.Columns.CreateNewAt(column.Position)
c.Name = column.Name
c.Code = column.Code
c.domain = column.Domain
c.Mandatory = column.Mandatory
output "... adding column " + column.Name + " table " + tab.Name
end if
next
End Sub