Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method RequestReceive (NamedValueTree nvt_i) 
 | 
{ 
 | 
  Description: 
 | 
  [* 
 | 
    Receive a Request from a System. 
 | 
    (1) This method is overridden for the HierarchyChannel in order to deal with Hierarchy-related requests. 
 | 
  *] 
 | 
  TextBody: 
 | 
  [* 
 | 
    sourceKind  := LibInt_MessageAccessor::GetHeaderPropertyAsString( nvt_i, LibDMF_CommunicationChannel::HEADER_SOURCEKIND()  ); 
 | 
    sourceName  := LibInt_MessageAccessor::GetHeaderPropertyAsString( nvt_i, LibDMF_CommunicationChannel::HEADER_SOURCENAME()  ); 
 | 
    messageType := LibInt_MessageAccessor::GetHeaderPropertyAsString( nvt_i, LibDMF_CommunicationChannel::HEADER_MESSAGETYPE() ); 
 | 
    messageID   := LibInt_MessageAccessor::GetHeaderPropertyAsString( nvt_i, LibDMF_CommunicationChannel::HEADER_MESSAGEID()   ); 
 | 
    requestID   := LibInt_MessageAccessor::GetHeaderPropertyAsString( nvt_i, LibDMF_CommunicationChannel::HEADER_REQUESTID()   ); 
 | 
     
 | 
    root := this.CommunicationChannelRoot(); 
 | 
     
 | 
    // Retrieve IntegrationEvent 
 | 
    event := root.EventGetLast( sourceKind, sourceName ); 
 | 
     
 | 
    // Log this action for tracing and update the IntegrationEvent 
 | 
    LibDMF_Util::Trace( sourceName, messageID, messageType, "", false, true ); 
 | 
    root.EventUpdateTraceInfo( event, messageID, requestID, messageType, "" ); 
 | 
     
 | 
    // In case of a HierarchyChannel some actions have already been done at Hierarchy-level before this method was called. 
 | 
    // These actions should not be done again. 
 | 
    if( not this.IsHierarchyChannel() ) 
 | 
    { 
 | 
      // Temporary store the RequestID, so it can be added to the header of the response that will be send. 
 | 
      this.RequestID( requestID ); 
 | 
     
 | 
      root.EventLogActivity( event, 
 | 
                             "Received request '" + messageType + "' for CommunicationChannel = '" + this.Name() + "'; MessageID = " + messageID + ", RequestID = " + requestID ); 
 | 
    } 
 | 
     
 | 
    if( messageType = LibDMF_CommunicationChannel::REQUEST_GETSET() ) 
 | 
    { 
 | 
      this.RequestReceiveGetSet( nvt_i ); 
 | 
    } 
 | 
    else if( messageType = LibDMF_CommunicationChannel::REQUEST_GETSETSFORTYPE() ) 
 | 
    { 
 | 
      this.RequestReceiveGetSetsForType( nvt_i ); 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      root.EventLogActivityError( event, 
 | 
                                  "Received unknown request '" + messageType + "' for CommunicationChannel = '" + this.Name() + "'", 
 | 
                                  "Received unknown request '" + messageType + "' for CommunicationChannel = '" + this.Name() + "'; MessageID = " + messageID  + ", RequestID = " + requestID ); 
 | 
    } 
 | 
     
 | 
    // Reset the RequestID 
 | 
    this.RequestID( LibDMF_CommunicationChannel::REQUEST_NO_ID() ); 
 | 
  *] 
 | 
} 
 |