| Quintiq file version 2.0 | 
| #parent: #root | 
| MethodOverride RequestReceive (NamedValueTree nvt_i) | 
| { | 
|   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, "" ); | 
|      | 
|     // 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_GETHIERARCHY() ) | 
|     { | 
|       this.RequestReceiveGetHierarchy( nvt_i ); | 
|     } | 
|      | 
|     else | 
|     { | 
|       // Handle requests that are not specific for a Hierarchy Channel. | 
|       super.RequestReceive( nvt_i ); | 
|     } | 
|      | 
|     // Reset the RequestID | 
|     this.RequestID( LibDMF_CommunicationChannel::REQUEST_NO_ID() ); | 
|   *] | 
| } |