陈清红
2025-04-14 880f3c0257eeb8c37761d484258fdd102a369a19
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
Quintiq file version 2.0
#parent: #root
Method Capture (
  LibOpt_Task task,
  String comment
)
{
  Description: 'Note: the given task can be null.'
  TextBody:
  [*
    suboptimizer := guard( task.Component().astype( LibOpt_Suboptimizer ), null( LibOpt_Suboptimizer ) );
    
    snapshot := this.Parent();
    while( not isnull( snapshot ) and isnull( suboptimizer ) )
    {
      suboptimizer := guard( snapshot.astype( LibOpt_SnapshotComponent ).Component().astype( LibOpt_Suboptimizer ), null( LibOpt_Suboptimizer ) );
      snapshot := snapshot.Parent();
    }
    
    if( not isnull( suboptimizer ) and not isnull( suboptimizer.RollbackKPI() ) )
    {
      this.RollbackKPI( suboptimizer.RollbackKPI().GetKPI( task ).AsBinaryValue() );
    }
    
    this.Comment( comment );
    this.IsPreHandleResult( comment = Translations::LibOpt_SnapshotKPI_CommentPreHandleResult() );
    if( task.Run().HasKPIParts() )
    {
      this.CreateKPIParts( task.Scope() );
    }
  *]
}