| Quintiq file version 2.0 | 
| #parent: #root | 
| Method ReceiveMetadataRequestGetChannelsMetadata (NamedValueTree nvt_i, NamedValue body_i, LibDEF_System requestor_i,  | 
|   LibDEF_IntegrationEvent event_i) | 
| { | 
|   Description: 'Receive a Metadata message for requesting Metadata for certain Channels.' | 
|   TextBody: | 
|   [* | 
|     LibDEF_Util::EventLog( event_i, "Receiving system metadata request" ); | 
|      | 
|     // Jacky CHAN May-13-2016 (created) | 
|     channelNames := construct( Strings ); | 
|      | 
|     traverse( body_i.Children(), Elements, channelMeta, | 
|               channelMeta.Name() = typeof( LibDEF_ChannelMeta ).Name() ) | 
|     { | 
|       syncChannel := NamedValueTreeIO::ImportObject( nvt_i, channelMeta, typeof( LibDEF_ChannelMeta ) ).astype( LibDEF_ChannelMeta ); | 
|       channelNames.Add( syncChannel.Name() ); | 
|     } | 
|      | 
|     if( channelNames.Size() > 0 ) | 
|     { | 
|       this.SendMetadataSuccessGetChannelsMetadata( channelNames, requestor_i, event_i ); | 
|     } | 
|     else | 
|     { | 
|       LibDEF_Util::EventLogError( event_i,  | 
|                                   "Failed to process system metadata request", | 
|                                   "No channels received from requestor '" + requestor_i.Name() + "'. Ensure that the requestor Systems has at least one Channel implemented." ); | 
|     } | 
|   *] | 
| } |