Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method CreateCampaignStrategy ( 
 | 
  String strategyname 
 | 
) as stream[Strategy] 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    campaignstrategy := null( Strategy ); 
 | 
     
 | 
    sm := this.GetScenarioManagerStream(); 
 | 
    streamcampaignstrategy := sm->( scenariomanager ) 
 | 
    { 
 | 
      campaignstrategy := select( scenariomanager, Strategy, s, s.Name()= strategyname ); 
 | 
      if ( isnull( campaignstrategy ) ) 
 | 
      { 
 | 
        strategy := select( scenariomanager, Strategy, s, s.Name()= Strategy::DefaultStrategyName() ); 
 | 
        // Strategy is at Scenario manager level instead of modify existing default strategy, make copy of default strategy and set to desired settings 
 | 
        campaignstrategy := strategy.Copy( scenariomanager, strategy, strategyname, 99, '', true ); 
 | 
        campaignstrategy.UseCampaignSequenceOptimizer( true ); 
 | 
        this.ActivateGoal( campaignstrategy, 'Campaign', 1, 1.0 ) 
 | 
      } 
 | 
     return campaignstrategy;   
 | 
    } 
 | 
    return streamcampaignstrategy; 
 | 
  *] 
 | 
  InterfaceProperties { Accessibility: 'Module' } 
 | 
} 
 |