Quintiq file version 2.0
|
#parent: #root
|
StaticMethod ReceiveMessage (LibDMF_CommunicationChannelRoot channelRoot_i, String channelName_i, NamedValueTree nvt_i)
|
{
|
TextBody:
|
[*
|
// Get the Source information from the header of the NVT
|
sourceKind := LibInt_MessageAccessor::GetHeaderPropertyAsString( nvt_i, LibDMF_CommunicationChannel::HEADER_SOURCEKIND() );
|
sourceName := LibInt_MessageAccessor::GetHeaderPropertyAsString( nvt_i, LibDMF_CommunicationChannel::HEADER_SOURCENAME() );
|
|
// Create an IntegrationEvent
|
event := channelRoot_i.EventCreate( sourceKind, sourceName, true );
|
|
channel := select( channelRoot_i, CommunicationChannel, channel,
|
channel.Name() = channelName_i );
|
|
if( not isnull( channel ) )
|
{
|
isNotificationOnly := LibInt_MessageAccessor::HasHeaderProperty( nvt_i, LibDMF_CommunicationChannel::HEADER_IS_NOTIFICATION() ) and
|
LibInt_MessageAccessor::GetHeaderPropertyAsBoolean( nvt_i, LibDMF_CommunicationChannel::HEADER_IS_NOTIFICATION() );
|
|
if( isNotificationOnly )
|
{
|
channel.NotificationReceive( nvt_i );
|
}
|
else
|
{
|
isRequest := LibInt_MessageAccessor::HasHeaderProperty( nvt_i, LibDMF_CommunicationChannel::HEADER_IS_REQUEST() ) and
|
LibInt_MessageAccessor::GetHeaderPropertyAsBoolean( nvt_i, LibDMF_CommunicationChannel::HEADER_IS_REQUEST() );
|
|
if( isRequest )
|
{
|
channel.RequestReceive( nvt_i );
|
}
|
else
|
{
|
channel.MessageReceive( nvt_i );
|
}
|
}
|
}
|
else
|
{
|
channelRoot_i.EventLogActivityError( event,
|
"Received message for unknown Communication Channel",
|
"Received message for unknown Communication Channel '" + channelName_i + "'" );
|
}
|
*]
|
}
|