powerdesigner vb / vba如何为excel source 2目标提取设置默认表映射

时间:2017-07-12 14:58:06

标签: vba excel-vba powerdesigner excel

我正在处理脚本以从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

1 个答案:

答案 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