Quintiq file version 2.0 
 | 
#parent: #root 
 | 
StaticMethod Archive ( 
 | 
  JSON respJSON, 
 | 
  Archive archive, 
 | 
  String archiveType, 
 | 
  BinaryValue ppaBinaryValue, 
 | 
  String curveFileName, 
 | 
  BinaryValue curveBinaryValue 
 | 
) 
 | 
{ 
 | 
  TextBody: 
 | 
  [* 
 | 
    code             := respJSON.Get( "code" ).GetNumber(); 
 | 
    archiveFileJSONs := guard( respJSON.Get( "archiveFiles" ),JSON::Array().Build() ); 
 | 
    //info( archiveFileJSONs.AsString() ); 
 | 
     
 | 
    if ( code = 200 or code = 201 ) { 
 | 
      for ( i := 0; i < archiveFileJSONs.Size(); i++ ) { 
 | 
        archiveFileJSON := archiveFileJSONs.Get( i ); 
 | 
         
 | 
        fileName        := archiveFileJSON.Get( "fileName" ).GetString(); 
 | 
        filePath        := archiveFileJSON.Get( "fileFullPath" ).GetString(); 
 | 
         
 | 
        if ( archiveType = "PR" ) { 
 | 
          apr := select( archive, ArchiveFile.astype( ArchivePR ), tempAPR, tempAPR.Name() = fileName ); 
 | 
          if ( not isnull( apr ) ) { 
 | 
            apr.FilePath( filePath ); 
 | 
          } else { 
 | 
            archive.ArchiveFile( relnew,ArchivePR, Name := fileName, FilePath := filePath ); 
 | 
          } 
 | 
        } else if ( archiveType = "PP" ) { 
 | 
          app := select( archive, ArchiveFile.astype( ArchivePP ), tempAPP, tempAPP.Name() = fileName ); 
 | 
          if ( not isnull( app ) ) { 
 | 
            app.FilePath( filePath ); 
 | 
          } else { 
 | 
            archive.ArchiveFile( relnew,ArchivePP, Name := fileName, FilePath := filePath ); 
 | 
          } 
 | 
        } else if ( archiveType = "Budget" ) { 
 | 
          ab := select( archive, ArchiveFile.astype( ArchiveBudget ), tempAB, tempAB.Name() = fileName ); 
 | 
          if ( not isnull( ab ) ) { 
 | 
            ab.FilePath( filePath ); 
 | 
          } else { 
 | 
            archive.ArchiveFile( relnew,ArchiveBudget, Name := fileName, FilePath := filePath ); 
 | 
          } 
 | 
        } else if ( archiveType = "PPA" ) { 
 | 
          // 存档PPA 
 | 
          appa := select( archive, ArchiveFile.astype( ArchivePPA ), tempAPPA, tempAPPA.Name() = fileName ); 
 | 
          if ( not isnull( appa ) ) { 
 | 
            appa.FilePath( filePath ); 
 | 
            appa.SourceFileBinaryValue( ppaBinaryValue ); 
 | 
          } else { 
 | 
            archive.ArchiveFile( relnew,ArchivePPA, Name := fileName, FilePath := filePath, SourceFileBinaryValue := ppaBinaryValue ); 
 | 
          } 
 | 
           
 | 
          // 存档Curve 
 | 
          ac := select( archive, ArchiveFile.astype( ArchiveCurve ), tempAC, true ); 
 | 
          if ( not isnull( ac ) ) { 
 | 
            ac.Delete(); 
 | 
          } 
 | 
          archive.ArchiveFile( relnew,ArchiveCurve, Name := "始终只存一版.xlsx", FilePath := curveFileName, SourceFileBinaryValue := curveBinaryValue ); 
 | 
        } 
 | 
      } 
 | 
    } 
 | 
  *] 
 | 
} 
 |