yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Quintiq file version 2.0
#parent: #root
Method OnMDSConstructedCustom #extension
{
  TextBody:
  [*
    // Add custom logic here, workaround for migrating scenariomanager.KPITrackerSetting to KpiGlobalParameter after the migration the KPITrackerSetting will be set to InActive
    opt := DatasetFindOptions::Construct( ScenarioManager::GetDatasetName() );
    sm := MDSScenarioManager::Find( opt );
    sm->( scenariomanager )
    {
      setting := scenariomanager.KPITrackerSetting_tobedeleted_2022_3();
      if ( not isnull( setting ) and not setting.IsInactive() )
      {
        gp := this.GlobalParameter();
       
        if ( isnull( gp ) )
        {
          gp := KpiGlobalParameter::Create( this );
        }
        if ( not gp.RecordEnabled() and gp.RecordStartTime().IsInfinite() )
        { 
          gp.RecordEnabled( setting.IsAutoRecordKPI() );
          gp.RecordFrequency( setting.RecordFrequency() );
          gp.RecordStartTime( setting.StartOfRecording() );
          
          traverse( this.MDSKpiTracker(), MDSObjectDaemons, daemon,
                    daemon.Name() = "RecordDaemon" )
          {
            
            if ( setting.IsAutoRecordKPI() )
            {
              daemon.LocalFrequency( gp.RecordFrequency() )
            }  
           
           daemon.LocalStartTime( gp.RecordStartTime() );  
          }
          
          
          cleanupdaemon := select( scenariomanager.MDSScenarioManager(), MDSObjectDaemons, d, d.Name() = "CleanUpKPISnapshot" );
          
          traverse( this.MDSKpiTracker(), MDSObjectDaemons, daemon,
                    daemon.Name() = "CleanUpDaemon" )
          {
            
            gp.CleanUpEnabled( true );
            gp.CleanUpFrequency( cleanupdaemon.LocalFrequency() );
            gp.CleanUpStartTime( cleanupdaemon.LocalStartTime() );
            
            daemon.LocalFrequency( cleanupdaemon.LocalFrequency() )
            daemon.LocalStartTime( cleanupdaemon.LocalStartTime() );  
          }
        }
      setting.IsInactive( true );
     } 
    }
  *]
}