From 3b5bb8005306a98011763b540ac8fe099a5e4dab Mon Sep 17 00:00:00 2001 From: Digital Data - Marlon Schreiber Date: Thu, 27 Sep 2018 17:11:01 +0200 Subject: [PATCH] MS windream StartStop on Startup --- .../DD_PM_WINDREAM/DesignTimeBuild/.dtbcache | Bin 218 -> 218 bytes app/DD_PM_WINDREAM/ClassInit.vb | 48 +++++++++++++----- app/DD_PM_WINDREAM/ClassWindream_allgemein.vb | 45 +++++++++++++--- app/DD_PM_WINDREAM/ModuleMySettings.vb | 19 +------ app/DD_PM_WINDREAM/frmAdministration.vb | 2 +- app/DD_PM_WINDREAM/frmMain.vb | 29 +++++++---- app/DD_PM_WINDREAM/frmMassValidator.vb | 2 +- app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb | 2 +- app/DD_PM_WINDREAM/frmSplash.vb | 8 +-- app/DD_PM_WINDREAM/frmValidator.vb | 6 +-- 10 files changed, 104 insertions(+), 57 deletions(-) diff --git a/app/.vs/DD_PM_WINDREAM/DesignTimeBuild/.dtbcache b/app/.vs/DD_PM_WINDREAM/DesignTimeBuild/.dtbcache index 671ed4a1339e1ed6980c0b51ee8bfb3acd087d30..715c91bb439b5d68c69962a8f4a3c4d0343f04fc 100644 GIT binary patch delta 48 zcmcb`c#Cm@h-@4K1A{Ar6+;X|Fhep!215};Dnlki5|Aun@SUhB&+5+L$q+KpwG{vb C=nAp` delta 51 zcmcb`c#Cm@h-erC1A{Ar6+;Yz7egvT9uTH7cuh2vpBT|3P{2^ckk63Ca7Vr_5QG6f C`wfNw diff --git a/app/DD_PM_WINDREAM/ClassInit.vb b/app/DD_PM_WINDREAM/ClassInit.vb index 1a43d20..d2d1850 100644 --- a/app/DD_PM_WINDREAM/ClassInit.vb +++ b/app/DD_PM_WINDREAM/ClassInit.vb @@ -2,7 +2,7 @@ Imports DLLLicenseManager Public Class ClassInit - Private _windreamPM As ClassPMWindream + Public _lizenzManager As ClassLicenseManager Public Sub New() End Sub @@ -40,18 +40,18 @@ Public Class ClassInit Return True End If End Function - Public Function InitWindream() - Try - ' Windream instanziieren - _windreamPM = New ClassPMWindream() - 'Windream initialisieren (Connection, Session, ... aufbauen) - Return _windreamPM.Init() + 'Public Function InitWindream() + ' Try + ' ' Windream instanziieren + ' _windreamPM = New ClassPMWindream() + ' 'Windream initialisieren (Connection, Session, ... aufbauen) + ' Return _windreamPM.Init() - Catch ex As Exception - MsgBox("Fehler bei Initialisieren von windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") - Return False - End Try - End Function + ' Catch ex As Exception + ' MsgBox("Fehler bei Initialisieren von windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") + ' Return False + ' End Try + 'End Function Sub Refresh_Licence() Try Me._lizenzManager = New ClassLicenseManager("#DigitalData35452!#", "") @@ -173,11 +173,35 @@ Public Class ClassInit sql = "select * from TBDD_CONNECTION" CURRENT_DT_TBDD_CONNECTION = ClassDatabase.Return_Datatable(sql) + Settings_LoadBasicConfig() Catch ex As Exception ClassLogger.Add("Unexpected Error in InitBasics: " & ex.Message, True) ERROR_STATE = "Basics not initialized" End Try 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) 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) diff --git a/app/DD_PM_WINDREAM/ClassWindream_allgemein.vb b/app/DD_PM_WINDREAM/ClassWindream_allgemein.vb index 2ceb680..09a19bf 100644 --- a/app/DD_PM_WINDREAM/ClassWindream_allgemein.vb +++ b/app/DD_PM_WINDREAM/ClassWindream_allgemein.vb @@ -31,13 +31,13 @@ Public Class ClassWindream_allgemein ''' Sub New() ' wenn ein Fehler bei der Initialisierung auftrat - If Not Me.Init() Then - ' 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") + 'If Not Me.Init() Then + ' ' 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") - ' das Programm "abschießen" - Process.GetCurrentProcess.Kill() - End If + ' ' das Programm "abschießen" + ' Process.GetCurrentProcess.Kill() + 'End If End Sub @@ -46,7 +46,7 @@ Public Class ClassWindream_allgemein ''' ''' Liefert True wenn das Anmelden erfolgreich war, sonst False ''' - Public Function Init() As Boolean + Public Function Create_Session() As Boolean Try Try ' Session-Objekt instanziieren und mit dem im Client ausgewählten Server belegen @@ -120,7 +120,7 @@ Public Class ClassWindream_allgemein Catch ex As Exception 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") Else MsgBox("Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Login an windream") @@ -129,7 +129,36 @@ Public Class ClassWindream_allgemein End Try 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 diff --git a/app/DD_PM_WINDREAM/ModuleMySettings.vb b/app/DD_PM_WINDREAM/ModuleMySettings.vb index 954f0e3..90830ae 100644 --- a/app/DD_PM_WINDREAM/ModuleMySettings.vb +++ b/app/DD_PM_WINDREAM/ModuleMySettings.vb @@ -21,6 +21,7 @@ Module ModuleMySettings Public vWLaufwerk As String = "W" Public vVERSION_DELIMITER As String = "~" Public vFILE_DELIMITER As String = "_" + Public WMSESSION_STARTSTOP_STARTUP As Boolean = False Public Function Settings_Load() Try @@ -190,21 +191,5 @@ Module ModuleMySettings Return True 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 diff --git a/app/DD_PM_WINDREAM/frmAdministration.vb b/app/DD_PM_WINDREAM/frmAdministration.vb index dd851b9..e518b7f 100644 --- a/app/DD_PM_WINDREAM/frmAdministration.vb +++ b/app/DD_PM_WINDREAM/frmAdministration.vb @@ -60,7 +60,7 @@ Public Class frmAdministration ' Windream instanziieren _windreamPM = New ClassPMWindream() 'Windream initialisieren (Connection, Session, ... aufbauen) - _windreamPM.Init() + _windreamPM.Create_Session() Catch ex As Exception MsgBox("Fehler bei Initialisieren von windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") End Try diff --git a/app/DD_PM_WINDREAM/frmMain.vb b/app/DD_PM_WINDREAM/frmMain.vb index fea0b5d..3a9f597 100644 --- a/app/DD_PM_WINDREAM/frmMain.vb +++ b/app/DD_PM_WINDREAM/frmMain.vb @@ -25,15 +25,6 @@ Public Class frmMain Private _windream As New ClassWindream_allgemein 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 ' Position und Größe speichern My.Settings.frmMainSize = Me.Size @@ -43,6 +34,18 @@ Public Class frmMain Catch ex As Exception ClassLogger.Add("Error in Save FormLayout: " & ex.Message) 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 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() 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) End If @@ -908,7 +917,7 @@ Public Class frmMain Private Function Init_windream() Try _windream = New ClassWindream_allgemein - _windream.Init() + _windream.Create_Session() If LogErrorsOnly = False Then ClassLogger.Add(" >> windream initialized", False) Return True Catch ex As Exception diff --git a/app/DD_PM_WINDREAM/frmMassValidator.vb b/app/DD_PM_WINDREAM/frmMassValidator.vb index 516f1fb..4a01014 100644 --- a/app/DD_PM_WINDREAM/frmMassValidator.vb +++ b/app/DD_PM_WINDREAM/frmMassValidator.vb @@ -29,7 +29,7 @@ Public Class frmMassValidator FORM_Shown = False Try _windream = New ClassWindream_allgemein - _windream.Init() + _windream.Create_Session() If LogErrorsOnly = False Then ClassLogger.Add("windream initialized frmMassValidator", False) Catch ex As Exception diff --git a/app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb b/app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb index 3d48456..aee6993 100644 --- a/app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb +++ b/app/DD_PM_WINDREAM/frmSQL_DESIGNER.vb @@ -56,7 +56,7 @@ Public Class frmSQL_DESIGNER ' Windream instanziieren _windreamPM = New ClassPMWindream() 'Windream initialisieren (Connection, Session, ... aufbauen) - _windreamPM.Init() + _windreamPM.Create_Session() Catch ex As Exception MsgBox("Fehler bei Initialisieren von windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Achtung:") End Try diff --git a/app/DD_PM_WINDREAM/frmSplash.vb b/app/DD_PM_WINDREAM/frmSplash.vb index edadc0c..d6bfc4a 100644 --- a/app/DD_PM_WINDREAM/frmSplash.vb +++ b/app/DD_PM_WINDREAM/frmSplash.vb @@ -93,12 +93,12 @@ Public NotInheritable Class frmSplash Init.InitBasics() Init.InitUserLogin() - System.Threading.Thread.Sleep(600) + 'System.Threading.Thread.Sleep(600) - bw.ReportProgress(CalcProgress(5), "Initialize windream-Settings") - Init.InitWindream() + 'bw.ReportProgress(CalcProgress(5), "Initialize windream-Settings") + 'Init.InitWindream() - System.Threading.Thread.Sleep(250) + 'System.Threading.Thread.Sleep(250) End If diff --git a/app/DD_PM_WINDREAM/frmValidator.vb b/app/DD_PM_WINDREAM/frmValidator.vb index 6a07a0d..b7f3fe6 100644 --- a/app/DD_PM_WINDREAM/frmValidator.vb +++ b/app/DD_PM_WINDREAM/frmValidator.vb @@ -265,7 +265,7 @@ Public Class frmValidator Private Function Init_windream() Try _windream = New ClassWindream_allgemein - _windream.Init() + _windream.Create_Session() If LogErrorsOnly = False Then ClassLogger.Add(" >> Windream initiiert", False) Return True Catch ex As Exception @@ -1343,11 +1343,11 @@ Public Class frmValidator aktivesDokument = _windream.oSession.GetWMObjectByPath(WMEntity.WMEntityDocument, Document_Path.Substring(2)) Catch ex1 As Exception 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 End Try 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 End If If _err1 = True Then