Quintiq file version 2.0
|
#parent: #root
|
Method SendMessage (String targetSystemGUID_i, String targetHostName_i, Number targetPortNumber_i,
|
NamedValueTree nvt_i, String messageKind_i, LibDEF_IntegrationEvent event_i)
|
{
|
Description: 'Send the message to the destination, add all the mandatory headers.'
|
TextBody:
|
[*
|
// Jacky CHAN Apr-25-2016 (created)
|
hasTargetSystemGUID := targetSystemGUID_i.Length() > 0;
|
|
// restrict non-Configuration message requires a valid System entry
|
if( not hasTargetSystemGUID and
|
( LibDEF_DataAccessor::HasChildNamed( nvt_i, nvt_i.Root(), LibDEF_DataAccessor::HANDLE_METADATA() ) or
|
LibDEF_DataAccessor::HasChildNamed( nvt_i, nvt_i.Root(), LibDEF_DataAccessor::HANDLE_DATA() ) ) )
|
{
|
// Fail-safe check when this method is triggered for the wrong kind of messages.
|
LibDEF_Util::EventLogError( event_i,
|
"Failed to send data",
|
"The GUID of the target-System is unknown. (Meta)data messages can only be sent when the GUID is known." );
|
}
|
|
// add mandatory headers
|
LibDEF_DataAccessor::SetHeaderProperty( nvt_i, LibDEF_DataAccessor::HEADER_DOMAINGUID(), this.DomainGUID() );
|
LibDEF_DataAccessor::SetHeaderProperty( nvt_i, LibDEF_DataAccessor::HEADER_MAJORVERSION(), LibDEF_DataAccessor::MAJORVERSION_VALUE() );
|
LibDEF_DataAccessor::SetHeaderProperty( nvt_i, LibDEF_DataAccessor::HEADER_MINORVERSION(), LibDEF_DataAccessor::MINORVERSION_VALUE() );
|
LibDEF_DataAccessor::SetHeaderProperty( nvt_i, LibDEF_DataAccessor::HEADER_MESSAGEID(), LibDEF_Util::GenerateGUID() );
|
LibDEF_DataAccessor::SetHeaderProperty( nvt_i, LibDEF_DataAccessor::HEADER_KIND(), messageKind_i );
|
|
// add identification information
|
LibDEF_DataAccessor::SetHeaderProperty( nvt_i, LibDEF_DataAccessor::HEADER_SYSTEMGUID_FROM(), this.SystemGUID() );
|
|
if( hasTargetSystemGUID )
|
{
|
LibDEF_DataAccessor::SetHeaderProperty( nvt_i, LibDEF_DataAccessor::HEADER_SYSTEMGUID_TO(), targetSystemGUID_i );
|
}
|
|
if( not isnull( event_i ) )
|
{
|
eventActivityTitle := "Sending data to "
|
+ ifexpr( hasTargetSystemGUID, "'" + targetSystemGUID_i + "' at ", "" )
|
+ LibDEF_Util::FormatCoordinateToString( targetHostName_i, targetPortNumber_i );
|
|
LibDEF_Util::EventLog( event_i, eventActivityTitle );
|
}
|
|
this.SendMessageViaSOAP( targetSystemGUID_i, targetHostName_i, targetPortNumber_i,
|
nvt_i, event_i );
|
*]
|
}
|