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