Quintiq file version 2.0
|
#parent: #root
|
MethodOverride GetScope (
|
LibOpt_Task task
|
) as LibOpt_Scope
|
{
|
Description:
|
[*
|
This method returns a scope from the set of scopes that can be used for the next iteration.
|
|
When entered for the first time, the set of scopes is created.
|
*]
|
TextBody:
|
[*
|
context := task.TaskContext().astype( LibOpt_TaskContextIterator );
|
scope := null( LibOpt_Scope );
|
|
// Enter if this is the first time a task
|
if( context.CurrentIteration() = 0 )
|
{
|
scopes := this.GetPartition( task );
|
|
traverse( scopes, Elements, sc )
|
{
|
sc.TaskContextIterator( relset, context );
|
}
|
}
|
|
if( context.Scope( relsize ) > 0 )
|
{
|
scope := context.FirstScope();
|
//When scope is selected, delete relation such that it cannot be selected again.
|
scope.TaskContextIterator( relflush );
|
}
|
|
return scope
|
*]
|
}
|