コード例 #1
0
        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();
            }
        }
コード例 #2
0
        /// <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();
            }
        }
コード例 #3
0
        /// <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);
        }