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
Quintiq file version 2.0
#parent: #root
Method SendMetadataRequestSetUpdated (LibDEF_SetMeta setMeta_i, LibDEF_Systems targets_i)
{
  Description: 'Send a Metadata message for channel-event when a Set has been updated in DataRepository.'
  TextBody:
  [*
    if( targets_i.Size() > 0 )
    {
      nvt := LibDEF_DataAccessor::CreateMessageMetadata();
      
      // define Type and required Header
      LibDEF_DataAccessor::SetMetadataHeaderProperty( nvt, LibDEF_DataAccessor::HEADER_TYPE(), LibDEF_DataAccessor::TYPE_METADATA_SETUPDATED() );
      
      // export SetMeta
      nvBody := LibDEF_DataAccessor::GetMetadataBody( nvt );
      NamedValueTreeIO::Export( setMeta_i, nvt, nvBody, false );
      
      dataBroker := this.DataBroker();
      
      // Send metadata updates to foreign systems
      traverse( targets_i, Elements, system )
      {
        event := dataBroker.EventCreate( system, false );
        LibDEF_Util::EventLog( event, "Sending SetUpdated metadata request to system '" + system.Name() + "'" );
      
        dataBroker.SendMessage( system, nvt, LibDEF_DataAccessor::KIND_REQUEST(), event );
      }
    }
  *]
}