| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod CopyVersion ( | 
|   GlobalOTDTable owner, | 
|   String businessname | 
| ) as VersionControl | 
| { | 
|   Description: '复制当前版本并更新版本号' | 
|   TextBody: | 
|   [* | 
|     // Administrator Sep-13-2023 (created) | 
|     createtime := DateTime::ActualTime(); | 
|     user := QuintiqUser::CurrentUser().Username(); | 
|     starttime := DateTime::Construct(1970,1,1,0,0,0); | 
|     // Get the local scenario businesstype | 
|     businesstype := GlobalOTDTable::GetBusinessTypeName( businessname ); | 
|      | 
|     // Get the older version info | 
|     oldversionid := ""; | 
|     oldversionname := ""; | 
|      | 
|     latestversion := VersionControl::FindLatestUpdateVersion( owner, businesstype ); | 
|     copyversionid := latestversion.VersionID(); | 
|     info( copyversionid ); | 
|      | 
|     if( copyversionid.FindString( "-", 0 ) > 0 ){ | 
|       latestversionlist := copyversionid.Tokenize( "-" ); | 
|       latestversionnamelist := latestversion.LongVersionName().Tokenize( "-" ); | 
|       for( i := 0; i < latestversionlist.Size() - 1; i := i + 1 ){ | 
|         if( oldversionid = "" ){ | 
|           oldversionid := latestversionlist.Element( i ); | 
|           oldversionname := latestversionnamelist.Element( i ); | 
|           }else{ | 
|             oldversionid := oldversionid + "-" + latestversionlist.Element( i ); | 
|             oldversionname := oldversionname + "-" + latestversionnamelist.Element( i ); | 
|             } | 
|         info( oldversionid ); | 
|         } | 
|       if( oldversionid <> "" ){ | 
|         oldversionid := oldversionid + "-"; | 
|         oldversionname := oldversionname + "-"; | 
|         }  | 
|       info( oldversionid ); | 
|       } | 
|      | 
|     // Calculate new version info | 
|     additionversionid := ( createtime.MinutesAsReal( starttime ) * 60 * 10 + createtime.SecondOfMinute() ).Round( 0 ); | 
|     newversionid := oldversionid + [String]additionversionid; | 
|     newcaltype := latestversion.CalType(); | 
|     newsingleversionname := newcaltype + "(" + createtime.Format( "Y/M2/D2 H:m:s" ) + ")"; | 
|     newversionname := oldversionname + newsingleversionname; | 
|     info( newversionid ); | 
|      | 
|     // Create new version | 
|     newversion := VersionControl::Create( owner, businesstype, newcaltype, createtime, newversionid, newversionname, newsingleversionname, user ); | 
|      | 
|     return newversion; | 
|   *] | 
| } |