表上的样板文字和PowerDesigner物理数据模型中的列注释

2020-08-16 10:49发布

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

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


如何为我创建的每个新表和一列在Power Designer物理数据模型中创建样板文本。

在Erwin中,我可以创建具有标准数据类型和注释的Domains,然后将其附加到列上,然后将其复制到域中的样板文字,再向下到Column注释。

我想要类似的东西。 我尝试创建域并附加到列,但是Domain的Comment(或在Definition中)文本不会移至Column注释。

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

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


如何为我创建的每个新表和一列在Power Designer物理数据模型中创建样板文本。

在Erwin中,我可以创建具有标准数据类型和注释的Domains,然后将其附加到列上,然后将其复制到域中的样板文字,再向下到Column注释。

我想要类似的东西。 我尝试创建域并附加到列,但是Domain的Comment(或在Definition中)文本不会移至Column注释。

付费偷看设置
发送
8条回答
当学会了学习
1楼 · 2020-08-16 11:14.采纳回答

嗨,纳文,

在所附的屏幕截图中,您具有实现以下功能所需的一切。 每次将域附加到列(或对列进行任何其他修改)时,它将验证列和附加域的注释是否相同。 如果它们不相等,它将把域注释传播到该列的注释中。 如果您还需要其他内容(例如将域注释自动传播到所有已附加的列中),则必须以不同的方式定义该处理程序。 如果您需要更多帮助,请与我联系。

Ondrej

奄奄一息的小鱼
2楼-- · 2020-08-16 11:22

如果您不想使用每次需要查看Comment属性时都会触发的事件处理程序,则可以考虑使用自动修复的自定义检查-它 可以用域注释的副本替换空的列注释。 这还使您可以编辑"列注释",而无需自动将其更改回。

一只江湖小虾
3楼-- · 2020-08-16 11:06

是的,将其置于"自定义"检查中,并且"自动修复"绝对是可能的解决方案之一。 没有您的控制,什么都不会发生。 但它在调用后事后发生。 处理程序可以实时执行操作,而您不必注意它。 您只需要处理所有可能发生的情况。

使用自定义检查和自动修复可能更容易实现,但是在建模期间您必须更加注意它。 处理程序更像是实现与忘记。 但是实施起来可能会更复杂。

无论选择哪种解决方案,都祝您建模愉快。

me_for_i
4楼-- · 2020-08-16 11:11

只需打开根据我的建议创建的扩展并使用"另存为"功能。 它将创建新的* .xem文件来存储您的扩展名。 然后,可以将其附加到所需的所有模型上(可以通过菜单"模型-扩展..."来完成)。 并且,如果您进入扩展的最顶层,并将"自动附加"布尔选项设置为true,则此扩展将自动附加到您创建的每个新数据模型。 很好,很容易。

关于学习VBScript。 实际上,只有脚本可以为您提供使用PowerDesigner可以提供的所有功能的机会。 这种可定制性和可扩展性绝对胜过Erwin。 如果您不想浪费时间使用VBScript,在这里我可以为您提供帮助。 请让我知道。

如果您的所有问题均已回答,请标记我的回答为接受。


关于

Ondrej

compass1988
5楼-- · 2020-08-16 11:24

谢谢你Ondrej,它能正常工作!

如何使此代码独立于数据模型? 可以将它们保存在外部,然后我生成的任何* New * PDM都会继承此代码。

乔治,

我不完全理解您提到的替代方案。

老实说,Erwin只需单击一个名为"域继承"的按钮就可以轻松做到这一点。 默认情况下,有关该域的所有内容都继承到该列中,并带有一个选项,该选项可以在列级别覆盖您想要的任何内容或同步回该域。 在PD中,他们决定实现要继承的数据类型和长度,但没有其他选择。 在Erwin中,我使用Domains甚至通过此功能在列级别向下实现类单词。

PD提供了很大的灵活性,但是它期望Data Modeler学习和编写VBScript。

愤怒的猪头君
6楼-- · 2020-08-16 11:06

是的。 我的建议是第一步,您可能必须根据需要进行调整并实施其他逻辑。 只是请不要用"什么都不是"声明来检验评论是否为空。 这用于对象属性。 在您的情况下,整个命令将是:

如果不是(obj.Domain为Nothing)并且obj.Comment ="" 

或者您可以使用:

如果不是(obj.Domain为Nothing)并且Len(obj.Comment)= 0 
宇峰Kouji
7楼-- · 2020-08-16 11:16

感谢Ondrej。

在阅读了乔治的著作后,又有一个问题。

如果我编辑列级元数据,此规则将不断触发并从"域"中放回模板,从而消除了对列级注释的修改。 只是想知道我是否应该更改第一行以检查Column注释是否为NULL

如果没有(obj.Domain为Nothing)且Obj.Comment为Nothing

一周热门 更多>