private void SearchObjectScript(string objType, string busObjName, string busCompName, string codeFieldName, string searchTerm, List <SearchResults> results, StatusUpdateCallback updateStatusBar, string scriptType, Boolean ignoreCase) { // Declare Siebel objects // Initialise BO and BC objects SiebelBusObject busObj = _siebApp.GetBusObject(busObjName); SiebelBusComp busComp = busObj.GetBusComp(busCompName); // Set up query context busComp.ClearToQuery(); busComp.SetViewMode(SiebelConstants.AllView); busComp.ActivateField(codeFieldName); busComp.ActivateField("Parent Name"); busComp.ActivateField("Inactive"); busComp.ActivateField("Parent Inactive"); busComp.SetSearchSpec("Repository Name", Name); busComp.SetSortSpec("Parent Name(ASC), Name(ASC)"); if (ignoreCase) { busComp.SetSearchSpec("Inactive", "N"); busComp.SetSearchSpec("Parent Inactive", "N"); } busComp.ExecuteQuery(SiebelConstants.ForwardOnly); // Check that records are returned bool isRecord = busComp.FirstRecord(); // Process each record while (isRecord) { // Get the script field from the BC string script = busComp.GetFieldValue(codeFieldName); string methodName = busComp.GetFieldValue("Name"); string parentName = busComp.GetFieldValue("Parent Name"); SiebelScript scriptObject = new SiebelScript(script, parentName, methodName, objType, scriptType); updateStatusBar("Searching: " + parentName + "." + methodName); // Search the script for problems scriptObject.Search(searchTerm, results, ignoreCase); // Get the next record isRecord = busComp.NextRecord(); } }
/// <summary> /// Returns a list of code problems for a given object /// </summary> /// <param name="objType"></param> /// <param name="busObjName"></param> /// <param name="busCompName"></param> /// <param name="codeFieldName"></param> /// <param name="allProblems"></param> /// <param name="settings"></param> /// <param name="updateStatusBar"></param> private void GetObjectCodeProblems(string objType, string busObjName, string busCompName, string codeFieldName, List <SiebelProblem> allProblems, ScriptSettings settings, StatusUpdateCallback updateStatusBar) { // Declare Siebel objects // Initialise BO and BC objects SiebelBusObject busObj = _siebApp.GetBusObject(busObjName); SiebelBusComp busComp = busObj.GetBusComp(busCompName); // Set up query context busComp.ClearToQuery(); busComp.SetViewMode(SiebelConstants.AllView); busComp.ActivateField(codeFieldName); busComp.ActivateField("Name"); busComp.ActivateField("Updated By"); busComp.ActivateField("Parent Name"); busComp.ActivateField("Inactive"); busComp.ActivateField("Parent Inactive"); busComp.SetSearchSpec("Repository Name", Name); busComp.SetSortSpec("Parent Name(ASC), Name(ASC)"); string userFilter = settings.UserFilter; string objFilter = settings.ObjNameFilter; // Filter by Update Date and Obj Name, if required if (userFilter != "" && userFilter != "All" && userFilter != null) { busComp.SetSearchSpec("Updated By", "'" + GetUserLoginId(userFilter) + "'"); } if (!string.IsNullOrEmpty(objFilter)) { busComp.SetSearchSpec("Parent Name", "'" + objFilter + "'"); } if (settings.IgnoreInactive) { busComp.SetSearchSpec("Inactive", "'N'"); busComp.SetSearchSpec("Parent Inactive", "'N'"); } busComp.ExecuteQuery(SiebelConstants.ForwardOnly); // Check that records are returned bool isRecord = busComp.FirstRecord(); // Determine if Server or Browser script string scriptType = busCompName.IndexOf("Browser Script", StringComparison.Ordinal) > 0 ? "Browser" : "Server"; // Process each record while (isRecord) { // Get the script field from the BC string script = busComp.GetFieldValue(codeFieldName); string methodName = busComp.GetFieldValue("Name"); string parentName = busComp.GetFieldValue("Parent Name"); // Update UI status bar updateStatusBar("Processing: " + busCompName + " (" + parentName + "." + methodName + ")"); SiebelScript scriptObject = new SiebelScript(script, parentName, methodName, objType, scriptType); // Search the script for problems scriptObject.GetScriptProblems(allProblems, settings); // Get the next record isRecord = busComp.NextRecord(); } }
/// <summary> /// Gets the number of code lines for a specific object type /// </summary> /// <param name="busObjName"></param> /// <param name="busCompName"></param> /// <param name="codeFieldName"></param> /// <param name="settings"></param> /// <param name="updateStatusBar"></param> /// <returns></returns> private int GetObjCodeLines(string busObjName, string busCompName, string codeFieldName, ScriptSettings settings, StatusUpdateCallback updateStatusBar) { // Reset counts int numLines = 0; // Declare Siebel objects // Initialise BO and BC objects SiebelBusObject busObj = _siebApp.GetBusObject(busObjName); SiebelBusComp busComp = busObj.GetBusComp(busCompName); // Set up query context busComp.SetViewMode(SiebelConstants.AllView); busComp.ActivateField(codeFieldName); busComp.ActivateField("Inactive"); busComp.ActivateField("Parent Inactive"); busComp.ClearToQuery(); busComp.SetSearchSpec("Repository Name", Name); string userFilter = settings.CountUserNameFIlter; string objFilter = settings.CountObjNameFilter; // Filter by Update Date and Obj Name, if required if (!string.IsNullOrEmpty(userFilter) && userFilter != "All") { busComp.SetSearchSpec("Updated By", "'" + GetUserLoginId(userFilter) + "'"); } if (!string.IsNullOrEmpty(objFilter)) { busComp.SetSearchSpec("Parent Name", "'" + objFilter + "'"); } if (settings.IgnoreInactive) { busComp.SetSearchSpec("Inactive", "'N'"); busComp.SetSearchSpec("Parent Inactive", "'N'"); } busComp.ExecuteQuery(SiebelConstants.ForwardOnly); // Check that records are returned bool isRecord = busComp.FirstRecord(); // Process each record while (isRecord) { // Get the script field from the BC string script = busComp.GetFieldValue(codeFieldName); SiebelScript scriptObject = new SiebelScript(script); updateStatusBar("Processing: " + busCompName); // Count the lines in the single script object and add to the total numLines += scriptObject.NumberOfLines(); // Get the next record isRecord = busComp.NextRecord(); } return(numLines); }