MS windream StartStop on Startup

This commit is contained in:
Digital Data - Marlon Schreiber 2018-09-27 17:11:01 +02:00
parent a004317c51
commit 3b5bb80053
10 changed files with 104 additions and 57 deletions

View File

@ -2,7 +2,7 @@
Imports DLLLicenseManager Imports DLLLicenseManager
Public Class ClassInit Public Class ClassInit
Private _windreamPM As ClassPMWindream
Public _lizenzManager As ClassLicenseManager Public _lizenzManager As ClassLicenseManager
Public Sub New() Public Sub New()
End Sub End Sub
@ -40,18 +40,18 @@ Public Class ClassInit
Return True Return True
End If End If
End Function End Function
Public Function InitWindream() 'Public Function InitWindream()
Try ' Try
' Windream instanziieren ' ' Windream instanziieren
_windreamPM = New ClassPMWindream() ' _windreamPM = New ClassPMWindream()
'Windream initialisieren (Connection, Session, ... aufbauen) ' 'Windream initialisieren (Connection, Session, ... aufbauen)
Return _windreamPM.Init() ' Return _windreamPM.Init()
Catch ex As Exception ' Catch ex As Exception
MsgBox("Fehler bei Initialisieren von windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") ' MsgBox("Fehler bei Initialisieren von windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:")
Return False ' Return False
End Try ' End Try
End Function 'End Function
Sub Refresh_Licence() Sub Refresh_Licence()
Try Try
Me._lizenzManager = New ClassLicenseManager("#DigitalData35452!#", "") Me._lizenzManager = New ClassLicenseManager("#DigitalData35452!#", "")
@ -173,11 +173,35 @@ Public Class ClassInit
sql = "select * from TBDD_CONNECTION" sql = "select * from TBDD_CONNECTION"
CURRENT_DT_TBDD_CONNECTION = ClassDatabase.Return_Datatable(sql) CURRENT_DT_TBDD_CONNECTION = ClassDatabase.Return_Datatable(sql)
Settings_LoadBasicConfig()
Catch ex As Exception Catch ex As Exception
ClassLogger.Add("Unexpected Error in InitBasics: " & ex.Message, True) ClassLogger.Add("Unexpected Error in InitBasics: " & ex.Message, True)
ERROR_STATE = "Basics not initialized" ERROR_STATE = "Basics not initialized"
End Try End Try
End Sub End Sub
Private Shared Function Settings_LoadBasicConfig()
Try
Dim sql As String = "select * from tbdd_Modules where SHORT_NAME = 'PM'"
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql)
If DT.Rows.Count = 1 Then
vWLaufwerk = DT.Rows(0).Item("STRING1")
vVERSION_DELIMITER = DT.Rows(0).Item("VERSION_DELIMITER")
vFILE_DELIMITER = DT.Rows(0).Item("FILE_DELIMITER")
Try
WMSESSION_STARTSTOP_STARTUP = DT.Rows(0).Item("WMSESSION_STARTSTOP_STARTUP")
Catch ex As Exception
WMSESSION_STARTSTOP_STARTUP = False
End Try
Else
Return False
End If
Catch ex As Exception
MsgBox("Error in Settings_LoadBasicConfig" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
Return True
End Function
Private Function Check_User_Exists_in_Group(ByVal Groupname As String) Private Function Check_User_Exists_in_Group(ByVal Groupname As String)
Try Try
Dim sel = String.Format("select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = {0} AND UPPER(T.NAME) = '{1}'", USER_ID, Groupname) Dim sel = String.Format("select T1.* from TBDD_GROUPS T, TBDD_GROUPS_USER T1 WHERE T.GUID = T1.GROUP_ID AND T1.USER_ID = {0} AND UPPER(T.NAME) = '{1}'", USER_ID, Groupname)

View File

@ -31,13 +31,13 @@ Public Class ClassWindream_allgemein
''' <remarks></remarks> ''' <remarks></remarks>
Sub New() Sub New()
' wenn ein Fehler bei der Initialisierung auftrat ' wenn ein Fehler bei der Initialisierung auftrat
If Not Me.Init() Then 'If Not Me.Init() Then
' Nachricht ausgeben ' ' Nachricht ausgeben
MsgBox("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.", MsgBoxStyle.Exclamation, "Fehler bei Initialisierung") ' MsgBox("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.", MsgBoxStyle.Exclamation, "Fehler bei Initialisierung")
' das Programm "abschießen" ' ' das Programm "abschießen"
Process.GetCurrentProcess.Kill() ' Process.GetCurrentProcess.Kill()
End If 'End If
End Sub End Sub
@ -46,7 +46,7 @@ Public Class ClassWindream_allgemein
''' </summary> ''' </summary>
''' <returns>Liefert True wenn das Anmelden erfolgreich war, sonst False</returns> ''' <returns>Liefert True wenn das Anmelden erfolgreich war, sonst False</returns>
''' <remarks></remarks> ''' <remarks></remarks>
Public Function Init() As Boolean Public Function Create_Session() As Boolean
Try Try
Try Try
' Session-Objekt instanziieren und mit dem im Client ausgewählten Server belegen ' Session-Objekt instanziieren und mit dem im Client ausgewählten Server belegen
@ -120,7 +120,7 @@ Public Class ClassWindream_allgemein
Catch ex As Exception Catch ex As Exception
If Err.Number = -2147220985 Then If Err.Number = -2147220985 Then
MsgBox("Die installierte windream-Version ist nicht ausreichend für den Betrieb der Tool Collection für windream." & vbNewLine & _ MsgBox("Die installierte windream-Version ist nicht ausreichend für den Betrieb der Tool Collection für windream." & vbNewLine &
"Bitte kontaktieren Sie Digital Data." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & Err.Description, MsgBoxStyle.Exclamation, "Unzureichende windream-Version") "Bitte kontaktieren Sie Digital Data." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & Err.Description, MsgBoxStyle.Exclamation, "Unzureichende windream-Version")
Else Else
MsgBox("Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Login an windream") MsgBox("Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Login an windream")
@ -129,7 +129,36 @@ Public Class ClassWindream_allgemein
End Try End Try
End Function End Function
Public Function Start_WMCC_andCo()
If WMSESSION_STARTSTOP_STARTUP = True Then
Try
Dim owindreamControlCenter = CreateObject("Wmcc.ControlCenter")
Dim owindreamIndexService = CreateObject("WMIndexServer.WMIdxSvControl")
owindreamControlCenter.StartVFSService(1)
owindreamIndexService.Start()
System.Threading.Thread.Sleep(1500)
Create_Session()
Catch ex As Exception
ClassLogger.Add("Error while starting up WMCC and IndexService: " & ex.Message, True)
End Try
End If
End Function
Public Function Stop_WMCC_andCo()
If WMSESSION_STARTSTOP_STARTUP = True Then
Try
Dim owindreamControlCenter = CreateObject("Wmcc.ControlCenter")
Dim owindreamIndexService = CreateObject("WMIndexServer.WMIdxSvControl")
owindreamControlCenter.StartVFSService(0)
owindreamIndexService.Shutdown()
owindreamControlCenter.ExitCC(0)
Catch ex As Exception
ClassLogger.Add("Error while Stopping WMCC and IndexService: " & ex.Message, True)
End Try
End If
End Function
#End Region #End Region

View File

@ -21,6 +21,7 @@ Module ModuleMySettings
Public vWLaufwerk As String = "W" Public vWLaufwerk As String = "W"
Public vVERSION_DELIMITER As String = "~" Public vVERSION_DELIMITER As String = "~"
Public vFILE_DELIMITER As String = "_" Public vFILE_DELIMITER As String = "_"
Public WMSESSION_STARTSTOP_STARTUP As Boolean = False
Public Function Settings_Load() Public Function Settings_Load()
Try Try
@ -190,21 +191,5 @@ Module ModuleMySettings
Return True Return True
End Function End Function
Public Function Settings_LoadBasicConfig()
Try
Dim sql As String = "select * from tbdd_Modules where NAME = 'Record-Organizer'"
Dim DT As DataTable = ClassDatabase.Return_Datatable(sql)
If DT.Rows.Count = 1 Then
vWLaufwerk = DT.Rows(0).Item("STRING1")
vVERSION_DELIMITER = DT.Rows(0).Item("VERSION_DELIMITER")
vFILE_DELIMITER = DT.Rows(0).Item("FILE_DELIMITER")
Else
Return False
End If
Catch ex As Exception
MsgBox("Error in Settings_LoadBasicConfig" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
Return True
End Function
End Module End Module

View File

@ -60,7 +60,7 @@ Public Class frmAdministration
' Windream instanziieren ' Windream instanziieren
_windreamPM = New ClassPMWindream() _windreamPM = New ClassPMWindream()
'Windream initialisieren (Connection, Session, ... aufbauen) 'Windream initialisieren (Connection, Session, ... aufbauen)
_windreamPM.Init() _windreamPM.Create_Session()
Catch ex As Exception Catch ex As Exception
MsgBox("Fehler bei Initialisieren von windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") MsgBox("Fehler bei Initialisieren von windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:")
End Try End Try

View File

@ -25,15 +25,6 @@ Public Class frmMain
Private _windream As New ClassWindream_allgemein Private _windream As New ClassWindream_allgemein
Private Sub frmProfiles_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing Private Sub frmProfiles_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
Try
ClassAllgemeineFunktionen.LoginOut("LOGOUT")
ClassLogger.Add("## ProcessManager beendet - " & Now, False)
ClassLogger.Add("", False)
Catch ex As Exception
ClassLogger.Add("### Fehler bei LogOut")
ClassLogger.Add("### Fehler: " & ex.Message)
End Try
Try Try
' Position und Größe speichern ' Position und Größe speichern
My.Settings.frmMainSize = Me.Size My.Settings.frmMainSize = Me.Size
@ -43,6 +34,18 @@ Public Class frmMain
Catch ex As Exception Catch ex As Exception
ClassLogger.Add("Error in Save FormLayout: " & ex.Message) ClassLogger.Add("Error in Save FormLayout: " & ex.Message)
End Try End Try
If _windreamPM.oSession.aLoggedin = True Then
_windreamPM.Stop_WMCC_andCo()
End If
Try
ClassAllgemeineFunktionen.LoginOut("LOGOUT")
ClassLogger.Add("## ProcessManager beendet - " & Now, False)
ClassLogger.Add("", False)
Catch ex As Exception
ClassLogger.Add("### Fehler bei LogOut")
ClassLogger.Add("### Fehler: " & ex.Message)
End Try
End Sub End Sub
Private Sub frmProfiles_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp Private Sub frmProfiles_KeyUp(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
@ -128,6 +131,12 @@ Public Class frmMain
Check_Timer_Notification() Check_Timer_Notification()
Restore_Form_Position() Restore_Form_Position()
_windreamPM = New ClassPMWindream
_windreamPM.Start_WMCC_andCo()
If _windreamPM.oSession.aLoggedin = False Then
MsgBox("Login on windream was not possible. Please check the log." & vbNewLine & "Application will close now!", MsgBoxStyle.Critical)
Me.Close()
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> MainForm initialized!", False) If LogErrorsOnly = False Then ClassLogger.Add(" >> MainForm initialized!", False)
End If End If
@ -908,7 +917,7 @@ Public Class frmMain
Private Function Init_windream() Private Function Init_windream()
Try Try
_windream = New ClassWindream_allgemein _windream = New ClassWindream_allgemein
_windream.Init() _windream.Create_Session()
If LogErrorsOnly = False Then ClassLogger.Add(" >> windream initialized", False) If LogErrorsOnly = False Then ClassLogger.Add(" >> windream initialized", False)
Return True Return True
Catch ex As Exception Catch ex As Exception

View File

@ -29,7 +29,7 @@ Public Class frmMassValidator
FORM_Shown = False FORM_Shown = False
Try Try
_windream = New ClassWindream_allgemein _windream = New ClassWindream_allgemein
_windream.Init() _windream.Create_Session()
If LogErrorsOnly = False Then ClassLogger.Add("windream initialized frmMassValidator", False) If LogErrorsOnly = False Then ClassLogger.Add("windream initialized frmMassValidator", False)
Catch ex As Exception Catch ex As Exception

View File

@ -56,7 +56,7 @@ Public Class frmSQL_DESIGNER
' Windream instanziieren ' Windream instanziieren
_windreamPM = New ClassPMWindream() _windreamPM = New ClassPMWindream()
'Windream initialisieren (Connection, Session, ... aufbauen) 'Windream initialisieren (Connection, Session, ... aufbauen)
_windreamPM.Init() _windreamPM.Create_Session()
Catch ex As Exception Catch ex As Exception
MsgBox("Fehler bei Initialisieren von windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") MsgBox("Fehler bei Initialisieren von windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:")
End Try End Try

View File

@ -93,12 +93,12 @@ Public NotInheritable Class frmSplash
Init.InitBasics() Init.InitBasics()
Init.InitUserLogin() Init.InitUserLogin()
System.Threading.Thread.Sleep(600) 'System.Threading.Thread.Sleep(600)
bw.ReportProgress(CalcProgress(5), "Initialize windream-Settings") 'bw.ReportProgress(CalcProgress(5), "Initialize windream-Settings")
Init.InitWindream() 'Init.InitWindream()
System.Threading.Thread.Sleep(250) 'System.Threading.Thread.Sleep(250)
End If End If

View File

@ -265,7 +265,7 @@ Public Class frmValidator
Private Function Init_windream() Private Function Init_windream()
Try Try
_windream = New ClassWindream_allgemein _windream = New ClassWindream_allgemein
_windream.Init() _windream.Create_Session()
If LogErrorsOnly = False Then ClassLogger.Add(" >> Windream initiiert", False) If LogErrorsOnly = False Then ClassLogger.Add(" >> Windream initiiert", False)
Return True Return True
Catch ex As Exception Catch ex As Exception
@ -1343,11 +1343,11 @@ Public Class frmValidator
aktivesDokument = _windream.oSession.GetWMObjectByPath(WMEntity.WMEntityDocument, Document_Path.Substring(2)) aktivesDokument = _windream.oSession.GetWMObjectByPath(WMEntity.WMEntityDocument, Document_Path.Substring(2))
Catch ex1 As Exception Catch ex1 As Exception
ClassLogger.Add("Fehler bei 2. Versuch windream-Objekt: " & ex1.Message) ClassLogger.Add("Fehler bei 2. Versuch windream-Objekt: " & ex1.Message)
errmessage = "Es besteht ein Problem beim Anmelden an windream - Bitte wenden Sie sich an Digital Data!" errmessage = "1-Es besteht ein Problem beim Anmelden an windream - Bitte wenden Sie sich an Digital Data!"
_err1 = True _err1 = True
End Try End Try
Else Else
errmessage = "Es besteht ein Problem beim Anmelden an windream - Bitte wenden Sie sich an Digital Data!" errmessage = "2-Es besteht ein Problem beim Anmelden an windream - Bitte wenden Sie sich an Digital Data!"
_err1 = True _err1 = True
End If End If
If _err1 = True Then If _err1 = True Then