Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method ImportNVT (BinaryValue binaryValue, LibWiz_InitProcess process) as LibWiz_InitProcess 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    // Import from binary file  
 | 
     
 | 
    canImport := binaryValue.Size() > 0; 
 | 
    objImport := null( Object, owning ); 
 | 
    wizardType := this.GetType(); 
 | 
    processType := process.GetType(); 
 | 
    copyProcess := null( LibWiz_InitProcess ); 
 | 
    processName := process.Name(); 
 | 
     
 | 
    if( canImport ) 
 | 
    { 
 | 
      binaryData := binaryValue.AsBinaryData(); 
 | 
      importNVT := NamedValueTreeBinaryIO::NamedValueTreeFromBinaryData( binaryData ); 
 | 
      nameValue := select( importNVT.Root().Children(), Elements, e, e.Name() = wizardType.Name() );  
 | 
     
 | 
      canImport := not isnull( nameValue ); 
 | 
      if( canImport ) 
 | 
      {      
 | 
        // Flush old process 
 | 
        process.Delete(); 
 | 
         
 | 
        // Generate new IDs on NVT in order to avoid type index error 
 | 
        // when importing a workflow for a feature process that results from the export of another feature process  
 | 
        rootObj := select( importNVT.Root().Children(), Elements, e, true ); 
 | 
        LibWiz_NVTTools::GenerateIds( rootObj, '' ); 
 | 
     
 | 
        objImport := NamedValueTreeIO::ImportObject( importNVT, nameValue, wizardType );    
 | 
     
 | 
        wizardManager := objImport.astype( LibWiz_Wizard ); 
 | 
        if( processType = typeof( LibWiz_InitProcessBase ) ) 
 | 
        { 
 | 
          copyProcess := guard( wizardManager.LibWiz_InitProcessBase(), null( LibWiz_InitProcessBase ) ); 
 | 
          canImport := not isnull( copyProcess ); 
 | 
          if( canImport ) 
 | 
          {  
 | 
            this.LibWiz_InitProcessBase( relmove, copyProcess.astype( LibWiz_InitProcessBase ) );  
 | 
          } 
 | 
        } 
 | 
        else if( processType = typeof( LibWiz_InitProcessFeature ) ) 
 | 
        { 
 | 
          copyProcess := select( wizardManager, LibWiz_InitProcessFeature, p, true ); 
 | 
          canImport := not isnull( copyProcess ); 
 | 
          if( canImport ) 
 | 
          { 
 | 
            copyProcess.Name( processName ); // Keep old process name 
 | 
            this.LibWiz_InitProcessFeature( relmove, copyProcess.astype( LibWiz_InitProcessFeature ) );  
 | 
          } 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
     
 | 
    if( not canImport ) 
 | 
    { 
 | 
      info( 'Import of Wizard Process failed.' ); 
 | 
    } 
 | 
     
 | 
    return copyProcess; 
 | 
  *] 
 | 
} 
 |