home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / upgrade_contents.tcl < prev    next >
Text File  |  1996-06-03  |  3KB  |  101 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #    (c) Cadre Technologies Inc. 1996
  4. #
  5. #    File:        %W%
  6. #    Author:        Harm Leijendeckers
  7. #    Description:    Upgrade contents of an Ot4OMT-4.0/00 repository
  8. #            to an Ot4OMT-4.0/01 repository
  9. #
  10. #---------------------------------------------------------------------------
  11. # SccsId = %W%    %G%    Copyright 1996 Cadre Technologies Inc.
  12.  
  13. source [m4_path_name tcl libocl.tcl]
  14.  
  15. OTShRegister::repository
  16. OTShRegister::reportWriter
  17.  
  18. require upgrade_menus.tcl
  19.  
  20.  
  21. set CC [ClientContext::global]
  22.  
  23.  
  24. proc upgradeContents {} {
  25.     set corp [$CC currentCorporate]
  26.  
  27.     puts "Upgrading repository contents for corporate '[$corp name]'"
  28.     puts ""
  29.  
  30.     foreach proj [$corp projects] {
  31.     foreach cv [$proj configVersions] {
  32.         foreach pv [$cv phaseVersions] {
  33.         foreach dv [query "system.type == document && \
  34.                    status == working" $pv.systemVersions] {
  35.             $CC setLevelIds /[$corp identity]/[$proj identity]/[$cv \
  36.                     identity]/[$pv identity]/[$dv identity]
  37.             upgradeDocument $dv
  38.         }
  39.         }
  40.     }
  41.     }
  42.  
  43.     puts ""
  44.     puts "Upgrading repository contents finished"
  45. }
  46.  
  47.  
  48. proc upgradeDocument { dv } {
  49.     puts "Upgrading document '[[$dv system] name]'"
  50.     if { [$dv status] == "frozen" } {
  51.     if { [$dv unfreeze] == -1 } {
  52.         return
  53.     }
  54.     }
  55.  
  56.     set allItprops [query "\"findProperty SECTIONTYPE\" != [ORB::nil] && \
  57.             \"findProperty SECTIONTYPE.value\" == Itemprop" \
  58.             [$dv localFileVersions]]
  59.     set allFiprops [query "\"findProperty SECTIONTYPE\" != [ORB::nil] && \
  60.             \"findProperty SECTIONTYPE.value\" == Fileprop" \
  61.             [$dv localFileVersions]]
  62.  
  63.     foreach itprop $allItprops {
  64.     set name      [[$itprop findProperty fileSystemPath] value]
  65.     set refProps  [[$itprop findProperty properties] value]
  66.     set refItem   [Item new [[$itprop findProperty repItemId] value]]
  67.     set refVers   [Version new [[$itprop findProperty repItemKeeper] value]]
  68.     set refObject [$refVers object]
  69.  
  70.     set newIp [$dv createItemPropRef $name Itemprop $refObject $refItem]
  71.  
  72.     $newIp setProperty SECTIONTYPE    ItemProp
  73.     $newIp setProperty fileSystemPath $name.text
  74.     $newIp setProperty refProperties  $refProps
  75.  
  76.     # remove old one
  77.     $dv remove -fileVersion $itprop
  78.     }
  79.  
  80.     foreach fiprop $allFiprops {
  81.     set name     [[$fiprop findProperty fileSystemPath   ] value]
  82.     set refProps [[$fiprop findProperty properties       ] value]
  83.     set refFile  [File new [[$fiprop findProperty repFile] value]]
  84.  
  85.     set newFp [$dv createFilePropRef $name Fileprop $refFile]
  86.  
  87.     $newFp setProperty SECTIONTYPE    FileProp
  88.     $newFp setProperty fileSystemPath $name.text
  89.     $newFp setProperty refProperties  $refProps
  90.  
  91.     # remove old one
  92.     $dv remove -fileVersion $fiprop
  93.     }
  94. }
  95.  
  96.  
  97. if { [catch { upgradeContents; upgradeRepMenus } string] == 1 } {
  98.     puts $errorInfo
  99.     exit
  100. }
  101.