点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
只是想知道,是否可以配置DBMS扩展(在我们的示例中为Oracle11g)以某种方式允许PD自动对约束进行编号?
当前设置如下:
FK_%3.12UM:CHILD%_%3.12UM:PARENT%
问题是两个表之间的FK约束,例如。
参考文献1
Tabel 1:D_STA_UMS_GP_KONTRAH
塔贝尔2:D_NTF_UMS_GP_KONTRAH
参考名称: FK_STA_UMS_GP_KO_NTF_UMS_GP_KO
参考2
表1:D_STA_UMS_GP_KONGEN
表2:D_NTF_UMS_GP_KONGEN
参考名称: FK_STA_UMS_GP_KO_NTF_UMS_GP_KO
因此,最后,我们有两个引用,具有相同的约束名称,这显然导致在模型检查期间出错。
我们想要这样的东西:
参考文献1
Tabel 1:D_STA_UMS_GP_KONTRAH
塔贝尔2:D_NTF_UMS_GP_KONTRAH
参考名称: FK_STA_UMS_GP_K_NTF_UMS_GP_K01
参考2
表1:D_STA_UMS_GP_KONGEN
表2:D_NTF_UMS_GP_KONGEN
参考名称: FK_STA_UMS_GP_K_NTF_UMS_GP_K02
如何实现?
谢谢
Rafal
fk-naming.jpg (72.2 kB)
在这种情况下,更改DBMS并不是一个好方法。 因为您需要找到存储所有引用的地方。
相反,您可以运行脚本或在转换中使用脚本来实现目标。
以下是示例:(打开模型并运行代码)
设置字典= CreateObject(" Scripting.Dictionary")
为model.references中的每个引用设置model = activemodel
FKeyname = ref.GetAttributeText(" ForeignKeyConstraintName")
如果dict.exists(FKeyname)则
number = dict.item(FKeyname)
number = number + 1
ref.ForeignKeyConstraintName = FKeyname和number
dict。删除FKeyname
dict.add FKeyname,数字
else
dict .add FKeyname,如果
next
结尾
对于model.references中的每个引用
FKeyname = ref.GetAttributeText(" ForeignKeyConstraintName")
如果dict.exists(FKeyname)和dict.item(FKeyname)> 1,则
ref.ForeignKeyConstraintName = FKeyname&1
如果
next
Hi Phillip,
结尾感谢您的回答。 昨天,我已经在"模型"级别的"转换"中完成了此操作,但是脚本的复杂程度有所降低……我相信。 似乎也能正常工作。...
对于obj.Packages中的每个pkg
对于pkg中的每个引用。参考
'GTL-> FK_%3.12UM:CHILD%_%3.12UM:PARENT%
ref_name = ref.GetAttributeText( " ForeignKeyConstraintName")
cnt = 0
对于pkg中的每个ref_ex。参考
如果ref_ex.GetAttributeText(" ForeignKeyConstraintName")= ref_name和ref_ex <> ref那么
cnt = cnt + 1
结束If
下一步
如果cnt> 0则
ref.SetAttributeText" ForeignKeyConstraintName",ref.GetAttributeText(" ForeignKeyConstraintName")+" _" + Cstr(cnt)
结束If
下一个
下一个
BR,
Rafal
一周热门 更多>