Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod EchoFromQI ( 
 | 
  String msg_i 
 | 
) as String 
 | 
{ 
 | 
  Description: 
 | 
  [* 
 | 
    Let the QIntegrator echo a message back to the QAE. 
 | 
    Can be used to 'fake' messages coming from external systems via the QIntegrator. 
 | 
    Assumes a QI-route called "Echo" to be present. 
 | 
  *] 
 | 
  TextBody: 
 | 
  [* 
 | 
    echoedMsg := ""; 
 | 
     
 | 
    //info( ">>> MSG" ); 
 | 
    //info( msg_i ); 
 | 
     
 | 
    // Create a NVT that contains msg_i as content as request for the QIntegrator. 
 | 
    requestNVT := LibDIF_IntegrationDataset::CreateRequestForQI( msg_i ); 
 | 
     
 | 
    //info( ">>> RequestNVT" ); 
 | 
    //info( requestNVT.ToString() ); 
 | 
     
 | 
    // Trigger the action in the QIntegrator and wait for its response. 
 | 
    integratorID := LibDIF_Util::INTEGRATORID_ECHO(); 
 | 
    errMsg       := ""; 
 | 
    responseNVT  := LibInt_IntegratorProxy::SyncNvtRequest( integratorID, "", requestNVT, errMsg ); 
 | 
     
 | 
    if( errMsg <> "" ) 
 | 
    { 
 | 
      info( "ERROR received from QIntegrator" ); 
 | 
      error( errMsg ); 
 | 
    } 
 | 
    else 
 | 
    { 
 | 
      //info( ">>> ResponseNVT" ); 
 | 
      //info( responseNVT.ToString() ); 
 | 
       
 | 
      // Retrieve the message from the Body of the replied NVT. 
 | 
      bodyNode  := responseNVT.Root().Child( responseNVT.GetHandle( "Body" ) ); 
 | 
      echoedMsg := bodyNode.GetValueAsString(); 
 | 
     
 | 
      //info( ">>> Echoed MSG" ); 
 | 
      //info( echoedMsg ); 
 | 
    } 
 | 
     
 | 
    return echoedMsg; 
 | 
  *] 
 | 
} 
 |