yanweiyuan3
2023-08-09 588bc7829387dfc761cc25f06f77d4c81818bd10
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Quintiq file version 2.0
#parent: #root
Method Send (String messageType_i, LibDMF_SystemOnChannel soc_i, LibDMF_Interests interests_i, 
  Boolean overrideNotify_i)
{
  Description:
  [*
    Collect and send the data of the Channel to it's interested Systems.
    (1) interests_i contains the applicable interests, i.e. the ones with deltas (or all).
    (2) Data is collected if an interest is NOT notification only, or if 'Send data...' overrides the notification only state.
  *]
  TextBody:
  [*
    traverse( interests_i, Elements, interest )
    {
      soc := interest.SystemOnChannel();
      isNotificationOnly := interest.NotificationOnly();
    
      // checks whether to override notification flag
      if( overrideNotify_i )
      {
        isNotificationOnly := false;
      }
    
      // Container to collect objects
      //data := null( structured_Object, owning );
      lastUpdated := DateTime::MaxDateTime();
    
    
      setType := null( LibDMF_SetType );
      set     := null( LibDMF_Set     );
    
      data := this.DataCollectBasedOnInterest( interest, isNotificationOnly,
                                               setType, set, lastUpdated ); // OUTPUT PARAMETERS
    
      gp := this.CommunicationChannelRoot().GlobalParameters();
      LibDMF_CommunicationChannelRoot::TriggerMessageSendToSystem( this,
                                                                   messageType_i,
                                                                   guard( setType.Name(), "NIL" ),
                                                                   guard( set.Name(), "NIL" ),
                                                                   isNotificationOnly,
                                                                   data,
                                                                   soc,
                                                                   gp.DM_DatasetKind(),
                                                                   gp.DM_DatasetName(),
                                                                   lastUpdated );
    }
  *]
}