Quintiq file version 2.0
|
#parent: #root
|
Method SyncSetTypeMeta (NamedValueTree nvt_i, NamedValue body_i, LibDEF_ChannelMeta channel_i,
|
LibDEF_IntegrationEvent event_i)
|
{
|
Description: 'Synchronize SetTypeMeta from NVT.'
|
TextBody:
|
[*
|
// Jacky CHAN May-16-2016 (created)
|
traverse( body_i.Children(), Elements, setTypeMeta,
|
setTypeMeta.Name() = typeof( LibDEF_SetTypeMeta ).Name() )
|
{
|
syncSTM := NamedValueTreeIO::ImportObject( nvt_i, setTypeMeta, typeof( LibDEF_SetTypeMeta ) ).astype( LibDEF_SetTypeMeta );
|
|
// find if already exists
|
matchedSTM := LibDEF_SetTypeMeta::FindSetTypeMeta( this.DataBroker(), this.GUID(),
|
syncSTM.ChannelName(), syncSTM.Name() );
|
|
// check the GUID
|
if( not isnull( matchedSTM ) and
|
matchedSTM.GUID() <> syncSTM.GUID() )
|
{
|
matchedSTM.Delete();
|
matchedSTM := null( LibDEF_SetTypeMeta );
|
}
|
|
if( isnull( matchedSTM ) )
|
{
|
channel := ifexpr( not isnull( channel_i ), channel_i,
|
LibDEF_ChannelMeta::FindChannelMeta( this.DataBroker(), this.GUID(), syncSTM.ChannelName() ) );
|
if( isnull( channel ) )
|
{
|
LibDEF_Util::EventLogError( event_i,
|
"Failed to synchronize SetTypeMeta",
|
"Error synchronizing SetTypeMeta, ChannelMeta " +
|
LibDEF_ChannelMeta::GetInstanceKeyAsString( this.GUID(), syncSTM.ChannelName() ) +
|
" cannot be found." );
|
}
|
else
|
{
|
matchedSTM := LibDEF_SetTypeMeta::Create( this,
|
channel,
|
syncSTM.Name(),
|
syncSTM.GUID() );
|
}
|
}
|
|
matchedSTM.IsSoftDeleted( false );
|
}
|
*]
|
}
|