我正在处理脚本以从powerdesigner 16中提取源数据到目标数据。我有一个表来自powerdesigner MAPPING_1,MAPPING_2,ETC中的多个映射。我无法弄清楚如何使用vba代码设置默认映射。我目前使用下面的代码访问映射。它将访问我上次保存数据模型时处于活动状态的默认映射。如果有人知道如何做到这一点,我会非常感激。
由于
'
' get the table
' Dim mytable, col, cm
mytable = 'CUSTOMER_STAGING'
Dim obj As PdCommon.IdentifiedObject
Set obj = baseModel.FindChildByCode(mytable, cls_Table)
For Each col In obj.Columns
For Each cm In col.Mappings
Next
next
答案 0 :(得分:0)
与我开始使用概念模型时不完全相同的对象。两个源和一个目标,都具有名为Entity_1,Entity_2的实体,并且向导将映射设置为例外。
与我开始玩VBScript时不完全相同的代码...
但似乎我只能通过设置DefaultMapping属性来更改默认映射:
option explicit
dim myname
myname = "ENTITY_1"
Dim obj : Set obj = ActiveModel.FindChildByCode(myname, cls_Entity)
output "default: " & obj.defaultmapping
dim cm,changed
changed = false
For Each cm In obj.Mappings
output cm
if cm <> obj.defaultmapping and not changed then
output "set to " & cm
changed = true
set obj.defaultmapping=cm
end if
Next
output "default: " & obj.defaultmapping