| Quintiq file version 2.0 | 
| #parent: #root | 
| Method SendMetadataRequestGetChannelsMetadata (LibDEF_Systems targets_i) | 
| { | 
|   Description: 'Send a Metadata message for requesting Metadata of the local Channels.' | 
|   TextBody: | 
|   [* | 
|     // Jacky CHAN May-13-2016 (created) | 
|     // for local System, request SyncMetadata from DataRepository | 
|     dataBroker     := this.DataBroker(); | 
|     hasLocalSystem := false; | 
|     traverse( targets_i, Elements, target, | 
|               target.GUID() = this.DataBroker().SystemGUID() ) | 
|     { | 
|       targets_i.Remove( target ); | 
|       hasLocalSystem := true; | 
|     } | 
|      | 
|     if( hasLocalSystem ) | 
|     { | 
|       // request sync from DataRepository | 
|       LibDEF_DataRepository::SyncToDataBroker( false ); | 
|     } | 
|      | 
|     if( targets_i.Size() > 0 ) | 
|     { | 
|       nvt := LibDEF_DataAccessor::CreateMessageMetadata(); | 
|      | 
|       // define Type | 
|       LibDEF_DataAccessor::SetMetadataHeaderProperty( nvt, LibDEF_DataAccessor::HEADER_TYPE(), LibDEF_DataAccessor::TYPE_METADATA_GETCHANNELSMETADATA() ); | 
|      | 
|       // export ChannelMetas | 
|       nvBody := LibDEF_DataAccessor::GetMetadataBody( nvt ); | 
|       traverse( this, ChannelMeta, channelMeta ) | 
|       { | 
|         NamedValueTreeIO::Export( channelMeta, nvt, nvBody, false ); | 
|       } | 
|      | 
|       traverse( targets_i, Elements, target ) | 
|       { | 
|         event := dataBroker.EventCreate( target, false ); | 
|         LibDEF_Util::EventLog( event, "Requesting system metadata" ); | 
|      | 
|         dataBroker.SendMessage( target, nvt, LibDEF_DataAccessor::KIND_REQUEST(), event ); | 
|       } | 
|     } | 
|   *] | 
| } |