MTS-hallintaa automatisoiva Visual Basic -esimerkkisovellus

Visual Basic 5.0:n esimerkkisovellus havainnollistaa, miten Catalog-, CatalogObject- ja CatalogCollections -objekteihin käytettyjen menetelmien avulla automatisoidaan "Scriptable Admin Demo" -paketin perushallinnan toimintoja.

Huomautus Visual Basic -projekti on asetettava viittaamaan MTS-hallintatyyppikirjastoon (MTSAdmin-tyyppikirjasto). Voit asettaa viittaukset MTSAdmin-tyyppikirjastoon napsauttamalla Visual Basic Project -työkalurivin Viittaukset-painiketta. Etsi käytettävissä olevien viitetiedostojen luettelosta "MTS 2.0 -hallintatyyppikirjasto". Suorituksen aikana sidottavien muuttujien osalta Visual Basic etsii tyyppikirjaston ilman asetusten muuttamista, jos Mtxadmin.dll-tiedosto on rekisteröity paikallisessa tietokoneessasi.

"Scriptable Admin Demo" -pakettien poistaminen:

  1. Luo Catalog-objektin esiintymä CreateObject-menetelmän avulla.
    Dim catalog As Object
    Set catalog = CreateObject("MTSAdmin.Catalog.1")
  2. Nouda Packages-kokoelmaobjekti kutsumalla GetCollection-menetelmää. Packages-kokoelma palautetaan noutamatta luettelon tietoja, joten kokoelma on tyhjä GetCollection-menetelmäkutsun suorittamisen jälkeen.
    Dim packages As Object
    Set packages = catalog.GetCollection("Packages")
  3. Voit etsiä "Scriptable Admin Demo" -paketin nykyisen version määrittämällä Packages-kokoelman lukemaan kaikki paketit ja etsimään pakettia "Scriptable Admin Demo". Käy kokoelma läpi, suurimmasta indeksistä alkaen, jotta Remove-menetelmää voidaan kutsua silmukasta. Remove-menetelmä vapauttaa objektin, poistaa sen kokoelmasta ja siirtää kokoelman objekteja siten, että objekti(n+1) muuttuu objektiksi(n) kaikilla muuttujan n arvoilla, jotka ovat vähintään yhtä suuria kuin poistettava indeksi. Remove-menetelmän vaikutus näkyy kokoelmaobjektissa heti. Remove-menetelmän jälkeen kutsuttavat Item- ja Count-menetelmät ottavat huomioon indeksiin tehdyt muutokset. Paketin poistamista ei kuitenkaan toteuteta luettelossa, ennen kuin SaveChanges-menetelmää kutsutaan (katso vaihe 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. Tallenna muutokset tietolähteeseen kutsumalla SaveChanges-menetelmää.
    packages.SaveChanges

Uuden "Scriptable Admin Demo Package" -paketin luominen:

  1. Lisää uusi paketti Add-menetelmän avulla ja kirjaa paketin tunnus muistiin. Add-menetelmä lisää objektin kokoelmaan, mutta ei toteuta muutoksia luetteloon, ennen kuin SaveChanges-menetelmää kutsutaan (katso vaihe 3). Add-menetelmä asettaa kaikki ominaisuudet oletusarvojen mukaisesti. Oletusarvoinen tunnus on uusi yksilöllinen tunnus.
    Dim newPack As Object
    Dim newPackID As Variant
    Set newPack = packages.Add
    newPackID = newPack.Value("ID")
  2. Päivitä Name- ja SecurityEnabled-ominaisuudet.
    newPack.Value("Name") = "Scriptable Admin Demo"
    newPack.Value("SecurityEnabled") = "N"
  3. Tallenna paketti luetteloon kutsumalla SaveChanges-menetelmää. Tämän kutsun palautettava arvo on muutettujen, lisättyjen tai poistettujen objektien määrä. Jos toteuttamattomia muutoksia ei ole, palautettava arvo on 0.
    n = packages.SaveChanges

"Scriptable Admin Demo" -paketin ominaisuuksien päivittäminen ja ComponentsInPackage-kokoelman noutaminen:

  1. Lue paketti luettelosta kutsumalla PopulateByKey-menetelmää. Välitä luettavien objektien avaimet sisältävä taulukko. Esimerkkikoodissa käytetään taulukkoa, joka sisältää vain yhden elementin (luodun paketin tunnuksen).
    Dim keys(0) as Variant
    keys(0) = newPackId
    packages.PopulateByKey keys
  2. Nouda pakettiobjekti kokoelmasta.
    Dim package As Object
    Set package = packages.Item(0)
  3. Päivitä paketin SecurityEnabled-ominaisuus.
    package.Value("SecurityEnabled") = "Y" 
  4. Nouda ComponentsInPackage-kokoelma kutsumalla GetCollection-menetelmää. Anna "Scriptable Admin Demo" -paketin avain parametrina.
    Set components = packages.GetCollection("ComponentsInPackage",_ 	  package.Key)
       
    1. Tallenna muutokset luetteloon kutsumalla SaveChanges-menetelmää.
      packages.SaveChanges

    Komponentin asentaminen "Scriptable Admin Demo package" -pakettiin:

    1. Nouda komponenttiapuobjekti kutsumalla GetUtilInterface-menetelmää. Objektia käytetään komponenttien asentamiseen.
      Dim util As Object
      Set util = components.GetUtilInterface
      On Error GoTo installFailed
    2. Kutsu InstallComponent-menetelmää ja välitä asennettavan komponentin dynaamisesti linkitettävän kirjaston (DLL) nimi. Jos komponentilla ei ole ulkoista tyyppikirjastoa tai välitysfunkio-DLL-tiedostoa, välitä toisena ja kolmantena argumenttina tyhjä merkkijono. Uuden komponentin asentamisen jälkeen ei ole tarpeen kutsua SaveChanges-menetelmää. Tämä menetelmä asentaa kaikki DDL:n sisältämät komponentit ja kirjoittaa ne luetteloon. Nouda asennettujen komponenttien CLSID:t kutsumalla GetCLSIDs-menetelmää.
      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. Lue asennetut komponentit kutsumalla PopulateByKey-menetelmää. Pakettiin InstallComponent-menetelmällä asennetut komponentit eivät näy kokoelmassa, ennen kuin Populate- tai PopulateByKey-menetelmää kutsutaan luettelon tietojen lukemiseksi.
      components.PopulateByKey installedCLSIDs

    Bank.CreateTable-komponentin etsiminen ja poistaminen "Scriptable Admin Demo Package" -paketista:

    1. Iteroi komponentit ja muuta tapahtuma-attribuutteja Item- ja Count-menetelmien avulla.
      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. Etsi ja poista komponentti Bank.CreateTable indekseittäin. Kokoelma pitää iteroida takaperin, jotta Remove-menetelmää voidaan kutsua silmukasta.
      If component.Value("ProgID") = "Bank.CreateTable" Then
              components.Remove (i)
          End If
      Next
    3. Hae uusi määrä ja iteroi kokoelma uudelleen. Komponenttia Bank.CreateTable ei poisteta tietolähteestä, ennen kuin SaveChanges-menetelmää kutsutaan. Näytä sanomaruutu, joka kertoo käyttäjälle asennuksen onnistumisesta.
      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 -paketti asennettu ja määritetty."
      Exit Sub
      
      installFailed:
          MsgBox "Virhekoodi " + Str$(Err.Number) + " asennettaessa kohdetta " + thePath + "  Varmista, että antamasi MTS:n polku on oikea ja että tiedostoa Vbacct.dll ei ole asennettu."
      End Sub

    Katso myös

    MTS-hallintaobjektit, MTS-kokoelmatyypit, MTS-hallintaobjektimenetelmät, MTS-hallinnan automatisoiminen Visual Basicin avulla, Kehittyneen MTS-hallinnan automatisoiminen Visual Basicin avulla


© 1998 Microsoft Corporation. Kaikki oikeudet pidätetään.