【发布时间】:2020-06-30 02:44:19
【问题描述】:
我正在使用 PowerDesigner v16,我创建了一个Extension;在这个 Extension 中添加了 Table 类型的 MetaClass;在这个MetaClass 中,使用 VBScript 创建了一个事件处理程序,以遍历所有表并在所有表中默认创建一些字段/列(属性)。
但现在我想利用这一点,我正在遍历所有表格以及 VBScript,以创建一个位于 TriggerTemplate 中的标准 Trigger,但我不知道该怎么做通过 VBScript。
我的主要问题是:如何使用VBScript 创建Trigger 并分配TriggerTemplate?
你能举个例子吗?
可能相关的问题:
-
PowerDesigner - Assign a TriggerTemplate to a trigger through VBScript?
-
下面是我用来遍历整个表并检查是否有标准列的函数:
注意:此功能使用 PDM 建模在 PowerDesigner Extencion 中执行。而这个扩展的路径如下: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
【问题讨论】: