Quintiq file version 2.0
|
#parent: #root
|
Function CalcStatus
|
{
|
TextBody:
|
[*
|
value := LibOpt_RunStatus::Loaded();
|
|
// Case: the run has been aborted because the dataset was copied during the run
|
if( this.IsAborted()
|
and this.MDSID() <> this.MDSIDRun() )
|
{
|
value := LibOpt_RunStatus::AbortedCopiedDataset();
|
}
|
// Case: the run is aborted, but some tasks are still being processed.
|
// This happens, for example, if LibOpt_IteratorForEachLink.IsPostProcessing is set to true.
|
else if( this.IsAborted()
|
and exists( this, Task, task, true ) )
|
{
|
value := LibOpt_RunStatus::AbortedPostProcessing();
|
|
// While executing the post-processing steps, it is still possible to pause the run.
|
// It would be confusing if this status would be the same as the regular 'Paused' status.
|
if( not isnull( this.BreakpointEvent() ) )
|
{
|
value := LibOpt_RunStatus::AbortedPaused();
|
}
|
}
|
// Case: the run is aborted
|
else if( this.IsAborted() )
|
{
|
value := LibOpt_RunStatus::Aborted();
|
}
|
// Case: the run is failed
|
else if( this.IsFailed() )
|
{
|
value := LibOpt_RunStatus::Failed();
|
}
|
// Case: the run is paused due to a breakpoint
|
else if( not isnull( this.BreakpointEvent() ) )
|
{
|
value := LibOpt_RunStatus::Paused();
|
}
|
// Case: the run is finished, as there is a finished time and it is not marked as aborted or failed.
|
else if( not this.FinishedOn().IsMinInfinity() )
|
{
|
value := LibOpt_RunStatus::Finished();
|
}
|
// Case: the run is optimizing, as it is started and not aborted, paused or finished.
|
else if( not this.StartedOn().IsMinInfinity() )
|
{
|
value := LibOpt_RunStatus::Optimizing();
|
}
|
else if( not this.RequestedOn().IsMinInfinity() )
|
{
|
value := LibOpt_RunStatus::Requested();
|
}
|
|
this.Status( value );
|
*]
|
InterfaceProperties { Accessibility: 'Module' }
|
}
|