Przyk│adowa aplikacja utworzona za pomoc╣ programu Visual Basic, automatyzuj╣ca administrowanie w programie MTS

Przyk│adowa aplikacja, utworzona w programie Visual Basic w wesji 5.0, ma na celu ilustracjΩ sposobu korzystania z metod obiekt≤w Catalog, CatalogObject i CatalogCollections, automatyzuj╣cych podstawowe czynno£ci administracyjne dla pakietu o nazwie ôScriptable Admin Demoö.

Notka Projekt utworzony w jΩzyku Visual Basic nale┐y skonfigurowaµ tak, aby odwo│ywa│ siΩ do biblioteki typ≤w administracyjnych programu MTS (biblioteki typ≤w MTSAdmin). W tym celu na pasku narzΩdzi projektu nale┐y zaznaczyµ opcjΩ References. NastΩpnie nale┐y przeszukaµ dostΩpne pliki odwo│a± i odszukaµ plik o nazwie ôMTS 2.0 Admin Type Libraryö. W przypadku zmiennych "wi╣zanych p≤ƒniej" (wi╣zanie ustalane po uruchomieniu programu) i uprzedniej rejestracji w komputerze lokalnym pliku MTXADMIN.DLL program Visual Basic zlokalizuje bibliotekΩ typ≤w bez dalszej konfiguracji.

Aby usun╣µ jakiekolwiek istniej╣ce pakiety o nazwach ôScriptable Admin Demoö

  1. Wywo│aj metodΩ CreateObject, aby utworzyµ instancjΩ obiektu katalogu.
    Dim catalog As Object
    Set catalog = CreateObject("MTSAdmin.Catalog.1")
  2. Wywo│uj╣c metodΩ GetCollection, pobierz kolekcjΩ Packages. Kolekcja Packages jest zwracana bez pobierania danych z katalogu, w zwi╣zku z czym pozostanie ona pusta a┐ do momentu zako±czenia metody GetCollection.
    Dim packages As Object
    Set packages = catalog.GetCollection("Packages")
  3. Odszukaj poprzedni╣ wersjΩ pakietu "Scriptable Admin Demo", zmuszaj╣c kolekcjΩ Packages do odczytu ze wszystkich pakiet≤w i poszukiwania pakiet≤w o nazwie "Scriptable Admin Demo". Przeszukuj kolekcjΩ za pomoc╣ pΩtli rozpoczynaj╣cej sie od najwy┐szego indeksu; w pΩtli wywo│uj metodΩ Remove. Metoda Remove powoduje zwolnienie obiektu, usuniΩcie obiektu z kolekcji i przesuniΩcie obiekt≤w kolekcji tak, ┐e obiekt o indeksie (n+1) staje siΩ obiektem (n) (dla wszystkich n wiΩkszych lub r≤wnych ni┐ indeks obiektu usuwanego). Wynik metody Remove jest natychmiastowy. Metody Item i Count, wywo│ywane po ka┐dym wykonaniu metody Remove, powoduj╣ zmiany indeks≤w. Tym niemniej, usuniΩcie pakietu zostanie uwzglΩdnione w katalogu dopiero po wykonaniu metody SaveChanges (patrz krok 4).
    packages.Populate
    Dim pack As Object
    n = packages.Count
    For i = n - 1 To 0 Step -1
        If packages.Item(i).Value("Name") = "Scriptable Admin Demo" Then
            packages.Remove (i)
    End If
    Next
  4. Wywo│aj metodΩ SaveChanges, aby zapisaµ zmiany w katalogu danych.
    packages.SaveChanges

Aby utworzyµ nowy pakiet o nazwie ôScriptable Admin Demo Packageö

  1. Za pomoc╣ metody Add dodaj nowy pakiet i zanotuj skojarzony z nim identyfikator. Metoda Add spowoduje dodanie obiektu do kolekcji, ale wprowadzone przez ni╣ zmiany zostan╣ zastosowane do katalogu dopiero po wywo│aniu metody SaveChanges (patrz krok 3). W wyniku metody Add dla wszystkich w│a£ciwo£ci zostan╣ okre£lone warto£ci domy£lne. Identyfikatorem domy£lnym stanie siΩ nowy, unikatowy identyfikator.
    Dim newPack As Object
    Dim newPackID As Variant
    Set newPack = packages.Add
    newPackID = newPack.Value("ID")
  2. Uaktualnij w│a£ciwo£ci Name i SecurityEnabled.
    newPack.Value("Name") = "Scriptable Admin Demo"
    newPack.Value("SecurityEnabled") = "N"
  3. Wywo│aj metodΩ SaveChanges, aby zapisaµ nowy pakiet w katalogu. Warto£ci╣ zwrotn╣ wywo│ania jest liczba obiekt≤w, kt≤re zmieniono, dodano lub usuniΩto. Je£li nie dokonano ┐adnych zmian, zwracane jest 0.
    n = packages.SaveChanges

Aby uaktualniµ w│a£ciwo£ci pakietu ôScriptable Admin Demoö i pobraµ kolekcjΩ ComponentsInPackage.

  1. Wywo│aj metodΩ PopulateByKey, aby ponownie odczytaµ pakiet z katalogu. Przeka┐ tablicΩ zawieraj╣c╣ klucze do odczytywanych obiekt≤w. W poni┐szym przyk│adzie kodu u┐yto tablicy zawieraj╣cej jeden element (tj. identyfikator utworzonego przed chwil╣ pakietu).
    Dim keys(0) as Variant
    keys(0) = newPackId
    packages.PopulateByKey keys
  2. Pobierz pakiet (obiekt pakietu) z kolekcji.
    Dim package As Object
    Set package = packages.Item(0)
  3. Uaktualnij w│a£ciwo£µ SecurityEnabled pakietu.
    package.Value("SecurityEnabled") = "Y" 
  4. Wywo│aj metodΩ GetCollection, aby pobraµ kolekcjΩ ComponentsInPackage. Jak parametr wywo│ania przeka┐ klucz do pakietu "Scriptable Admin Demo".
    Set components = packages.GetCollection("ComponentsInPackage",_ 	  package.Key)
       
    1. Wywo│aj metodΩ SaveChanges, aby zapisaµ zmiany w katalogu.
      packages.SaveChanges

    Aby zainstalowaµ sk│adnik componentasdefcomponent w pakiecie "Scriptable Admin Demo package":

    1. Wywo│aj metodΩ GetUtilInterface, aby pobraµ obiekt narzΩdziowy sk│adnika. Obiekt ten s│u┐y do instalacji sk│adnik≤w.
      Dim util As Object
      Set util = components.GetUtilInterface
      On Error GoTo installFailed
    2. Wywo│aj metodΩ InstallComponent, przekazuj╣c w wywo│aniu ci╣g znak≤w okre£laj╣cy nazwΩ biblioteki DLL (biblioteki do│╣czanej dynamicznie) instalowanego sk│adnika. Je£li sk│adnik nie zawiera zewnΩtrznej biblioteki typ≤w ani biblioteki DLL typu proxy-stub, w miejsce drugiego i trzeciego argumentu wywo│ania przeka┐ ci╣gi puste. Po zainstalowaniu nowego sk│adnika nie musisz wywo│ywaµ metody SaveChanges. Wszystkie sk│adniki zawarte w bibliotece DLL zostan╣ zainstalowane i natychmiast zapisane do katalogu. Na koniec wywo│aj metodΩ GetCLSIDs, aby pobraµ identyfikatory klas (CLSID) zainstalowanych sk│adnik≤w.
      Form2.Show 1
      Dim thePath As String
      thePath = Form2.MTSPath + "\samples\packages\vbacct.dll"
      util.InstallComponent thePath, "", ""
      Dim installedCLSIDs() as Variant
      util.GetCLSIDs thePath, ôö, installedCLSIDs
      On Error GoTo 0
    3. Wywo│aj metodΩ PopulateByKey, aby z powrotem odczytaµ zainstalowane przed chwil╣ sk│adniki. ProszΩ zauwa┐yµ, ┐e sk│adniki zainstalowane za pomoc╣ metody InstallComponent zostan╣ pokazane w kolekcji dopiero po wywo│aniu metody Populate lub PopulateByKey, s│u┐╣cej do odczytu danych z katalogu.
      components.PopulateByKey installedCLSIDs

    Aby odszukaµ sk│adnik Bank.CreateTable i usun╣µ go z pakietu "Scriptable Admin Demo package":

    1. Wywo│aj sk│adniki o kolejnych indeksach i zmie± ich atrybuty transakcji za pomoc╣ metod Item i Count.
      Dim component As Object
      n = components.Count
      For i = n - 1 To 0 Step -1
          Set component = components.Item(i)
          component.Value("Transaction") = "Required"
    2. Odszukaj i usu± sk│adnik Bank.CreateTable. Kolekcja jest przegl╣dana wstecz, indeks po indeksie, a metoda Remove jest wywo│ywana w pΩtli.
      If component.Value("ProgID") = "Bank.CreateTable" Then
              components.Remove (i)
          End If
      Next
    3. Pobierz now╣ warto£µ licznika (n) i ponownie wywo│uj kolejne elementy kolekcji. Sk│adnik Bank.CreateTable zostanie usuniΩty ze zbioru danych dopiero po wywo│aniu metody SaveChanges. Wy£wietl okno komunikatu, informuj╣ce u┐ytkownika o pomy£lnym zako±czeniu instalacji.
      n = components.Count
      For i = 0 To n - 1
          Set component = components.Item(i)
          Debug.Print component.Value("ProgID")
          Debug.Print component.Value("DLL")
      Next
      
      n = components.SaveChanges
      MsgBox "Scriptable Admin Demo package installed and configured."
      Exit Sub
      
      installFailed:
          MsgBox "Error code " + Str$(Err.Number) + " installing " + thePath + "  Make sure the MTS path you entered is correct and that vbacct.dll is not already installed."
      End Sub

    Zobacz te┐

    Obiekty administracyjne programu MTS, Typy kolekcji programu MTS, Metody obiekt≤w administracyjnych programu MTS, Automatyzacja czynno£ci administracyjnych programu MTS za pomoc╣ programu Visual Basic, Automatyzacja zaawansowanych czynno£ci administracyjnych programu MTS za pomoc╣ programu Visual Basic


© 1998 Microsoft Corporation. Wszelkie prawa zastrze┐one.