Imports WINDREAMLib
Imports WINDREAMLib.WMCOMEvent
Imports WINDREAMLib.WMEntity
Imports WINDREAMLib.WMObjectEditMode
Imports WINDREAMLib.WMSearchOperator
Imports WINDREAMLib.WMSearchRelation
Imports WMOBRWSLib
Public Class ClassWindream_allgemein
#Region "+++++ Konstanten +++++"
Const DEBUG = AUS
Const AUS = 0
Const WINDREAM = 1
Const VARIABLEN = 2
#End Region
#Region "+++++ Variablen +++++"
Public oConnect ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht)
Public oSession 'As WINDREAMLib.WMSession ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht)
Public oBrowser As New WMOBRWSLib.ServerBrowser
Public oDokumentTypen As WINDREAMLib.WMObjects
#End Region
#Region "+++++ Allgemeine Methoden und Funktionen +++++"
'''
''' Konstruktor für die windream-Klasse
'''
'''
Sub New()
' wenn ein Fehler bei der Initialisierung auftrat
If Not Me.Init() Then
' Nachricht ausgeben
clsLogger.Add("Es trat ein Fehler bei der Initialisierung der Klasse windream auf. Bitte prüfen Sie ob der windream-Server aktiv ist und alle Dienste gestartet sind.!", True)
' das Programm "abschießen"
Process.GetCurrentProcess.Kill()
End If
End Sub
'''
''' Initialisiert die statische Klasse (Login, Session starten, usw.)
'''
''' Liefert True wenn das Anmelden erfolgreich war, sonst False
'''
Public Function Init() As Boolean
Try
Try
' Session-Objekt instanziieren und mit dem im Client ausgewählten Server belegen
Me.oSession = CreateObject("Windream.WMSession", Me.GetCurrentServer)
'If My.Settings.vDetailLog Then ClassLogger.Add(" windream-Server: '" & Me.GetCurrentServer & "'", False)
' Connection-Objekt instanziieren
Me.oConnect = CreateObject("Windream.WMConnect")
'MsgBox("windrem init 'ed")
Catch ex As Exception
Return False
End Try
' wenn windream nicht angemeldet ist
If Not Me.IsLoggedIn Then
' Art der Anmeldung an windream festlegen
' 0x0L (also 0) = Standard windream Benutzer
' WM_MODULE_ID_DOCTYPEEDITOR_LIC = ermöglicht Zugriff auf die windream Management Funktionen (Z.B. zur Verwaltung der windream Dokumententypen, Auswahllisten, etc.)
' WM_MODULE_ID_INDEXSERVICE = ermöglicht der Session die Indexierungs-Events vom windream DMS-Service zu empfangen
Me.oConnect.ModuleID = 0
' setzt die minimal erwartete windream-Version
Me.oConnect.MinReqVersion = "3"
' -- Impersonifizierung nur möglich mit registry-eintrag --
' oConnect.UserName "\schulung\windream"
' oConnect.Password "windream"
' Verbindung mit Session-Objekt (und dem ausgewählten Server) aufbauen
Me.oConnect.LoginSession(Me.oSession)
If Me.oSession.aLoggedin = False Then
clsLogger.Add("Es konnte keine Session aufgebaut werden!", True)
Return False
End If
'If My.Settings.vDetailLog Then
' ClassLogger.Add(" windream-Version: '" & oSession.GetSystemInfo("WindreamVersion") & "'", False)
'End If
' AUSGABE VON SYSTEMINFORMATIONEN
' Gibt die Versionsart (Lizenztyp) also Small-Business-Edition (SBE), Small-Business-Extension (SBX)
' oder Business-Edition (BE) aus
'MsgBox("WindreamVersion: " & oSession.GetSystemInfo("WindreamVersion") & vbNewLine & "LicenceKey: " & oSession.GetSystemInfo("LicenceKey") & vbNewLine & _
' vbNewLine & "LicenceName: " & oSession.GetSystemInfo("LicenceName"))
'Dim WMCtrl As AISCONTROLDATACOMLib.AISControlData
'WMCtrl = New AISCONTROLDATACOMLib.AISControlData
'' liefert die Versionsnummer des Clients
'MsgBox(WMCtrl.WMWorkstationBuildNo)
'MsgBox(WMCtrl.W
'' liefert den Servernamen des angemeldeten windreams
'MsgBox(WMCtrl.WMServerName)
Try
Me.oSession.SwitchEvents(WMCOMEventWMSessionNeedIndex, False)
' der Parameter WMEntityDocument definiert, dass nur Dokumenttypen und keine
' Ordnertypen ausgelesen werden
Me.oDokumentTypen = Me.oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
Catch ex As Exception
Return False
End Try
End If
Return True
Catch ex As Exception
If Err.Number = -2147220985 Then
Else
clsLogger.Add(ex.Message & vbNewLine & "Fehler beim Login an windream!", True)
End If
Return False
End Try
End Function
#End Region
#Region "+++++ Funktionen die für den Objekttyp relevate Informationen zurückliefern +++++"
Public Function GetTypeOfIndex(ByVal indexname As String) As Integer
Try
Dim oAttribute = Me.oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
Dim vType = oAttribute.getVariableValue("dwAttrType")
Return vType
Catch ex As Exception
Return Nothing
End Try
End Function
#End Region
#Region "+++++ Allgemeine Funktionen die Informationen zurückliefern +++++"
'''
''' Liefert True wenn die windream-Session angemeldet ist und False für den Fall, dass die Session nicht eingeloggt ist.
'''
''' Anmeldestatus als Boolean
'''
Public Function IsLoggedIn() As Boolean
Try
Return Me.oSession.aLoggedin
Catch ex As Exception
clsLogger.Add("Me.oSession.aLoggedin was ended with error: " & ex.Message, True)
End Try
Return False
End Function
'''
''' Liefert den Servernamen an dem windream aktuell angemeldet ist.
'''
''' Servername als String
'''
Public Function GetCurrentServer() As String
Try
Return Me.oBrowser.GetCurrentServer 'ClassWindream.oBrowser.GetCurrentServer
Catch ex As Exception
clsLogger.Add(ex.Message & vbNewLine & "Der aktuell gewählte windream-Server konnte nicht ausgelesen werden!", True)
End Try
Return ""
End Function
#End Region
End Class