我真的需要帮助解决这个问题,我只是想不通。这是交易:
概念
我使用 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 访问表或列的扩展属性是否重新定义的信息?