Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method VerifyCompatibilityAndUpdateSystemVersion (String senderGUID_i, NamedValueTree nvt_i, LibDEF_IntegrationEvent event_i) as Boolean 
 | 
{ 
 | 
  Description: 
 | 
  [* 
 | 
    Checks if the Major version of a Message from another system matches with that of this systems. 
 | 
    Then, look for the System (if exist) and update its version information. 
 | 
  *] 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Timothy G May-25-2016 (created) 
 | 
    majorVersionNVT := LibDEF_DataAccessor::GetHeaderPropertyAsNumber( nvt_i, LibDEF_DataAccessor::HEADER_MAJORVERSION() ); 
 | 
    majorVersionDEF := LibDEF_DataAccessor::MAJORVERSION_VALUE(); 
 | 
     
 | 
    matchedMajorVersion := majorVersionDEF = majorVersionNVT; 
 | 
     
 | 
    // log security 
 | 
    if( not matchedMajorVersion ) 
 | 
    { 
 | 
      LibDEF_Util::EventLogError( event_i, 
 | 
                                  "Message rejected", 
 | 
                                  "Message received has MajorVersion '" + [String]majorVersionNVT 
 | 
                                  + "' while the MajorVersion of the receiving System is '" + [String]majorVersionDEF + "'." ); 
 | 
    } 
 | 
    // update version information 
 | 
    else 
 | 
    { 
 | 
      sender := LibDEF_System::FindSystemByGUID( this, senderGUID_i ); 
 | 
      if( not isnull( sender ) ) 
 | 
      { 
 | 
        minorVersionNVT := LibDEF_DataAccessor::GetHeaderPropertyAsNumber( nvt_i, LibDEF_DataAccessor::HEADER_MINORVERSION() ); 
 | 
     
 | 
        if( sender.MajorVersion() <> majorVersionNVT or sender.MinorVersion() <> minorVersionNVT ) 
 | 
        { 
 | 
          sender.UpdateVersion( majorVersionNVT, minorVersionNVT ); 
 | 
          LibDEF_Util::EventLog( event_i, "The System has an updated Data Exchange Framework of version " + [String]majorVersionNVT + "." + [String]minorVersionNVT + "." ); 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
     
 | 
    return matchedMajorVersion; 
 | 
  *] 
 | 
} 
 |