Quintiq file version 2.0
|
#parent: #root
|
DeclarativeOwningNMRelation CalcIterationPartNM
|
{
|
#keys: '1[139544.3.97808376]'
|
Expression:
|
[*
|
set := this.SnapshotOwning().IterationPart( relget );
|
parent := this.SnapshotOwning().IterationPart().Parent();
|
|
// Unrolled recursive calling of .Parent() in order to get all ancestors
|
// We expect unrolling 10 times should be enough. This is equal to 10 iterators in a path.
|
|
if( not isnull( parent ) ) // Depth 1
|
{
|
set := set.Union( parent );
|
parent := parent.Parent();
|
if( not isnull( parent ) ) // Depth 2
|
{
|
set := set.Union( parent );
|
parent := parent.Parent();
|
if( not isnull( parent ) ) // Depth 3
|
{
|
set := set.Union( parent );
|
parent := parent.Parent();
|
if( not isnull( parent ) ) // Depth 4
|
{
|
set := set.Union( parent );
|
parent := parent.Parent();
|
if( not isnull( parent ) ) // Depth 5
|
{
|
set := set.Union( parent );
|
parent := parent.Parent();
|
if( not isnull( parent ) ) // Depth 6
|
{
|
set := set.Union( parent );
|
parent := parent.Parent();
|
if( not isnull( parent ) ) // Depth 7
|
{
|
set := set.Union( parent );
|
parent := parent.Parent();
|
if( not isnull( parent ) ) // Depth 8
|
{
|
set := set.Union( parent );
|
parent := parent.Parent();
|
if( not isnull( parent ) ) // Depth 9
|
{
|
set := set.Union( parent );
|
parent := parent.Parent();
|
if( not isnull( parent ) ) // Depth 10
|
{
|
set := set.Union( parent );
|
parent := parent.Parent();
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
|
return & set;
|
*]
|
HelperRelation: IterationPart
|
InstantiationType: LibOpt_IterationPartNM
|
Relation: IterationPartNM
|
}
|