示例#1
0
        public void DefineKpiIfRequired(OssKpiDefinition kpiDefinition)
        {
            Logger.WriteStartMessage(OssTracePoints.TelemetryTracePoints.DefineKpiIfRequiredStart, TraceLayer.Telemetry, MethodBase.GetCurrentMethod().Name);
            var isKpiDefined = this.oiPublisher.IsKpiDefined(kpiDefinition.Area, kpiDefinition.KpiName, KpiConstants.Scope);

            if (!isKpiDefined)
            {
                var definition = new KpiDefinition()
                {
                    Name           = kpiDefinition.KpiName,
                    Scope          = KpiConstants.Scope,
                    DisplayName    = kpiDefinition.DisplayName,
                    Description    = kpiDefinition.Description,
                    Area           = kpiDefinition.Area,
                    HigherIsBetter = kpiDefinition.HigherIsBetter
                };

                if (kpiDefinition.GoodValue.HasValue)
                {
                    definition.States.Add(new KpiStateDefinition()
                    {
                        KpiState = KpiState.Good,
                        Limit    = kpiDefinition.GoodValue.Value,
                        EventId  = kpiDefinition.EventId,
                    });
                }

                if (kpiDefinition.WarningValue.HasValue)
                {
                    definition.States.Add(new KpiStateDefinition()
                    {
                        KpiState = KpiState.Warning,
                        Limit    = kpiDefinition.WarningValue.Value,
                        EventId  = kpiDefinition.EventId,
                    });
                }

                if (kpiDefinition.ErrorValue.HasValue)
                {
                    definition.States.Add(new KpiStateDefinition()
                    {
                        KpiState = KpiState.Error,
                        Limit    = kpiDefinition.ErrorValue.Value,
                        EventId  = kpiDefinition.EventId,
                    });
                }

                // Critical condition, enable alert.
                if (kpiDefinition.CriticalValue.HasValue)
                {
                    definition.States.Add(new KpiStateDefinition()
                    {
                        KpiState = KpiState.Critical,
                        Limit    = kpiDefinition.CriticalValue.Value,
                        EventId  = kpiDefinition.EventId,
                    });
                }

                this.oiPublisher.SaveKpiDefinition(definition);
            }

            Logger.WriteEndMessage(OssTracePoints.TelemetryTracePoints.DefineKpiIfRequiredEnd, TraceLayer.Telemetry, MethodBase.GetCurrentMethod().Name);
        }
示例#2
0
        private void CreateKpiObjects()
        {
            KpiScorecard obj2 = objectSpace.FindObject <KpiScorecard>(CriteriaOperator.Parse("Name='Sales'"));

            if (obj2 == null)
            {
                obj2      = objectSpace.CreateObject <KpiScorecard>();
                obj2.Name = "Sales";
            }
            KpiDefinition obj1 = objectSpace.FindObject <KpiDefinition>(CriteriaOperator.Parse("Name='New Leads'"));

            if (obj1 == null)
            {
                obj1                      = objectSpace.CreateObject <KpiDefinition>();
                obj1.Name                 = "New Leads";
                obj1.TargetObjectType     = typeof(CRMLead);
                obj1.Criteria             = "CreatedOn >= '@RangeStart' And CreatedOn <= '@RangeEnd'";
                obj1.Expression           = "Count";
                obj1.Range                = DevExpress.ExpressApp.Kpi.DateRangeRepository.FindRange("ThisMonthToDate");
                obj1.Compare              = true;
                obj1.RangeToCompare       = DevExpress.ExpressApp.Kpi.DateRangeRepository.FindRange("LastMonthToDate");
                obj1.MeasurementFrequency = DevExpress.ExpressApp.Kpi.TimeIntervalType.Day;
                obj2.Indicators.Add(obj1.KpiInstance);
            }
            KpiDefinition obj11 = objectSpace.FindObject <KpiDefinition>(CriteriaOperator.Parse("Name='New Opportunities'"));

            if (obj11 == null)
            {
                obj11                      = objectSpace.CreateObject <KpiDefinition>();
                obj11.Name                 = "New Opportunities";
                obj11.TargetObjectType     = typeof(CRMOpportunity);
                obj11.Criteria             = "CreatedOn >= '@RangeStart' And CreatedOn <= '@RangeEnd'";
                obj11.Expression           = "Count";
                obj11.Range                = DevExpress.ExpressApp.Kpi.DateRangeRepository.FindRange("ThisMonthToDate");
                obj11.Compare              = true;
                obj11.RangeToCompare       = DevExpress.ExpressApp.Kpi.DateRangeRepository.FindRange("LastMonthToDate");
                obj11.MeasurementFrequency = DevExpress.ExpressApp.Kpi.TimeIntervalType.Day;
                obj2.Indicators.Add(obj11.KpiInstance);
            }
            KpiDefinition obj12 = objectSpace.FindObject <KpiDefinition>(CriteriaOperator.Parse("Name='New Quotes'"));

            if (obj12 == null)
            {
                obj12                      = objectSpace.CreateObject <KpiDefinition>();
                obj12.Name                 = "New Quotes";
                obj12.TargetObjectType     = typeof(CRMQuote);
                obj12.Criteria             = "CreatedOn >= '@RangeStart' And CreatedOn <= '@RangeEnd'";
                obj12.Expression           = "Count";
                obj12.Range                = DevExpress.ExpressApp.Kpi.DateRangeRepository.FindRange("ThisMonthToDate");
                obj12.Compare              = true;
                obj12.RangeToCompare       = DevExpress.ExpressApp.Kpi.DateRangeRepository.FindRange("LastMonthToDate");
                obj12.MeasurementFrequency = DevExpress.ExpressApp.Kpi.TimeIntervalType.Day;
                obj2.Indicators.Add(obj12.KpiInstance);
            }
            KpiDefinition obj13 = objectSpace.FindObject <KpiDefinition>(CriteriaOperator.Parse("Name='New Orders'"));

            if (obj13 == null)
            {
                obj13                      = objectSpace.CreateObject <KpiDefinition>();
                obj13.Name                 = "New Orders";
                obj13.TargetObjectType     = typeof(CRMOrder);
                obj13.Criteria             = "CreatedOn >= '@RangeStart' And CreatedOn <= '@RangeEnd'";
                obj13.Expression           = "Count";
                obj13.Range                = DevExpress.ExpressApp.Kpi.DateRangeRepository.FindRange("ThisMonthToDate");
                obj13.Compare              = true;
                obj13.RangeToCompare       = DevExpress.ExpressApp.Kpi.DateRangeRepository.FindRange("LastMonthToDate");
                obj13.MeasurementFrequency = DevExpress.ExpressApp.Kpi.TimeIntervalType.Day;
                obj2.Indicators.Add(obj13.KpiInstance);
            }
            KpiDefinition obj14 = objectSpace.FindObject <KpiDefinition>(CriteriaOperator.Parse("Name='New Invoices'"));

            if (obj14 == null)
            {
                obj14                      = objectSpace.CreateObject <KpiDefinition>();
                obj14.Name                 = "New Invoices";
                obj14.TargetObjectType     = typeof(CRMInvoice);
                obj14.Criteria             = "CreatedOn >= '@RangeStart' And CreatedOn <= '@RangeEnd'";
                obj14.Expression           = "Count";
                obj14.Range                = DevExpress.ExpressApp.Kpi.DateRangeRepository.FindRange("ThisMonthToDate");
                obj14.Compare              = true;
                obj14.RangeToCompare       = DevExpress.ExpressApp.Kpi.DateRangeRepository.FindRange("LastMonthToDate");
                obj14.MeasurementFrequency = DevExpress.ExpressApp.Kpi.TimeIntervalType.Day;
                obj2.Indicators.Add(obj14.KpiInstance);
            }
            objectSpace.CommitChanges();
        }