Quintiq file version 2.0
|
#parent: #root
|
Method SendDataSuccessGetSet (LibDEF_Set set_i, NamedValueTree request_i, LibDEF_IntegrationEvent event_i,
|
Boolean inChunk_i)
|
{
|
Description: 'Send a Data-Success message for requesting a Set.'
|
TextBody:
|
[*
|
LibDEF_Util::EventLog( event_i, "Sending GetSet reply." );
|
|
dataBroker := this.DataBroker();
|
channel := set_i.SetType().Channel();
|
|
// Export the set to NVT
|
setNvt := NamedValueTreeIO::Export( set_i );
|
|
// Prepare message
|
nvt := LibDEF_DataAccessor::CreateMessageData();
|
|
// Add headers
|
type := LibDEF_DataAccessor::GetDataHeaderPropertyAsString( request_i, LibDEF_DataAccessor::HEADER_TYPE() );
|
datasetMDSID := LibDEF_DataAccessor::GetDataHeaderPropertyAsKey( request_i, LibDEF_DataAccessor::HEADER_DATASETMDSID() );
|
datasetDTD := LibDEF_DataAccessor::GetDataHeaderPropertyAsKey( request_i, LibDEF_DataAccessor::HEADER_DATASETDTD() );
|
datasetType := LibDEF_DataAccessor::GetDataHeaderPropertyAsString( request_i, LibDEF_DataAccessor::HEADER_DATASETMODELTYPE() );
|
LibDEF_DataAccessor::SetDataHeaderProperty( nvt, LibDEF_DataAccessor::HEADER_TYPE(), type );
|
LibDEF_DataAccessor::SetDataHeaderProperty( nvt, LibDEF_DataAccessor::HEADER_SETTYPEGUID(), set_i.SetType().GUID() );
|
LibDEF_DataAccessor::SetDataHeaderProperty( nvt, LibDEF_DataAccessor::HEADER_SETGUID(), set_i.GUID() );
|
LibDEF_DataAccessor::SetDataHeaderProperty( nvt, LibDEF_DataAccessor::HEADER_SETLASTUPDATED(), set_i.LastUpdated() );
|
LibDEF_DataAccessor::SetDataHeaderProperty( nvt, LibDEF_DataAccessor::HEADER_DATASETMDSID(), datasetMDSID );
|
LibDEF_DataAccessor::SetDataHeaderProperty( nvt, LibDEF_DataAccessor::HEADER_DATASETDTD(), datasetDTD );
|
LibDEF_DataAccessor::SetDataHeaderProperty( nvt, LibDEF_DataAccessor::HEADER_DATASETMODELTYPE(), datasetType );
|
|
if( not inChunk_i )
|
{
|
// Fill in the message body with the setNvt
|
LibDEF_DataAccessor::SetDataBody( nvt, setNvt );
|
}
|
else
|
{
|
// create a DataTransfer
|
dataBroker := this.DataBroker();
|
setMeta := LibDEF_SetMeta::FindSetMeta( dataBroker, dataBroker.SystemLocal().GUID(),
|
set_i.ChannelName(), set_i.SetTypeName(), set_i.Name() );
|
dataTransfer := LibDEF_DataTransfer::Create( this.DataBroker().QueueOutbox(),
|
LibDEF_NamedValueTreeProcessor::GetCumulativeNumberOfChildren( setNvt.Root() ),
|
"",
|
setMeta,
|
this,
|
event_i );
|
|
// Add chunking related headers
|
LibDEF_DataAccessor::SetDataHeaderProperty( nvt, LibDEF_DataAccessor::HEADER_ISINIT(), true ); // this is the initialization only
|
LibDEF_DataAccessor::SetDataHeaderProperty( nvt, LibDEF_DataAccessor::HEADER_DATATRANSFERGUID(), dataTransfer.GUID() );
|
|
// export the DataTransfer into NVT
|
LibDEF_DataAccessor::SetDataBody( nvt, NamedValueTreeIO::Export( dataTransfer ) );
|
|
// Add internal message for the async SOAP procedure to retrieve the payload to be chunked
|
LibDEF_DataAccessor::SetInternalMessageHeaderProperty( nvt, LibDEF_DataAccessor::HEADER_TYPE(), LibDEF_DataAccessor::TYPE_INTERNALMESSAGE_PAYLOADTOCHUNK() );
|
LibDEF_DataAccessor::SetInternalMessageBody( nvt, setNvt );
|
}
|
|
// Send data
|
dataBroker.SendData( this, nvt, LibDEF_DataAccessor::KIND_SUCCESS(), event_i,
|
channel.Name(), channel.MajorVersion(), channel.MinorVersion() );
|
*]
|
}
|