如何在PowerDesigner存储库中使用VB脚本获取扩展属性值

2020-08-27 00:41发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在尝试编写一个脚本,该脚本将扫描PowerDesigner信息库中的逻辑数据模型并使用GetExtendedAttribute检索特定扩展属性的值而没有成功,变量始终为空。

我正在使用以下功能:

 Sub GetAttributes(curEntity)',其中curEntity是当前正在扫描的实体
    ExtAttr =" PMI LDM Formatting.LOV"'LOV是布尔类型
    对于curEntity.ChildObjects中的每个curAttr
       如果curAttr.ClassName ="实体属性",则
          输出curAttr.name&"-"&curAttr.ClassName
          x = curAttr.GetExtendedAttribute(ExtAttr,1)
          输出x
       万一
    下一个
 结束

我花了一些时间尝试查找有关如何从PowerDesigner存储库检索扩展属性值的示例,但没有成功。

使用的版本是16.6 SP04。

欢迎任何提示

帕斯卡

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在尝试编写一个脚本,该脚本将扫描PowerDesigner信息库中的逻辑数据模型并使用GetExtendedAttribute检索特定扩展属性的值而没有成功,变量始终为空。

我正在使用以下功能:

 Sub GetAttributes(curEntity)',其中curEntity是当前正在扫描的实体
    ExtAttr =" PMI LDM Formatting.LOV"'LOV是布尔类型
    对于curEntity.ChildObjects中的每个curAttr
       如果curAttr.ClassName ="实体属性",则
          输出curAttr.name&"-"&curAttr.ClassName
          x = curAttr.GetExtendedAttribute(ExtAttr,1)
          输出x
       万一
    下一个
 结束

我花了一些时间尝试查找有关如何从PowerDesigner存储库检索扩展属性值的示例,但没有成功。

使用的版本是16.6 SP04。

欢迎任何提示

帕斯卡

付费偷看设置
发送
4条回答
Tong__Ming
1楼-- · 2020-08-27 01:41

Bonjour Pascal:)

模型在存储库中的事实对您的脚本没有任何影响。 我认为您的问题是使用ChildObjects; 请使用"属性"集合。 这个对我有用:

 dim mdl,ent,curAttr
 对于activemodel.entities中的每个实体
    如果ent.name ="存款帐户",则
       GetAttributes ent
    万一
 下一个

 Sub GetAttributes(curEntity)'其中,curEntity是当前正在扫描的实体
 'ExtAttr =" PMI LDM Formatting.LOV"'LOV是布尔类型
    Dim ExtAttr'George添加了此
    ExtAttr =" tryit.LOV"'LOV是布尔类型
 '对于curEntity.ChildObjects中的每个curAttr
    对于curEntity.Attributes中的每个curAttr
       如果curAttr.ClassName ="实体属性",则
          输出curAttr.name&"-"&curAttr.ClassName
          x = curAttr.GetExtendedAttribute(ExtAttr,1)
          输出x
       万一
    下一个
 结束子
 
shere_lin
2楼-- · 2020-08-27 01:20

还有特定于对象类型的其他属性和集合-可能需要加载正确的库

CJones
3楼-- · 2020-08-27 01:27

嗨乔治,

感谢您的回答。 它非常适合打开的模型。 我想做的是直接扫描存储库。 不幸的是,存储库对象而非实体不存在Attributes集合(至少我没有找到它)。 存储库中仅存在对象集合,而当我运行scipt时,x始终为空。 我的整个脚本看起来像这样

昏暗的存储库,已连接,ScanDefined,ScanFolder,ScanAll
 设置存储库= RepositoryConnection
 ScanDefined =真
 ScanFolder ="测试"
 ScanAll =假
 已连接=存储库。已连接
 如果没有连接的话
    已连接= repository.Open()
 万一
 如果连接了
    '开始递归扫描
    ScanRepository存储库
    '刷新资源库浏览器
    刷新库
 其他
    日志信息
    MsgBox"存储库需要连接,或者默认连接应该可操作"
 万一
 '扫描文件夹并提取模型的递归程序
 子ScanRepository(文件夹)
    '检查参数
    如果文件夹为空
       退出子
    万一
    '在输出中记录消息
    如果folder.name = ScanFolder和ScanDefined,则
       输出"扫描文件夹" + folder.Name
    万一
    '子文件夹上的递归调用
    '昏暗的子对象
    对于folder.ChildObjects中的每个子对象
       递归或提取存储库子包
       如果subObject.IsKindOf(PdRMG.Cls_RepositoryFolder)然后
          ScanRepository子对象
       其他
          如果subObject.IsKindOf(PdRMG.Cls_RepositoryModel)和folder.name = ScanFolder和ScanDefined,则
             输出" Extracting"&subObject.name&"-"&subObject.ClassName
             对于subObject.ChildObjects中的每个curEnt
                如果curEnt.ClassName =" Entity",则
                   输出curEnt.name&"-"&curEnt.ClassName&"-"&curEnt.Stereotype
                   GetAttributes当前
                万一
             下一个
             'ScanModel子对象
          万一
       万一
    下一个
 结束子
 子ScanModel(模型)
    对于model.ChildObjects中的每个子对象
       递归或提取存储库子包
       如果subObject.IsKindOf(PdRMG.cls_RepositoryPackage)然后
          ScanModel子对象
       其他
          如果subObject.ClassName =" Entity"和ScanAll,则
             输出subObject.name&"-"&subObject.ClassName&"-"&subObject.Stereotype
          elseif subObject.ClassName =" Entity"和subObject.Stereotype ="参考数据",则
             输出subObject.name&"-"&subObject.ClassName&"-"&subObject.Stereotype
          万一
       万一
    下一个
 结束子
 子GetAttributes(curEntity)
    对于curEntity.ChildObjects中的每个curAttr
       如果curAttr.ClassName ="实体属性",则
          输出curAttr.name&"-"&curAttr.ClassName
          x = curAttr.GetExtendedAttribute(" PMI LDM格式。[LOV]")
          输出x
       万一
    下一个
 结束

对于扩展属性以外的所有信息,它都可以正常工作。

欢呼声

帕斯卡

compass1988
4楼-- · 2020-08-27 01:38

我怀疑除非您实际打开模型,否则扩展属性不可用

一周热门 更多>