Quintiq file version 2.0
|
#parent: #root
|
Method GetInterests (Boolean sendDeltas_i, DateTime deltaStart_i) as owning LibDMF_Interests
|
{
|
Description: 'Get the Interests of a System.'
|
TextBody:
|
[*
|
// sendDeltas_i = FALSE and startOfDeltas_i = MinDateTime when all data must be send.
|
|
// filter interests which exist in both set type and set
|
setInterests := selectset( this, Interest, interest,
|
interest.istype( LibDMF_SetInterest ),
|
interest.GetHasDelta( ifexpr( sendDeltas_i, interest.LastSent(), deltaStart_i ) ) );
|
setTypeInterests := selectset( this, Interest, interest,
|
interest.istype( LibDMF_SetTypeInterest ),
|
interest.GetHasDelta( ifexpr( sendDeltas_i, interest.LastSent(), deltaStart_i ) ) );
|
|
// combine the interests without the existing interest on set level
|
// collect set type before set, interest at set type level comes first
|
interests := &setTypeInterests;
|
traverse( setInterests, Elements, si,
|
not exists( interests, Elements.Data.astype( LibDMF_SetType ), setType,
|
setType = si.Data().astype( LibDMF_Set ).SetType() ) )
|
{
|
interests.Add( si );
|
}
|
|
return &interests;
|
*]
|
}
|