admin
2025-01-22 7e31442f0e9b07764e9c6a9680d3d4aeba5fe1de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Quintiq file version 2.0
#parent: #root
Method OnSuccessExchangeDataByChunk (NamedValueTree nvt_i)
{
  Description: 'Handle cases of success for sending ExchangeDataByChunk.'
  TextBody:
  [*
    // Jacky CHAN Apr-26-2016 (created)
    // retrieve kind
    kind := LibDEF_DataAccessor::GetHeaderPropertyAsString( nvt_i, LibDEF_DataAccessor::HEADER_KIND() );
    
    if( LibDEF_DataAccessor::HasChildNamed( nvt_i, nvt_i.Root(), LibDEF_DataAccessor::HANDLE_CONFIGURATION() ) )
    {
      // Handle configuration message
    }
    else if( LibDEF_DataAccessor::HasChildNamed( nvt_i, nvt_i.Root(), LibDEF_DataAccessor::HANDLE_METADATA() ) )
    {
      // Handle metadata message
    }
    else if( LibDEF_DataAccessor::HasChildNamed( nvt_i, nvt_i.Root(), LibDEF_DataAccessor::HANDLE_DATA() ) )
    {
      // Handle set-data message
      // retrieve type
      type := LibDEF_DataAccessor::GetDataHeaderPropertyAsString( nvt_i, LibDEF_DataAccessor::HEADER_TYPE() );
      
      if( ( kind = LibDEF_DataAccessor::KIND_SUCCESS() and type = LibDEF_DataAccessor::TYPE_DATA_GETSETCHUNKED() ) or
          ( kind = LibDEF_DataAccessor::KIND_REQUEST() and type = LibDEF_DataAccessor::TYPE_DATA_SETCREATEDCHUNKED() ) or
          ( kind = LibDEF_DataAccessor::KIND_REQUEST() and type = LibDEF_DataAccessor::TYPE_DATA_SETUPDATEDCHUNKED() ) )
      {
        // both of these can be processed by the same handler
        dataTransferGUID := LibDEF_DataAccessor::GetDataHeaderPropertyAsString( nvt_i, LibDEF_DataAccessor::HEADER_DATATRANSFERGUID() );
        dataTransfer := select( this, QueueOutbox.DataTransfer, dt, dt.GUID() = dataTransferGUID );
        dataTransfer.ExternalSystem().SendDataByChunkOnSuccess( nvt_i, dataTransfer, kind, type ); // we can get the target system from the datatransfer object itself
      }
    }
  *]
}