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 );
|
}
|
}
|
*]
|
}
|