0

我真的需要帮助解决这个问题,我只是想不通。这是交易:

概念

我使用 Power Designer 设计模型,然后将其导入 SAS 元服务器。我想编写一个 VBScript 来检查我的模型是否有错误。SAS 使用了一些我的 PD 没有的属性,所以我有一个 XEM 文件附加到我的模型,其中包含我的表和列的扩展属性。除了一个可能的问题来源外,我可以检查我的扩展属性是否有错误。如果我打开一个表并转到扩展属性,那么有一个名为“R”的列(用于所有扩展属性)(扩展属性“值”列的右侧)代表“重新定义”并且它总是打勾(真) 如果我为扩展属性赋予值,并且如果我清空扩展属性的值,则始终取消勾选 (false) 本身。

问题

如何使用 VBScript 访问表或列的扩展属性是否重新定义的信息?

这是我用来检查扩展属性值的代码。我可能只是不了解 PD 的对象结构,并且无法弄清楚如何检查“R”(重新定义),而不是值...

这是我用来获取有关扩展属性的信息的代码:

For Each ModelExtension In ActiveModel.ExtendedModelDefinitions
    For Each ExtAttr in ModelExtension.GetMetaExtensionsForClass(PdPDM.Cls_Column, Cls_ExtendedAttributeTargetItem)
         'SASFormat is an extended attribute for columns
        If ExtAttr.Name="SASFormat" Then
            output ExtAttr.Name
            output ExtAttr.ObjectID
            output ExtAttr.Model
        End if
    Next
Next

我用它来获取列的所有扩展属性的值:

For Each Table In ActiveModel.Tables
      For Each Column In Table.Columns
            'Extended attributes check

            For Each ModelExtension In ActiveModel.ExtendedModelDefinitions
                For Each ExtAttr in ModelExtension.GetMetaExtensionsForClass(PdPDM.Cls_Column, Cls_ExtendedAttributeTargetItem)
                    xEAN = ExtAttr.Name
                    xEAValue = Column.GetExtendedAttributeText(xEAN)
                    tn=Table.Name
                    cn=Column.Name

                    output tn
                    output cn
                    output xEAN
                    output xEAValue
                    end if
                Next
            Next
     Next
Next

TL;博士

如何使用 VBScript 访问表或列的扩展属性是否重新定义的信息?

4

0 回答 0