private static bool IsReferencedFromOutside(Module mdl, KBObject obj, out string objList) { if (obj is Table) { objList = obj.Name + " "; } else { objList = ""; } bool isReferencedFromOutside = false; string objName = obj.Name; foreach (EntityReference refer in obj.GetReferencesTo()) { KBObject objRef = KBObject.Get(obj.Model, refer.From); if (objRef != null && Functions.isRunable(objRef)) { Module modref = objRef.Module; if (modref != mdl) { isReferencedFromOutside = true; if (obj is Table) { objList += " " + Functions.linkObject(objRef); } } } } return(isReferencedFromOutside); }
private static ObjectVisibility RecoverVisibility(KBObject obj) { string objModule = obj.Module.Name; string objName = obj.Name; ObjectVisibility objVisibility = ObjectVisibility.Private; foreach (EntityReference reference in obj.GetReferencesTo()) { KBObject objRef = KBObject.Get(obj.Model, reference.From); if (objRef != null && reference.ReferenceType == ReferenceType.Hard && Functions.isRunable(obj)) { if (objRef is Artech.Genexus.Common.Objects.Attribute && obj is Procedure) { objVisibility = ObjectVisibility.Public; } else { if (Functions.isRunable(objRef)) { string objRefModule = objRef.Module.Name; if (objRefModule != objModule) { objVisibility = ObjectVisibility.Public; } } } } } return(objVisibility); }
public static void AddObjectsReferenceTo(KBObject obj, KBObjectCollection objToBuild, KBDoctorXMLWriter writer) { foreach (EntityReference refe in obj.GetReferencesTo()) { KBObject objRef = KBObject.Get(obj.Model, refe.From); if (objRef != null && KBObjectHelper.IsSpecifiable(objRef) && !objToBuild.Contains(objRef) && KBDoctorCore.Sources.Utility.isGenerated(objRef)) { objToBuild.Add(objRef); writer.AddTableData(new string[] { objRef.QualifiedName.ToString(), objRef.Description, obj.QualifiedName.ToString() + " (" + obj.TypeDescriptor.Name + ")" }); } } }
private static void ComponenteConexo(KBObject obj, KBObjectCollection visited) { foreach (EntityReference r in obj.GetReferencesTo()) { KBObject objRef = KBObject.Get(obj.Model, r.From); VisitNode(visited, obj, objRef); } foreach (EntityReference r in obj.GetReferences()) { KBObject objRef = KBObject.Get(obj.Model, r.To); VisitNode(visited, obj, objRef); } }
public static void ListTableAttributesUsingDomain() { // Object with parm() rule without in: out: or inout: IKBService kbserv = UIServices.KB; IOutputService output = CommonServices.Output; string title = "KBDoctor - Domain to change"; output.StartSection(title); string outputFile = Functions.CreateOutputFile(kbserv, title); KBDoctorXMLWriter writer = new KBDoctorXMLWriter(outputFile, Encoding.UTF8); writer.AddHeader(title); writer.AddTableHeader(new string[] { "Domain", "Table", "Description", "Attribute", "Descripcion" }); int cantObjChanged = 0; SelectObjectOptions selectObjectOption = new SelectObjectOptions(); selectObjectOption.MultipleSelection = true; selectObjectOption.ObjectTypes.Add(KBObjectDescriptor.Get <Domain>()); foreach (KBObject dom in UIServices.SelectObjectDialog.SelectObjects(selectObjectOption)) { foreach (EntityReference reference in dom.GetReferencesTo()) { KBObject att = KBObject.Get(dom.Model, reference.From); if ((att != null) && (att is Artech.Genexus.Common.Objects.Attribute)) { foreach (EntityReference reference2 in att.GetReferencesTo()) { KBObject tbl = KBObject.Get(att.Model, reference2.From); if ((tbl != null) && (tbl is Table)) { writer.AddTableData(new string[] { Functions.linkObject(dom), Functions.linkObject(tbl), tbl.Description, Functions.linkObject(att), att.Description }); } } } } } writer.AddFooter(); writer.Close(); bool success = true; KBDoctorHelper.ShowKBDoctorResults(outputFile); }
private static KBObjectCollection ObjectsReferencesFromOutside(KBObject obj) { KBObjectCollection objCol = new KBObjectCollection(); string mdlName = ObjectModuleName(obj); foreach (EntityReference refer in obj.GetReferencesTo()) { KBObject objRef = KBObject.Get(obj.Model, refer.From); if (objRef != null && Functions.isRunable(objRef)) { string mdlNameRef = ObjectModuleName(objRef); if (mdlNameRef != mdlName) { if (obj is Table) { objCol.Add(obj); } } } } return(objCol); }
public static string MainsOf(KBObject obj, KBObjectCollection objColl, string callTree) { string mains = ""; if (!objColl.Contains(obj)) { objColl.Add(obj); if (obj.GetPropertyValue <bool>("IsMain")) { string objAppGenerator = obj.GetPropertyValueString("AppGenerator"); if (objAppGenerator.Contains("Java Win") && callTree.Contains("HMaster")) { mains = ""; } else { mains = callTree + "/" + Functions.linkObject(obj) + "(" + objAppGenerator + ")<BR> "; } } else { callTree += obj.Name + "/"; foreach (EntityReference reference in obj.GetReferencesTo()) { KBObject objRef = KBObject.Get(obj.Model, reference.From); if ((objRef != null) && (obj.Name != objRef.Name) && (reference.ReferenceType == ReferenceType.Hard) && reference.LinkType == LinkType.UsedObject /*&& (obj.TypeDescriptor.Name != "MasterPage")*/ && !objColl.Contains(objRef)) { mains += MainsOf(objRef, objColl, callTree); } } } } return(mains); }
public static void ListTableAttributesUsingDomain() { // Object with parm() rule without in: out: or inout: IKBService kbserv = UIServices.KB; IOutputService output = CommonServices.Output; string title = "KBDoctor - Domain to change"; output.StartSection("KBDoctor", title); try { string outputFile = Functions.CreateOutputFile(kbserv, title); KBDoctorXMLWriter writer = new KBDoctorXMLWriter(outputFile, Encoding.UTF8); writer.AddHeader(title); writer.AddTableHeader(new string[] { "Domain", "Table", "Description", "Attribute", "Descripcion", "Module" }); int cantObjChanged = 0; SelectObjectOptions selectObjectOption = new SelectObjectOptions(); selectObjectOption.MultipleSelection = true; selectObjectOption.ObjectTypes.Add(KBObjectDescriptor.Get <Domain>()); //Pido dominios foreach (KBObject dom in UIServices.SelectObjectDialog.SelectObjects(selectObjectOption)) { //Atributos con ese dominio foreach (EntityReference reference in dom.GetReferencesTo()) { KBObject att = KBObject.Get(dom.Model, reference.From); if ((att != null) && (att is Artech.Genexus.Common.Objects.Attribute)) { foreach (EntityReference reference2 in att.GetReferencesTo()) { KBObject tbl = KBObject.Get(att.Model, reference2.From); if ((tbl != null) && (tbl is Table)) { writer.AddTableData(new string[] { Functions.linkObject(dom), Functions.linkObject(tbl), tbl.Description, Functions.linkObject(att), att.Description, ModulesHelper.ObjectModuleName(tbl) }); } } } } } //Agrego Atributos sin dominios foreach (Artech.Genexus.Common.Objects.Attribute a in Artech.Genexus.Common.Objects.Attribute.GetAll(kbserv.CurrentModel)) { if (a.DomainBasedOn == null) { foreach (EntityReference reference2 in a.GetReferencesTo()) { KBObject tbl = KBObject.Get(a.Model, reference2.From); if ((tbl != null) && (tbl is Table)) { writer.AddTableData(new string[] { Utility.FormattedTypeAttribute(a), Functions.linkObject(tbl), tbl.Description, Functions.linkObject(a), a.Description, ModulesHelper.ObjectModuleName(tbl) }); } } } } writer.AddFooter(); writer.Close(); bool success = true; KBDoctorHelper.ShowKBDoctorResults(outputFile); } catch { bool success = false; KBDoctor.KBDoctorOutput.EndSection(title, success); } }