Hi,
I'm developing a macro for Toad DataModeler 5.3 and I need to check "Index to Foreign Key in Child Entity" in the relationships. I'm developing this MACRO:
var Key, Rel, a, i, fkName, Attr, Constraint;
Log.Information("- Taula " + Entity.Name + ", " + Entity.Keys.Count + " claus, " + Entity.Relations.Count + " relacions." );
Entity.Lock();
var prefix;
var appPrefix;
prefix = GetEntityPrefix(Entity)
appPrefix = GetAppPrefix(Entity);
for (a=0; a<Entity.Relations.Count; a++)
{
Rel = Entity.Relations.GetObject(a);
fkName = GetFKName(Entity, Rel, Log);
if (fkName!=null) {
Rel.Name = fkName;
Rel.Caption = fkName.substring(fkName.indexOf("") + 1, fkName.length - fkName.indexOf(""));
}
if (Rel.SupportsProperty("CreateIndexToFK")) {
Rel.CreateIndexToFK = true;
}
if (Rel.SupportsProperty("FkIndexName")) {
Rel.FkIndexName = Rel.Name + "_I";
}
}
for (a=0; a<Entity.Attributes.Count; a++)
{
Attr = Entity.Attributes.GetObject(a);
if (Attr.SupportsProperty("ConstraintNotNullName")) {
if (Attr.NotNull) {
Attr.ConstraintNotNullName = appPrefix + "_" + Attr.Name + "_NN";
} else {
Attr.ConstraintNotNullName = "";
}
}
}
if (Entity.SupportsProperty("CheckConstraints")) {
for (a=0; a<Entity.CheckConstraints.Count; a++)
{
Constraint = Entity.CheckConstraints.GetObject(a);
var chkOldCaption= Constraint.Caption;
var chkOldPrefix= "";
var chkAttr = Constraint.Caption;
if (chkOldCaption.indexOf("")==3) {
chkOldPrefix = chkOldCaption.substring(0,4);
chkOldCaption = chkOldCaption.substring(4);
}
Constraint.Caption = prefix + "" + chkOldCaption;
Constraint.Name = appPrefix + "_" + Constraint.Caption + "_CK";
Constraint.Name = Constraint.Name.toUpperCase();
if (Constraint.SQL!="") {
if (chkAttr!=Constraint.Caption) {
Constraint.SQL = ReplaceAll(Constraint.SQL, chkAttr, Constraint.Caption);
}
if ((chkOldPrefix!="") && (chkOldPrefix!=(prefix + ""))) {
Constraint.SQL = ReplaceAll(Constraint.SQL, chkOldPrefix, prefix + "");
}
} else {
Constraint.SQL = Constraint.Caption + " in ('S', 'N')";
}
}
This MACRO works fine on DataModeler 5.2, but not on 5.3.
Can anyone help me with the issue?
Thank you
