lazhen
2025-01-09 8afe90b633046db39042aada36b88193062f8cff
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
33
34
35
Quintiq file version 2.0
#parent: #root
Method SendSetCreated
{
  Description: 'Send a SetCreated full-message based on SetInterests.'
  TextBody:
  [*
    interestedSystems := construct( LibDEF_Systems );
    traverse( this, SetInterestFromSystem.SystemInterestedIn, interestedSystem )
    {
      // if the System is local, use SetInterestOfDataset
      if( interestedSystem.IsLocalSystem() )
      {
        // forward data to interested datasets
        interestedDatasets := selectset( this, SetInterestOfDataset, datasetInterest, datasetInterest.IsDatasetOnline() );
    
        drDataset := LibDEF_DataRepository::GetDataset();
        drDataset->ForwardToDatasets( this.GUID(), interestedDatasets );
      }
      else
      {
        // forward data to interested Systems
        interestedSystems.Add( interestedSystem );
      }
    }
    
    // For interested Systems, request DataRepository to send full data
    // make sure no Systems receive more than once
    uniqueSystems := interestedSystems.Unique();
    
    dbDataset      := LibDEF_DataBroker::GetDataset();
    drDataset      := LibDEF_DataRepository::GetDataset();
    dbDataset->SendCreatedDataToSystems( this.GUID(), uniqueSystems, drDataset );
  *]
}