Compare commits

..

11 Commits

Author SHA1 Message Date
Developer01
edf172e034 Nochmal referencen 2025-08-25 12:04:47 +02:00
Developer01
4a2ea9e764 Referencen Config,DB und Log aktualisiert 2025-08-25 12:04:15 +02:00
Developer01
b141617ae6 MergeCommt 2025-08-25 12:00:09 +02:00
Developer01
6ddb48ec07 Merge Commit 2025-08-25 11:58:28 +02:00
Developer01
dd9998756f Documentlayout Unklar woher das kommt VS intern? 2025-08-25 11:57:30 +02:00
Developer01
bb8c85cf1e ContentIndex 2025-08-25 11:56:19 +02:00
OlgunR
7314576b41 FileContent Index 2025-08-25 11:53:32 +02:00
OlgunR
fdce249bd0 Merge 2025-08-25 11:52:29 +02:00
OlgunR
0f254e9880 Automatisches Löschen von Logdateien - frmGrundeinstellungen, frmStart 2025-08-22 14:28:22 +02:00
Developer01
c5e0a4df81 json 2025-06-18 09:36:38 +02:00
Developer01
4e40cec97e MS PersonifiedLogin 2025-06-06 13:25:50 +02:00
39 changed files with 860 additions and 785 deletions

6
.gitignore vendored
View File

@@ -158,3 +158,9 @@ $RECYCLE.BIN/
/ToolCollection/.vs/ToolCollection/v16/Server/sqlite3
/.vs/ToolCollection/v16/Server/sqlite3
/ToolCollection/.vs/ToolCollection/v15/Server/sqlite3
/.vs/ToolCollection/FileContentIndex/719c2c5a-903b-46fb-98ca-0e3edcec50ec.vsidx
/.vs/ToolCollection/FileContentIndex
/ToolCollection/.vs/ToolCollection.vbproj.dtbcache.json
/NIService/.vs/NIService.csproj.dtbcache.json
/.vs/ToolCollection/v17/DocumentLayout.json
/.vs/ToolCollection/v17/DocumentLayout.backup.json

View File

@@ -1,3 +0,0 @@
{
"CurrentProjectSetting": null
}

Binary file not shown.

View File

@@ -0,0 +1,14 @@
{
"ShowEmptyProjects": false,
"SelectedGroups": [],
"ExpandedProjects": [],
"EnableSpellChecker": true,
"ColumnOrder": [
"name",
"type"
],
"VisibleColumnKeys": [
"name",
"neutral-value"
]
}

View File

@@ -1,7 +0,0 @@
{
"ExpandedNodes": [
""
],
"SelectedNode": "\\ToolCollection.sln",
"PreviewInSolutionExplorer": false
}

Binary file not shown.

View File

@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31005.135
# Visual Studio Version 17
VisualStudioVersion = 17.14.36203.30 d17.14
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ToolCollection", "ToolCollection\ToolCollection.vbproj", "{AC6B3398-DE0E-4580-9422-6E4D97FA4494}"
EndProject
@@ -20,6 +20,7 @@ Global
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{AC6B3398-DE0E-4580-9422-6E4D97FA4494}.Debug|Any CPU.ActiveCfg = Debug|x86
{AC6B3398-DE0E-4580-9422-6E4D97FA4494}.Debug|Any CPU.Build.0 = Debug|x86
{AC6B3398-DE0E-4580-9422-6E4D97FA4494}.Debug|x64.ActiveCfg = Debug|x64
{AC6B3398-DE0E-4580-9422-6E4D97FA4494}.Debug|x64.Build.0 = Debug|x64
{AC6B3398-DE0E-4580-9422-6E4D97FA4494}.Debug|x86.ActiveCfg = Debug|x86

View File

@@ -1,3 +0,0 @@
{
"CurrentProjectSetting": null
}

View File

@@ -1,6 +0,0 @@
{
"ExpandedNodes": [
""
],
"PreviewInSolutionExplorer": false
}

Binary file not shown.

View File

@@ -7,16 +7,12 @@ Public Class ClassDI
' ++++++++++++++++++++++++++++++++++++++++++++++ Methoden ++++++++++++++++++++++++++++++++++++++++++++++
Sub New(LogConfig As LogConfig)
Try
' 3a. Windream instanziieren
Me._windream = New ClassWindream_allgemein(LogConfig)
' 3b. Windream initialisieren (Connection, Session, ... aufbauen)
Me._windream.Init()
Catch ex As Exception
MsgBox("Unbekannter Fehler im Konstuktor des Moduls 'XYZ'." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Unbekannter Fehler")
End Try

View File

@@ -85,6 +85,10 @@ Public Class ClassDIProfile
' gibt ein einzelnes Profil-Objekt zurück
Public Shared Function getProfilByName(ByVal profilname As String) As ClassDIProfil
If _profiles Is Nothing Then
Return Nothing
End If
' alle Profile durchlaufen
For Each profil As ClassDIProfil In _profiles

View File

@@ -29,156 +29,6 @@ Public Class ClassMO_REOld
Return False
End Try
End Function
'Public Shared Function RUN_MO_RE(ByVal dokument As WMObject, ByVal vDatei As String, ByVal _MRDOKART As Object, ByVal _MRKUNDE As Object) As String
' Try
' Dim DT As New DataTable
' Dim _MRDeskrIndex
' Dim _path, _praefix, _kunde, _ziel As String
' _Logger.Debug(">> Ausgelesener Kundenidentifikator: " & _MRKUNDE)
' _Logger.Debug(">> Ausgelesene Dokumentart: " & _MRDOKART)
' Dim oSelect As String
' If _MRKUNDE Is Nothing Or _MRKUNDE = "" Then
' 'Auslesen der MORE-Konfiguration für Kunde und Standard
' oSelect = "SELECT * FROM VWMO_RE_DOKUMENTARTZUORDNUNG WHERE (DOKUMENTART = '" & _MRDOKART.ToString & "') AND (UPPER(KUNDEN_NAME) = 'STANDARD')"
' DT = Return_Datatable(oSelect)
' _Logger.Debug(oSelect)
' Else
' If _MRKUNDE = "Standard-VZ" Then _MRKUNDE = "Standard"
' oSelect = "SELECT * FROM VWMO_RE_DOKUMENTARTZUORDNUNG WHERE (DOKUMENTART = '" & _MRDOKART.ToString & "') AND (UPPER(KUNDEN_NAME) = UPPER('" & _MRKUNDE.ToString & "'))"
' 'Auslesen der MORE-Konfiguration für Kunde und Dokart
' DT = Return_Datatable(oSelect)
' _Logger.Debug("Select2: " & oSelect)
' End If
' If DT.Rows.Count = 0 Then
' _Logger.Debug("Für Kunden keine Daten - also Standard lesen")
' oSelect = "SELECT * FROM VWMO_RE_DOKUMENTARTZUORDNUNG WHERE (DOKUMENTART = '" & _MRDOKART.ToString & "') AND (UPPER(KUNDEN_NAME) = 'STANDARD')"
' 'Für diesen Kunden wurde keine Konfiguration gefunden also den Standard laden
' DT = Return_Datatable(oSelect)
' _Logger.Debug("Select3: " & oSelect)
' End If
' If DT.Rows.Count = 1 Then
' 'Es liegt sowohl Kunde als auch Dokumentart vor
' Try
' _Logger.Debug("Versuch für den Index " & DT.Rows(0).Item("INDEXNAME").ToString & " den Indexwert auszulesen")
' Dim sw As New ClassStopwatch($"GetVariableValue _MRDeskrIndex({DT.Rows(0).Item("INDEXNAME").ToString})")
' _MRDeskrIndex = dokument.GetVariableValue(DT.Rows(0).Item("INDEXNAME").ToString)
' Dim msg = sw.Done
' If msg <> String.Empty Then _Logger.Info(msg)
' Catch ex As Exception
' _Logger.Warn("Achtung: ein eindeutiger/deskriptiver Indexwert existiert noch nicht! Dokument kann nicht verschoben und umbenannt werden!")
' Return False
' End Try
' _Logger.Debug("Ausgelesener Deskriptiver Index: " & _MRDeskrIndex)
' 'Datei-Paramter auslesen
' Dim extension As String = Path.GetExtension(vDatei)
' Dim myFolderPath As String
' myFolderPath = Path.GetDirectoryName(vDatei)
' Dim _WDLaufwerk, _newfilename As String
' _WDLaufwerk = My.Settings.MRWD_Laufwerk
' _path = DT.Rows(0).Item("DOKUMENTARTORDNER")
' '####### _path anpassen evtl Unterordner
' 'Unterordner Index 1
' Dim _UOindex As String = DT.Rows(0).Item("UO_IDX1")
' Dim _UOindex_Value As String = ""
' If _UOindex <> "" Then
' Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})")
' _UOindex_Value = dokument.GetVariableValue(_UOindex)
' Dim msg = sw.Done
' If msg <> String.Empty Then _Logger.Info(msg)
' If Not _UOindex_Value Is Nothing Then
' _path &= "\" & _UOindex_Value
' If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "")
' _Logger.Debug("Unterordner 1 soll erzeugt werden - Path '" & _path & "'")
' End If
' End If
' 'Unterordner Index 2
' _UOindex = DT.Rows(0).Item("UO_IDX2")
' If _UOindex <> "" Then
' Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})")
' _UOindex_Value = dokument.GetVariableValue(_UOindex)
' Dim msg = sw.Done
' If msg <> String.Empty Then _Logger.Info(msg)
' If Not _UOindex_Value Is Nothing Then
' _path &= "\" & _UOindex_Value
' If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "")
' _Logger.Debug("Unterordner 2 soll erzeugt werden - Path '" & _path & "'")
' End If
' End If
' _UOindex = DT.Rows(0).Item("UO_IDX3")
' If _UOindex <> "" Then
' Dim sw As New ClassStopwatch($"GetVariableValue _UOindex({_UOindex})")
' _UOindex_Value = dokument.GetVariableValue(_UOindex)
' Dim msg = sw.Done
' If msg <> String.Empty Then _Logger.Info(msg)
' If Not _UOindex_Value Is Nothing Then
' _path &= "\" & _UOindex_Value
' If _path.Contains(" 00:00:00") Then _path = _path.Replace(" 00:00:00", "")
' _Logger.Debug("Unterordner 3 soll erzeugt werden - Path '" & _path & "'")
' End If
' End If
' '#####
' _kunde = DT.Rows(0).Item("KUNDEN_NAME")
' _praefix = DT.Rows(0).Item("PRAEFIX")
' 'Dem Neuen Dateinamen schon mal das Präfix mitgeben
' _newfilename = _praefix
' _newfilename = _newfilename & _MRDeskrIndex & extension
' _Logger.Debug("Ausgelesener Pfad: " & _path)
' _Logger.Debug("Neuer Dateiname: " & _newfilename)
' '### VERSIONIERUNG ###
' Dim version As Integer = 2
' Dim Stammname As String = _newfilename.Substring(0, _newfilename.LastIndexOf("."))
' Dim neuername As String = _newfilename.Substring(0, _newfilename.LastIndexOf("."))
' 'Überprüfen ob File existiert
' Do While file_exists(_path & "\" & neuername & extension, False) = True
' neuername = Stammname & "~" & version
' _newfilename = neuername & extension
' version = version + 1
' Loop
' _ziel = _path & "\" & _newfilename
' If My.Settings.vLogErrorsonly = False Then
' If neuername.Contains("~") Then _Logger.Info("Neuer Dateiname: " & _newfilename)
' _Logger.Debug("Neuer Dateiname: " & _newfilename)
' _Logger.Debug("Quelle: " & vDatei)
' _Logger.Debug("Ziel: " & _ziel)
' End If
' If myFolderPath <> _path Then
' _windreamNI.NEW_MOVE_FILE(_ziel, vDatei, "MO_RE")
' 'ClassLoggerNI.Add(" ######### Erfolgsmeldung - Datei wurde erfolgreich umbenannt und verschoben ###########")
' Else
' _Logger.Info("Verschieben nicht notwendig: Ordnerpfad identisch!")
' Dim sw As New ClassStopwatch("RenameFile")
' My.Computer.FileSystem.RenameFile(vDatei, _newfilename)
' _Logger.Debug("Erfolgsmeldung - Datei wurde erfolgreich umbenannt")
' Dim msg = sw.Done
' If msg <> "" Then _Logger.Debug($"SWResult: {msg}")
' End If
' Execute_Command("INSERT INTO TBMO_RE_HISTORY (FILE_ORIGINAL, FILE_NEW, KUNDE, INDEX1, INDEX2, ERSTELLTWER) VALUES " &
' "('" & vDatei & "','" & _ziel & "','" & _kunde & "','" & _MRDeskrIndex & "','" & _MRDOKART & "','ToolCollection MORE')")
' Return _ziel
' Else
' _Logger.Info("MO_RE Result was not 1 row: check select..." & oSelect)
' Return False
' End If
' Catch ex As Exception
' _Logger.Error(ex)
' MsgBox(ex.Message, MsgBoxStyle.Critical)
' Return False
' End Try
'End Function
Private Shared Function file_exists(ByVal _file As String, ByVal suche As Boolean)
Try
_file = _file.Replace("W:", "\\windream\objects")

View File

@@ -300,9 +300,7 @@ Public Class ClassNIDatenbankzugriff
Catch ex As Exception
' an dieser Stelle sollte jeder unvorhergesehene Fehler der Funktion abgefangen werden
_Logger.Error(ex)
'If My.Settings.vMailsenden = True Then
' email.Send_EMail("Profilname: " & Profilname & "<br>ClassNIDatenbankzugriff.ExecuteonOracleDb - Ein unbekannter Fehler in ExecuteonOracleDb: " & ex.Message)
'End If
Timer_Stop()
Return 0
End Try
@@ -540,7 +538,6 @@ Public Class ClassNIDatenbankzugriff
Catch ex As Exception
_Logger.Error(ex)
EMAIL_DD.Send_EMail("Profilname: " & Profilname & "<br>ClassNIDatenbankzugriff.GetValueFromMssqlDb - SQL-Abfrage definieren: " & ex.Message, "NIDB_GetValueFromMssqlDb")
' DB-Connection schliessen
SQLconnect.Close()

View File

@@ -1,39 +0,0 @@
Imports System.Net.Mail
Imports System.IO
Imports DigitalData.Modules.Logging
Public Class ClassEmail
Private Shared _Logger As DigitalData.Modules.Logging.Logger
Public Shared err_message As String
Public Sub New(pLogConf As DigitalData.Modules.Logging.LogConfig)
_Logger = pLogConf.GetLogger()
End Sub
Public Sub Send_EMail(ByVal vBody As String, ByVal pRefString As String)
'#### E-MAIL NACHRICHT VERSENDEN
Try
If My.Settings.vMailRecipient <> "" And My.Settings.vMailsenden = True Then
If My.Settings.vMailRecipient.Contains(";") Then
Dim oPROC As String
Dim oBody As String = ""
If My.Settings.vMailBodyPraefix <> String.Empty Then
oBody = My.Settings.vMailBodyPraefix
End If
oBody += "<br>>> machinename: " & Environment.MachineName
oBody += "<br>>> Domain-Name: " & Environment.UserDomainName
oPROC = $"EXEC PREMAIL_NEW_EMAIL {My.Settings.vMailProfilID},'{My.Settings.vMailRecipient}','{My.Settings.vMailSubject}','{oBody}','{pRefString}',9999,8888,'ToolCollection'"
If Not IsNothing(DB_ECM) Then
If DB_ECM.DBInitialized Then
DB_ECM.ExecuteNonQuery(oPROC)
End If
End If
End If
End If
'########
Catch ex As Exception
_Logger.Warn(">> Achtung: Fehler in Mailversand: " & ex.Message)
End Try
End Sub
End Class

View File

@@ -349,6 +349,10 @@ Public Class ClassNIProfile
' gibt ein einzelnes Profil-Objekt zurück
Public Shared Function getProfilByName(ByVal profilname As String) As ClassNIProfil
If _profiles Is Nothing Then
Return Nothing
End If
' alle Profile durchlaufen
For Each profil As ClassNIProfil In _profiles

View File

@@ -1,6 +1,9 @@
Imports WINDREAMLib
Imports WMOSRCHLib
Imports DigitalData.Modules.Logging
Imports System.Reflection
Imports System.Runtime
Public Class ClassNIWindream
Inherits ClassWindream_allgemein
Private Shared _Logger As DigitalData.Modules.Logging.Logger
@@ -174,21 +177,28 @@ Public Class ClassNIWindream
_Logger.Debug("Typ des windream-Indexes: 8204 Integer")
Case 8
_Logger.Debug("Typ des windream-Indexes: 8 Vektor Boolean")
Case Else
_Logger.Info($"RunIndexing_Vektor - Invalid type: {vType}")
End Select
Dim Anzahl As Integer = aValues.Length - 1
Dim oAnzahl_Werte As Integer = aValues.Length - 1
Dim oIndex = 0
For Each aValue As String In aValues
oIndex += 1
Next
_Logger.Debug("RunIndexing_Vektor - oIndex = {0}", oIndex)
'Vektorfeld wird mit EINEM Wert gefüllt
If Anzahl = 0 Then
If oAnzahl_Werte = 0 Or oIndex = 1 Then
_Logger.Debug("RunIndexing_Vektor: Vektorfeld wird mit EINEM Wert gefüllt ")
ReDim myArray(0)
myArray(0) = Convert_IndexValue(vType, aValues(0))
_Logger.Debug("RunIndexing_Vektor: Konvertierter Wert: " & myArray(0).ToString)
Else
_Logger.Debug($"RunIndexing_Vektor: Vektorfeld wird mit MEHREREN Werten [{Anzahl}] gefüllt ")
_Logger.Debug($"RunIndexing_Vektor: Vektorfeld wird mit MEHREREN Werten [{oAnzahl_Werte}] gefüllt ")
Dim _value As String
Try
'Die Größe des Arrays festlegen
ReDim myArray(Anzahl)
ReDim myArray(oAnzahl_Werte)
Dim i1 As Integer = 0
For Each aValue As String In aValues
_value = aValue
@@ -444,7 +454,7 @@ Public Class ClassNIWindream
vektor = True
Case Else
_Logger.Warn("Typ des windream-Indexes konnte nicht bestimmt werden!")
_Logger.Debug("Versuch des Auslesens (vType): " & vType)
_Logger.Info($"RunIndexing - Invalid IndexType: {vType}")
'MsgBox(vType & vbNewLine & CStr(value), MsgBoxStyle.Exclamation, "Marlon-Case Else")
convertValue = ""
End Select
@@ -469,7 +479,7 @@ Public Class ClassNIWindream
_Logger.Info("Achtung das Ändern des Indexes: '" & aName & "' ist nicht mehr erlaubt! Bitte überprüfen Sie Ihre Nachindexierungslogik und den Objekttyp.")
oDocument.Save()
Else
_Logger.Warn("Unvorhergesehener Fehler bei NonVektor-SetVariableValue:")
_Logger.Warn($"Unvorhergesehener Fehler bei NonVektor-SetVariableValue - Indexname: {aName}")
_Logger.Warn("Fehlermeldung:" & ex.Message)
oDocument.Save()
oDocument.unlock()
@@ -569,99 +579,138 @@ Public Class ClassNIWindream
End If
Else
_Logger.Warn(">> Achtung: Das Profil konnte nicht geladen werden - _selectedProfil is NOTHING")
End If
Else
If oAnzahl = 0 Then
_Logger.Debug($"Vektorfeld wird mit MEHREREN Werten [{oAnzahl}] gefüllt oAnzahl ist aber 0! ")
Dim oAnzahlCheck As Integer = 0
For Each DR In DT_VEKTOR.Rows
If DR.Item("IndexName") = aName.ToString Then
value = DR.Item("Value")
oAnzahlCheck += 1
_Logger.Debug($"Prüfung ob Value kommt: [{value}] ")
End If
Else
_Logger.Debug($"Vektorfeld wird mit MEHREREN Werten [{oAnzahl}] gefüllt ")
' das ausgewählte Profil in _selectedProfile laden
_selectedProfil = ClassNIProfile.getProfilByName(Profil)
Next
If oAnzahlCheck = 1 Then
_Logger.Debug($"Vektorfeld wird tatsächlich nur mit einem Wert gefüllt!! ")
myArray(0) = Convert_IndexValue(vType, value)
ReDim myArray(0)
oDocument.SetVariableValue(aName, myArray)
_Logger.Debug("'SetVariableValue' für VEKTOR nach Anzahl 1 erfolgreich")
'Die Größe des Arrays festlegen
ReDim myArray(oAnzahl - 1)
Dim i1 As Integer = 0
'Die Datatable durchlaufen und Werte für den Index in Array schreiben
For Each DR In DT_VEKTOR.Rows
If DR.Item("IndexName") = aName.ToString Then
myArray(i1) = Convert_IndexValue(vType, DR.Item("Value"))
_Logger.Debug("Value (" & i1 & "): '" & DR.Item("Value").ToString & "'")
i1 = i1 + 1
'Die Änderungen festsschreiben/speichern
oDocument.Save()
_Logger.Debug("Indexierung erfolgreich beendet (Save Anzahl 1 ...")
End If
Next
_Logger.Debug("Array wurde erfolgreich erzeugt")
If _selectedProfil Is Nothing = False Then
Me._selectedProfil._links.selectedLink = Me._selectedProfil._links.getLinkByIndex(aName)
If Me._selectedProfil._links.selectedLink IsNot Nothing Then
Dim VektorArray
Select Case Me._selectedProfil._links.selectedLink.vktins_state
Case 1
_Logger.Debug("vektInsState = '1' - Vektovalues will be replaced")
Dim z As Integer = 0
Try
ReDim VektorArray(myArray.Length)
Catch ex As Exception
ReDim VektorArray(myArray.Count)
End Try
Else
_Logger.Debug($"Vektorfeld wird mit MEHREREN Werten [{oAnzahl}] gefüllt ")
For Each oVectValue As Object In myArray
If oVectValue Is Nothing = False Then
'Das Array anpassen
ReDim Preserve VektorArray(z)
'Den Wert im Array speichern
VektorArray(z) = Convert_IndexValue(vType, oVectValue)
' das ausgewählte Profil in _selectedProfile laden
_selectedProfil = ClassNIProfile.getProfilByName(Profil)
z += 1
End If
'Die Größe des Arrays festlegen
ReDim myArray(oAnzahl - 1)
Dim i1 As Integer = 0
'Die Datatable durchlaufen und Werte für den Index in Array schreiben
For Each DR In DT_VEKTOR.Rows
If DR.Item("IndexName") = aName.ToString Then
myArray(i1) = Convert_IndexValue(vType, DR.Item("Value"))
_Logger.Debug("Value (" & i1 & "): '" & DR.Item("Value").ToString & "'")
i1 = i1 + 1
End If
Next
_Logger.Debug("Array wurde erfolgreich erzeugt")
If _selectedProfil Is Nothing = False Then
Me._selectedProfil._links.selectedLink = Me._selectedProfil._links.getLinkByIndex(aName)
If Me._selectedProfil._links.selectedLink IsNot Nothing Then
Dim VektorArray
Select Case Me._selectedProfil._links.selectedLink.vktins_state
Case 1
_Logger.Debug("vektInsState = '1' - Vektovalues will be replaced")
Dim z As Integer = 0
Try
ReDim VektorArray(myArray.Length)
Catch ex As Exception
ReDim VektorArray(myArray.Count)
End Try
For Each oVectValue As Object In myArray
If oVectValue Is Nothing = False Then
'Das Array anpassen
ReDim Preserve VektorArray(z)
'Den Wert im Array speichern
VektorArray(z) = Convert_IndexValue(vType, oVectValue)
z += 1
End If
Next
Case 2 'Anfügen
_Logger.Debug("vektInsState = '2'-638")
VektorArray = Return_VektorArray(oDocument, aName, myArray, False, vType)
Case 3 'Anfügen mit DuplikatCheck
_Logger.Debug("vektInsState = '3'")
VektorArray = Return_VektorArray(oDocument, aName, myArray, True, vType)
End Select
If VektorArray Is Nothing = False Then
Dim oIndex As Integer = 0
For Each oStr In VektorArray
_Logger.Debug("For Each oStr In VektorArray - Value [{0}]", oStr)
oIndex += 1
Next
Case 2 'Anfügen
_Logger.Debug("vektInsState = '2'-638")
VektorArray = Return_VektorArray(oDocument, aName, myArray, False, vType)
Case 3 'Anfügen mit DuplikatCheck
_Logger.Debug("vektInsState = '3'")
VektorArray = Return_VektorArray(oDocument, aName, myArray, True, vType)
End Select
If VektorArray Is Nothing = False Then
'Das Array wieder anpassen
Try
ReDim myArray(VektorArray.Length - 1)
Catch ex As Exception
ReDim myArray(VektorArray.count - 1)
End Try
Dim oIndex As Integer = 0
For Each oStr In VektorArray
myArray(oIndex) = oStr
oIndex += 1
Next
If oIndex = 0 Then
_Logger.Debug("VektorArray.length = 0 ... Skipping Redim")
Else
_Logger.Debug("RunIndexing - Nun nochmal redimensionieren Array für windeam...")
'Das Array wieder anpassen
Try
ReDim myArray(VektorArray.Length - 1)
Catch ex As Exception
ReDim myArray(VektorArray.count - 1)
End Try
Dim oIndex1 As Integer = 0
For Each oStr In VektorArray
myArray(oIndex1) = oStr
_Logger.Debug("RunIndexing - Value {0} - [{1}]", oIndex1, oStr)
oIndex1 += 1
Next
End If
'Jetzt die Nachindexierung für Vektor-Felder
oDocument.SetVariableValue(aName, myArray)
_Logger.Debug("'SetVariableValue' für VEKTOR erfolgreich")
' oDocument.LockRights()
'Jetzt die Nachindexierung für Vektor-Felder
oDocument.SetVariableValue(aName, myArray)
_Logger.Debug("'SetVariableValue' für VEKTOR erfolgreich")
' oDocument.LockRights()
'Die Änderungen festsschreiben/speichern
oDocument.Save()
_Logger.Debug("Indexierung erfolgreich beendet (Save ...")
Else
If My.Settings.vLogErrorsonly = False Then _Logger.Info("Achtung: VektorArray Is NOTHING")
oDocument.Save()
Return True
End If
'Die Änderungen festsschreiben/speichern
oDocument.Save()
_Logger.Debug("Indexierung erfolgreich beendet (Save ...")
Else
If My.Settings.vLogErrorsonly = False Then _Logger.Info("Achtung: VektorArray Is NOTHING")
_Logger.Warn(">> Achtung: Der Link konnte nicht geladen werden - _selectedProfil._links.selectedLink is NOTHING")
oDocument.Save()
Return True
End If
Else
_Logger.Warn(">> Achtung: Der Link konnte nicht geladen werden - _selectedProfil._links.selectedLink is NOTHING")
_Logger.Warn(">> Achtung: Das Profil konnte nicht geladen werden - _selectedProfil is NOTHING")
oDocument.Save()
Return True
End If
Else
_Logger.Warn(">> Achtung: Das Profil konnte nicht geladen werden - _selectedProfil is NOTHING")
oDocument.Save()
Return True
End If
End If
End If
@@ -689,9 +738,6 @@ Public Class ClassNIWindream
i1 += 1
Next
End If
If My.Settings.vMailsenden = True Then
'email.Send_EMail("Fehler bei RunIndexing - Datei: " & oDocument.aName.ToString & "<br>Profilname: " & Profil & "<br>Fehler: " & ex.Message)
End If
oDocument.Save()
oDocument.unlock()
Return True
@@ -786,6 +832,7 @@ Public Class ClassNIWindream
End If
End If
Next
_Logger.Debug("Vektor-Array wurde erzeugt - Anzahl {0}", oValues.Count)
End If
Return oValues
@@ -913,9 +960,6 @@ Public Class ClassNIWindream
Catch ex As Exception
_Logger.Error(ex)
If My.Settings.vMailsenden = True Then
'email.Send_EMail("Fehler bei SetfinalIndex - Datei: " & oDocument.aName.ToString & " - Fehler: " & ex.Message)
End If
oDocument.Save()
oDocument.unlock()
End Try
@@ -949,9 +993,6 @@ Public Class ClassNIWindream
'' Der öffentliche Member CheckSearchProfile für den Typ IWMQuickSearch7 wurde nicht gefunden. [Microsoft.VisualBasic] => GetSearchDocuments()
Select Case suchTyp.ToString.ToUpper
Case "WMOSRCH.WMQUICKSEARCH"
'srchQuick.WMSession = CreateObject("Windream.WMSession", Me.GetCurrentServer)
'Me.oConnect.LoginSession(oWMSession) 'srchQuick.WMSession)
srchQuick.ClearSearch()
srchQuick.SearchProfilePath = ProfilePath
@@ -960,8 +1001,7 @@ Public Class ClassNIWindream
oSearch = srchQuick.GetSearch()
Case "WMOSRCH.WMINDEXSEARCH"
srchIndex.WMSession = oWMSession 'CreateObject("Windream.WMSession", Me.GetCurrentServer)
srchIndex.WMSession = oWMSession
'Me.oConnect.LoginSession(srchIndex.WMSession)
srchIndex.ClearSearch()
@@ -971,7 +1011,7 @@ Public Class ClassNIWindream
oSearch = srchIndex.GetSearch()
Case "WMOSRCH.WMOBJECTTYPESEARCH"
srchObjectType.WMSession = oWMSession 'CreateObject("Windream.WMSession", Me.GetCurrentServer)
srchObjectType.WMSession = oWMSession
'Me.oConnect.LoginSession(oWMSession) 'srchObjectType.WMSession)
@@ -997,6 +1037,7 @@ Public Class ClassNIWindream
End Try
Else
If wdfLocation.ToUpper.Contains("SELECT") Or wdfLocation.ToUpper.Contains("EXEC") Then
_Logger.Info("WMSearch replaced with SQL Command ...:")
WMSearchIsSQL = True
End If
End If
@@ -1023,26 +1064,33 @@ Public Class ClassNIWindream
Public Function NEW_MOVE_FILE(targetpath As String, sourcepath As String, oMethod As String, pFileName As String) As Boolean
Dim oWMFile As WINDREAMLib.WMObject
Try
sourcepath = sourcepath.ToLower
targetpath = targetpath.ToLower
If IsNothing(oWMSession) Then
_Logger.Warn($"Error in NEW_MOVE_FILE - oWMSession is nothing")
Return False
End If
_Logger.Debug($"targetpath ({targetpath})")
_Logger.Debug($"sourcepath ({sourcepath})")
Dim sw As New ClassStopwatch("NEW_MOVE_FILE")
Dim oTargetpath = System.IO.Path.GetDirectoryName(targetpath)
oTargetpath = oTargetpath.Replace("\\windream\objects", "")
oTargetpath = oTargetpath.Replace("W:\", "\")
oTargetpath = oTargetpath.Replace("windream\objects", "")
oTargetpath = oTargetpath.Replace("w:\", "\")
targetpath = targetpath.Replace("\\windream\objects", "")
targetpath = targetpath.Replace("W:\", "\")
targetpath = targetpath.Replace("windream\objects", "")
targetpath = targetpath.Replace("w:\", "\")
sourcepath = sourcepath.Replace("w:\", "\")
sourcepath = sourcepath.Replace("windream\objects", "")
sourcepath = sourcepath.Replace("\\", "\")
sourcepath = sourcepath.Replace("\\windream\objects", "")
sourcepath = sourcepath.Replace("W:\", "\")
targetpath = targetpath.Replace("\\", "\")
Const WMEntityDocument = 1
Dim IndexwertAusWindream As Object = Nothing
_Logger.Debug($"NEW_MOVE_FILE getting WMObject for: {sourcepath}")
_Logger.Debug($"getting WMObject for: {sourcepath}")
Try
oWMFile = oWMSession.GetWMObjectByPath(WMEntityDocument, sourcepath)
Catch ex As Exception

View File

@@ -63,6 +63,8 @@ Public Class ClassWD_Rechte
oServername = Me.GetCurrentServer()
' Connection-Objekt instanziieren
Me.oConnect = CreateObject("Windream.WMConnect")
'MsgBox("windrem init 'ed")
Catch ex As Exception

View File

@@ -49,7 +49,57 @@ Public Class ClassWindream_allgemein
' Process.GetCurrentProcess.Kill()
End If
End Sub
Public Function GetWMSessionAsUser(Domain, ServerName, UserName, Password)
Dim SessionAsUser
Dim aConnect, aUserId, aSession
On Error Resume Next
' Hilfsobjekte erschaffen, um eine Verbindung zum windream Server herzustellen
' mit der gewünschten Benutzer-Identität
aConnect = CreateObject("Windream.WMConnect")
'Bei einer impersonifizierten Session ist zu beachten, dass die ModuleID 9 zu nutzen ist.
'Wird keine Session-ID angegeben, hat die Session die ID 0 (Default).
aConnect.ModuleId = 9
If Err.Number <> 0 Then
Dim msg = "Fehler bei CreateObject (aConnect) - Err.Number: " & Err.Number & vbNewLine & Err.Description
_Logger.Warn(msg)
SessionAsUser = Nothing
Return SessionAsUser
End If
aUserId = CreateObject("WMOTool.WMUserIdentity")
If Err.Number <> 0 Then
Dim msg = "Fehler bei CreateObject('WMOTool.WMUserIdentity') - Err.Number: " & Err.Number & vbNewLine & Err.Description
_Logger.Warn(msg)
SessionAsUser = Nothing
Return SessionAsUser
End If
aUserId.aDomain = Domain
aUserId.aServerName = ServerName
aUserId.aUserName = UserName
aUserId.aPassword = Password
aSession = aConnect.Login(aUserId)
If Err.Number <> 0 Then
Dim msg = "Fehler bei aConnect.Login(aUserId) - Err.Number: " & Err.Number & vbNewLine & Err.Description
_Logger.Warn(msg)
SessionAsUser = Nothing
Return SessionAsUser
Else
SessionAsUser = aSession
If aSession.aLoggedin = True Then
_Logger.Debug($"#Impersonate login [{UserName}] successfull!")
Return SessionAsUser
End If
End If
End Function
''' <summary>
''' Initialisiert die statische Klasse (Login, Session starten, usw.)
@@ -60,99 +110,12 @@ Public Class ClassWindream_allgemein
Dim oHourDifference As Integer
oHourDifference = CInt(DateDiff(DateInterval.Hour, CURRENToWMSession_Created, Now))
If IsNothing(CURRENToWMSession) Or oHourDifference >= 2 Then
Try
Try
' Session-Objekt instanziieren und mit dem im Client ausgewählten Server belegen
Me.oWMSession = CreateObject("Windream.WMSession", Me.GetCurrentServer)
' Connection-Objekt instanziieren
Me.oConnect = CreateObject("Windream.WMConnect")
CURRENToWMConnect = oConnect
'MsgBox("windrem init 'ed")
Catch ex As Exception
clsHelper.Add_Application_log("Unexpected error in Windream.Init(CreateObjects): " & ex.Message)
EMAIL_DD.Send_EMail("Unexpected error in Windream.Init(CreateObjects): " & ex.Message, "WMInit77")
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 = "\digitaldata\schreiberm"
'oConnect.Password = "schreiber"
' Verbindung mit Session-Objekt (und dem ausgewählten Server) aufbauen
Me.oConnect.LoginSession(Me.oWMSession)
If Me.oWMSession.aLoggedin = False Then
clsHelper.Add_Application_log("Unexpected error in Windream.Init(oSession.aloggedIn): Could not check session-state")
EMAIL_DD.Send_EMail("Unexpected error in Windream.Init(oSession.aloggedIn): Could not check session-state", "clswmallgInit")
Return 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.oWMSession.SwitchEvents(WMCOMEventWMSessionNeedIndex, False)
' der Parameter WMEntityDocument definiert, dass nur Dokumenttypen und keine
' Ordnertypen ausgelesen werden
Me.oObjekttypen = Me.oWMSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
' Ordnertypen auslesen
Me.oOrdnerTypen = Me.oWMSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityFolder)
' den Objekttyp laden
' Me.oSystemIndizes = Me.oSession.GetWMObjectByName(WMObjectRelationTypeObjectByName)
Catch ex As Exception
Return False
End Try
End If
_Logger.Info("WMSession has been created! (clsWindreamAllgemein)")
CURRENToWMSession = oWMSession
CURRENToWMSession_Created = Now
Return True
Catch ex As Exception
If Err.Number = -2147220985 Then
clsHelper.Add_Application_log("Unexpected error in Windream.Init(2147220985): " & ex.Message)
Else
If Not ex.Message.Contains("Already logged in") Then
clsHelper.Add_Application_log("Unexpected error in Windream.Init(Already logged in): " & ex.Message)
EMAIL_DD.Send_EMail("Unexpected error in Windream.Init(Already logged in): " & ex.Message, "clswmallgInit2")
Else
Return True
End If
End If
Return False
End Try
If WMLOGIN_DOMAIN <> String.Empty Then
GetWMSessionAsUser(WMLOGIN_DOMAIN, Me.GetCurrentServer, WMLOGIN_USER, WMLOGIN_PW)
Else
GetWMSession()
End If
Else
If My.Settings.vLogErrorsonly = False Then _Logger.Debug("WMSession already created!")
@@ -162,6 +125,95 @@ Public Class ClassWindream_allgemein
End Function
Private Function GetWMSession()
Try
Try
' Session-Objekt instanziieren und mit dem im Client ausgewählten Server belegen
Me.oWMSession = CreateObject("Windream.WMSession", Me.GetCurrentServer)
' Connection-Objekt instanziieren
Me.oConnect = CreateObject("Windream.WMConnect")
CURRENToWMConnect = oConnect
'MsgBox("windrem init 'ed")
Catch ex As Exception
clsHelper.Add_Application_log("Unexpected error in Windream.Init(CreateObjects): " & ex.Message)
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 = "\digitaldata\schreiberm"
'oConnect.Password = "schreiber"
' Verbindung mit Session-Objekt (und dem ausgewählten Server) aufbauen
Me.oConnect.LoginSession(Me.oWMSession)
If Me.oWMSession.aLoggedin = False Then
clsHelper.Add_Application_log("Unexpected error in Windream.Init(oSession.aloggedIn): Could not check session-state")
Return 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.oWMSession.SwitchEvents(WMCOMEventWMSessionNeedIndex, False)
' der Parameter WMEntityDocument definiert, dass nur Dokumenttypen und keine
' Ordnertypen ausgelesen werden
Me.oObjekttypen = Me.oWMSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
' Ordnertypen auslesen
Me.oOrdnerTypen = Me.oWMSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityFolder)
' den Objekttyp laden
' Me.oSystemIndizes = Me.oSession.GetWMObjectByName(WMObjectRelationTypeObjectByName)
Catch ex As Exception
Return False
End Try
End If
_Logger.Info("WMSession has been created! (clsWindreamAllgemein)")
CURRENToWMSession = oWMSession
CURRENToWMSession_Created = Now
Return True
Catch ex As Exception
If Err.Number = -2147220985 Then
clsHelper.Add_Application_log("Unexpected error in Windream.Init(2147220985): " & ex.Message)
Else
If Not ex.Message.Contains("Already logged in") Then
clsHelper.Add_Application_log("Unexpected error in Windream.Init(Already logged in): " & ex.Message)
Else
Return True
End If
End If
Return False
End Try
End Function
#End Region
#Region "+++++ Funktionen die für den Objekttyp relevate Informationen zurückliefern +++++"
@@ -498,7 +550,6 @@ Public Class ClassWindream_allgemein
Return server 'ClassWindream.oBrowser.GetCurrentServer
Catch ex As Exception
clsHelper.Add_Application_log("Unexpected error in Windream.GetCurrentServer: " & ex.Message)
EMAIL_DD.Send_EMail("Unexpected error in Windream.GetCurrentServer: " & ex.Message, "GetCurrentServer")
'MsgBox("Der aktuell gewählte windream-Server konnte nicht ausgelesen werden." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen des windream-Servers")
End Try

View File

@@ -32,6 +32,9 @@ Module ModuleCURRENT
Public CURRENT_DOCID As Int64
Public WMSearchIsSQL As Boolean = False
Public DB_ECM As MSSQLServer
Public EMAIL_DD As ClassEmail
Public DIDurchlaufRunning As Boolean = False
Public NIDurchlaufRunning As Boolean = False
Public WMLOGIN_USER As String = ""
Public WMLOGIN_PW As String = ""
Public WMLOGIN_DOMAIN As String = ""
End Module

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.9.5.0")>
<Assembly: AssemblyFileVersion("2.9.5.0")>
<Assembly: AssemblyVersion("2.9.8.0")>
<Assembly: AssemblyFileVersion("2.9.8.0")>

View File

@@ -1,10 +1,10 @@
'------------------------------------------------------------------------------
' <auto-generated>
' Dieser Code wurde von einem Tool generiert.
' Laufzeitversion:4.0.30319.42000
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
' der Code erneut generiert wird.
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
@@ -15,14 +15,14 @@ Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.3.0.0"), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "Automatische My.Settings-Speicherfunktion"
#Region "My.Settings Auto-Save Functionality"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
@@ -106,73 +106,6 @@ Namespace My
End Set
End Property
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("1")> _
Public ReadOnly Property vMailProfilID() As Integer
Get
Return CType(Me("vMailProfilID"),Integer)
End Get
End Property
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("support-flow@digitaldata.works")> _
Public ReadOnly Property vMailRecipient() As String
Get
Return CType(Me("vMailRecipient"),String)
End Get
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("Fehler in Modul ToolCollection"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property vMailSubject() As String
Get
Return CType(Me("vMailSubject"),String)
End Get
Set
Me("vMailSubject") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("<p>__________________<br>"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&" <b><font face=""Arial"">Achtung Fehler:</font></b><fon"& _
"t face=""Arial""><br>"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&" <br>"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)&" Folgender Fehler wurde festgestellt:</font> </p>"&Global.Microsoft.VisualBasic.ChrW(13)&Global.Microsoft.VisualBasic.ChrW(10)), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property vMailBodyPraefix() As String
Get
Return CType(Me("vMailBodyPraefix"),String)
End Get
Set
Me("vMailBodyPraefix") = value
End Set
End Property
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False")> _
Public ReadOnly Property vMailsenden() As Boolean
Get
Return CType(Me("vMailsenden"),Boolean)
End Get
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("0, 0"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property frmNI_SQL_Loc() As Global.System.Drawing.Point
Get
Return CType(Me("frmNI_SQL_Loc"),Global.System.Drawing.Point)
End Get
Set
Me("frmNI_SQL_Loc") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("dd"), _
@@ -186,32 +119,6 @@ Namespace My
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("0"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property NIDurchlauf_Intervall() As Integer
Get
Return CType(Me("NIDurchlauf_Intervall"),Integer)
End Get
Set
Me("NIDurchlauf_Intervall") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property vDIDurchlaufRunning() As Boolean
Get
Return CType(Me("vDIDurchlaufRunning"),Boolean)
End Get
Set
Me("vDIDurchlaufRunning") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("0, 0"), _
@@ -637,32 +544,6 @@ Namespace My
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("25"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property vemailPort() As Integer
Get
Return CType(Me("vemailPort"),Integer)
End Get
Set
Me("vemailPort") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property NI_RUNNING() As Boolean
Get
Return CType(Me("NI_RUNNING"),Boolean)
End Get
Set
Me("NI_RUNNING") = value
End Set
End Property
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("DigitalData\windream_CLIENT_WMCC_Neustart")> _
@@ -796,6 +677,86 @@ Namespace My
Return CType(Me("DDECMConString"),String)
End Get
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False")> _
Public Property NI_RUNNING() As Boolean
Get
Return CType(Me("NI_RUNNING"),Boolean)
End Get
Set
Me("NI_RUNNING") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False")> _
Public Property DI_RUNNING() As Boolean
Get
Return CType(Me("DI_RUNNING"),Boolean)
End Get
Set
Me("DI_RUNNING") = value
End Set
End Property
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("@Domain#@User#@PW")> _
Public ReadOnly Property WM_PERS_LOGIN() As String
Get
Return CType(Me("WM_PERS_LOGIN"),String)
End Get
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
Public Property vDeleteLogsTime() As Date
Get
Return CType(Me("vDeleteLogsTime"),Date)
End Get
Set
Me("vDeleteLogsTime") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False")> _
Public Property vAutoDeleteLogs() As Boolean
Get
Return CType(Me("vAutoDeleteLogs"),Boolean)
End Get
Set
Me("vAutoDeleteLogs") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("")> _
Public Property Setting() As String
Get
Return CType(Me("Setting"),String)
End Get
Set
Me("Setting") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("01/01/0001 03:00:00")> _
Public Property vDefaultDeleteLogsTime() As Date
Get
Return CType(Me("vDefaultDeleteLogsTime"),Date)
End Get
Set
Me("vDefaultDeleteLogsTime") = value
End Set
End Property
End Class
End Namespace

View File

@@ -14,37 +14,9 @@
<Setting Name="vDIConfigDatei" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)">modDateiimportConfig.xml</Value>
</Setting>
<Setting Name="vMailProfilID" Roaming="true" Type="System.Int32" Scope="Application">
<Value Profile="(Default)">1</Value>
</Setting>
<Setting Name="vMailRecipient" Roaming="true" Type="System.String" Scope="Application">
<Value Profile="(Default)">support-flow@digitaldata.works</Value>
</Setting>
<Setting Name="vMailSubject" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)">Fehler in Modul ToolCollection</Value>
</Setting>
<Setting Name="vMailBodyPraefix" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)">&lt;p&gt;__________________&lt;br&gt;
&lt;b&gt;&lt;font face="Arial"&gt;Achtung Fehler:&lt;/font&gt;&lt;/b&gt;&lt;font face="Arial"&gt;&lt;br&gt;
&lt;br&gt;
Folgender Fehler wurde festgestellt:&lt;/font&gt; &lt;/p&gt;
</Value>
</Setting>
<Setting Name="vMailsenden" Roaming="true" Type="System.Boolean" Scope="Application">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="frmNI_SQL_Loc" Roaming="true" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)">0, 0</Value>
</Setting>
<Setting Name="vPW_Admin" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)">dd</Value>
</Setting>
<Setting Name="NIDurchlauf_Intervall" Roaming="true" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="vDIDurchlaufRunning" Roaming="true" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="frmNIHauptseite_Loc" Roaming="true" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)">0, 0</Value>
</Setting>
@@ -147,12 +119,6 @@
<Setting Name="errortext" Type="System.String" Scope="User">
<Value Profile="(Default)">Fehlermeldung</Value>
</Setting>
<Setting Name="vemailPort" Roaming="true" Type="System.Int32" Scope="User">
<Value Profile="(Default)">25</Value>
</Setting>
<Setting Name="NI_RUNNING" Roaming="true" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="WMCC_RESTART" Type="System.String" Scope="Application">
<Value Profile="(Default)">DigitalData\windream_CLIENT_WMCC_Neustart</Value>
</Setting>
@@ -200,5 +166,26 @@
&lt;/SerializableConnectionString&gt;</DesignTimeValue>
<Value Profile="(Default)">Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM_TEST;Persist Security Info=True;User ID=sa;Password=dd</Value>
</Setting>
<Setting Name="NI_RUNNING" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="DI_RUNNING" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="WM_PERS_LOGIN" Type="System.String" Scope="Application">
<Value Profile="(Default)">@Domain#@User#@PW</Value>
</Setting>
<Setting Name="vDeleteLogsTime" Type="System.DateTime" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="vAutoDeleteLogs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="Setting" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="vDefaultDeleteLogsTime" Type="System.DateTime" Scope="User">
<Value Profile="(Default)">01/01/0001 03:00:00</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -83,71 +83,7 @@ Public Class TCService
ClassLoggerService.Add("###############################################################", False)
End Sub
Private Sub Profil_DurchlaufNI()
'Try
' For Each profil As ClassNIProfilS In ClassNIProfileS.Profile
' ' aktuelles Profil der Klasse mitteilen
' Me.aktivesProfil = profil
' ' Ausgabe an Logdatei über nächstes Profil
' _Logger.Info("", False)
' _Logger.Info(">> Starte Durchlauf für Profil: " & profil.Profilname, False)
' ' Überprüfen ob Profil aktiv oder inaktiv
' If CBool(Me.aktivesProfil.Aktiv) = False Then
' _Logger.Info(">> Profil: " & profil.Profilname & " ist inaktiv geschaltet", False)
' _Logger.Info("", False)
' Else
' ' den Durchlaufszeitpunkt speichern
' aktivesProfil.LastRun = Now
' aktivesProfil.Save(False)
' If file_exists(Me.aktivesProfil.WindreamSuche, True) = False Then
' _Logger.Info(">> Windream Suche für Profil: " & profil.Profilname & " konnte nicht ausgeführt werden! Datei " & Me.aktivesProfil.WindreamSuche & " existiert nicht!", False)
' Else
' ' windream-Suche für Profil starten
' Dim windreamSucheErgebnisse As WMObjects = Me._windreamNI.GetSearchDocuments(Me.aktivesProfil.WindreamSuche)
' If windreamSucheErgebnisse.Count > 0 Then
' ' neue Anzahl von Dateien an ProgressBar2
' For Each dok As WMObject In windreamSucheErgebnisse
' ' aktuelles Dokument der Klasse mitteilen
' Me.aktivesDokument = dok
' '####### Go für das Dokument ##########
' ' Thread für diese Datei starten
' Me.startDateiDurchlauf()
' '######################################
' ' solange der Datei-Thread noch nicht abgeschlossen wurde
' While Me.bwDatei.IsBusy
' ' warten
' End While
' ' nächste Datei an ProgressBar2
' bwProfil.ReportProgress(-1)
' ' Vorgang abbrechen
' If bwProfil.CancellationPending Then Exit Sub
' Next
' Else
' _Logger.Info("Keine windream-Dokumente für Profil: " & profil.Profilname & " gefunden!", False)
' _Logger.Info("", False)
' ' keine Dateien zum Importieren
' End If
' End If
' End If
' ' nächstes Profil an ProgressBar1
' Next
' ' Do Stuff Here...
' EventLog1.WriteEntry("Durchlauf der Profile erfolgreich.")
'Catch ex As System.Exception
' EventLog1.WriteEntry("TCService stellte einen Fehler fest '" & _
' ex.Message & "'", EventLogEntryType.Error)
' EventLog1.WriteEntry("TCService Stack Trace: " & _
' ex.StackTrace, EventLogEntryType.Error)
' ClassLoggerService.Add("Fehler in Profil_Durchlauf", ex.Message)
'End Try
End Sub
Private Sub Profil_DurchlaufDI()
Try

View File

@@ -86,21 +86,23 @@
<OutputPath>bin\x64\Release\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Reference Include="DigitalData.Modules.Config, Version=1.1.4.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll</HintPath>
<Reference Include="DevExpress.Data.Desktop.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Printing.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Sparkline.v21.2.Core, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Utils.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DigitalData.Modules.Config">
<HintPath>..\..\2_DLL Projekte\DDModules\Config\bin\Debug\DigitalData.Modules.Config.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Database, Version=2.2.7.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
<Reference Include="DigitalData.Modules.Database">
<HintPath>..\..\2_DLL Projekte\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Filesystem, Version=1.3.1.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\DDModules\Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll</HintPath>
<Reference Include="DigitalData.Modules.Filesystem">
<HintPath>P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Digital Data\DigitalData.Modules.Filesystem.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Modules.Logging, Version=2.5.4.2, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
<Reference Include="DigitalData.Modules.Logging">
<HintPath>..\..\2_DLL Projekte\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
</Reference>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>packages\EntityFramework.6.0.2\lib\net45\EntityFramework.dll</HintPath>
@@ -141,6 +143,7 @@
<Reference Include="System.Configuration" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Data" />
<Reference Include="System.Data.Linq" />
<Reference Include="System.Data.OracleClient" />
<Reference Include="System.Data.SQLite">
<HintPath>P:\Visual Studio Projekte\Bibliotheken\System.Data.SQLite.dll</HintPath>
@@ -201,7 +204,6 @@
<Compile Include="ClassMoveRenameLogger.vb" />
<Compile Include="ClassMO_RE.vb" />
<Compile Include="ClassNIDatenbankzugriff.vb" />
<Compile Include="ClassNIEmail.vb" />
<Compile Include="ClassNIProfil.vb" />
<Compile Include="ClassNIProfile.vb" />
<Compile Include="ClassNIVerknüpfung.vb" />

View File

@@ -48,28 +48,9 @@
<setting name="vDIConfigDatei" serializeAs="String">
<value>modDateiimportConfig.xml</value>
</setting>
<setting name="vMailSubject" serializeAs="String">
<value>Fehler in Modul ToolCollection</value>
</setting>
<setting name="vMailBodyPraefix" serializeAs="String">
<value>&lt;p&gt;__________________&lt;br&gt;
&lt;b&gt;&lt;font face="Arial"&gt;Achtung Fehler:&lt;/font&gt;&lt;/b&gt;&lt;font face="Arial"&gt;&lt;br&gt;
&lt;br&gt;
Folgender Fehler wurde festgestellt:&lt;/font&gt; &lt;/p&gt;
</value>
</setting>
<setting name="frmNI_SQL_Loc" serializeAs="String">
<value>0, 0</value>
</setting>
<setting name="vPW_Admin" serializeAs="String">
<value>dd</value>
</setting>
<setting name="NIDurchlauf_Intervall" serializeAs="String">
<value>0</value>
</setting>
<setting name="vDIDurchlaufRunning" serializeAs="String">
<value>False</value>
</setting>
<setting name="frmNIHauptseite_Loc" serializeAs="String">
<value>0, 0</value>
</setting>
@@ -160,31 +141,34 @@
<setting name="errortext" serializeAs="String">
<value>Fehlermeldung</value>
</setting>
<setting name="vemailPort" serializeAs="String">
<value>25</value>
</setting>
<setting name="NI_RUNNING" serializeAs="String">
<value>False</value>
</setting>
<setting name="VFS_RESTART" serializeAs="String">
<value>DigitalData\windream_VFS_RESTART</value>
</setting>
<setting name="myDateiname" serializeAs="String">
<value>myInvalidDateiname.pdf</value>
</setting>
<setting name="NI_RUNNING" serializeAs="String">
<value>False</value>
</setting>
<setting name="DI_RUNNING" serializeAs="String">
<value>False</value>
</setting>
<setting name="vDeleteLogsTime" serializeAs="String">
<value />
</setting>
<setting name="vAutoDeleteLogs" serializeAs="String">
<value>False</value>
</setting>
<setting name="Setting" serializeAs="String">
<value />
</setting>
<setting name="vDefaultDeleteLogsTime" serializeAs="String">
<value>01/01/0001 03:00:00</value>
</setting>
</ToolCollection.My.MySettings>
</userSettings>
<applicationSettings>
<ToolCollection.My.MySettings>
<setting name="vMailProfilID" serializeAs="String">
<value>1</value>
</setting>
<setting name="vMailRecipient" serializeAs="String">
<value>support-flow@digitaldata.works</value>
</setting>
<setting name="vMailsenden" serializeAs="String">
<value>False</value>
</setting>
<setting name="MRWD_Laufwerk" serializeAs="String">
<value>W</value>
</setting>
@@ -230,6 +214,9 @@
<setting name="REGEX_INVALID_PATH" serializeAs="String">
<value>[\\\/:\*\?""'&lt;&gt;|]</value>
</setting>
<setting name="WM_PERS_LOGIN" serializeAs="String">
<value>@Domain#@User#@PW</value>
</setting>
</ToolCollection.My.MySettings>
</applicationSettings>
<startup>

View File

@@ -63,8 +63,6 @@ Public Class clsNI_WorkFile
'bei einem Fehler einen Eintrag in der Logdatei machen
_Logger.Warn("ACHTUNG Schwerwiegender Fehler in Work_File: " & ex.Message)
EMAIL_DD.Send_EMail("Schwerwiegender Fehler bei Work_File - <br> Profil: " & aktivesProfil.Profilname & "<br> Datei: " & dokument.aName.ToString & "<br> Fehler: " & ex.Message, "clsNIWorkFileWorkFile")
Return False
End Try
End Function

View File

@@ -155,7 +155,7 @@ Public Class frmDIHauptseite
Me.tvLog.Visible = False
Me.timRun_Dateiimport.Stop()
Durchlauf = False
My.Settings.vDIDurchlaufRunning = False
My.Settings.DI_RUNNING = False
End If
Me.progressImport.Enabled = False
@@ -239,7 +239,7 @@ Public Class frmDIHauptseite
Private Sub frmDIHauptseite_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
Formloaded = True
Me.LoadProfilesInCombobox()
If My.Settings.vDIDurchlaufRunning = True Then
If My.Settings.DI_RUNNING = True Then
Me.rbAutomatisch.Checked = True
Automatischer_Durchlauf(False)
End If
@@ -722,15 +722,10 @@ Public Class frmDIHauptseite
'DAS Windream-Laufwerk ist nicht verfügbar!
CriticalErrorInBackgroundWorker = True
Import_Abbrechen()
EMAIL_DD.Send_EMail("ESKALATIONSTUFE 1: Schwerwiegender Fehler in Dateiimporter windream <br>ERROR: " & Err.Description & "<br> DAS WINDREAM-LAUFWERK oder der Netzwerkname IST NICHT VERFÜGBAR!<br>" &
"Der Importvorgang wurde abgebrochen!<br>Fehlerbehebung: ==> Starten Sie windream und den den Dateiimporter neu!", "DI_WMNOTACCESSIBLE")
MsgBox("Schwerwiegender Fehler in Dateiimporter windream!" & vbNewLine & "ERROR: " & Err.Description & vbNewLine & "DAS WINDREAM-LAUFWERK IST NICHT VERFÜGBAR!" & vbNewLine &
"Der Importvorgang wurde abgebrochen!" & vbNewLine & "Fehlerbehebung: ==> Starten Sie windream und den den Dateiimporter neu!")
Exit Sub
Else
EMAIL_DD.Send_EMail("Fehler bei Datei: " & oFilenameQuelle & " <br\>ERROR: " & Err.Description, "DI_WMFILEACCESS")
End If
@@ -1148,40 +1143,58 @@ Public Class frmDIHauptseite
_Step = "3.1.1"
DetailLog("_Step: " & _Step)
' wenn auf die Datei zugeriffen werden konnte ist sie bereits vorhanden -> Datum anhängen
DetailLog("-> DATEI IST BEREITS VORHANDEN")
DetailLog("DATEI IST BEREITS VORHANDEN - MUSS VERSIONIERT WERDEN!")
Err.Clear()
'### Automatische Versionierung mit ~ (Tilde) ###
Dim version As Integer = 2
Dim oMyVersion As Integer = 2
Dim extension As String = Quelldatei_Name.Substring(Quelldatei_Name.LastIndexOf("."))
Dim Stammname As String = zielpfad.Substring(2) & "\" & Quelldatei_Name.Substring(0, Quelldatei_Name.LastIndexOf("."))
Dim neuername As String = zielpfad.Substring(2) & "\" & Quelldatei_Name.Substring(0, Quelldatei_Name.LastIndexOf("."))
If zielpfad.StartsWith("\\Windream\Objects") Then
DetailLog("Replacing windream\objects...")
zielpfad = zielpfad.Replace("\\Windream\Objects", "")
Else
zielpfad = zielpfad.Substring(2)
End If
Do While file_exists(My.Settings.vWLaufwerk & ":\" & neuername & extension) = True
DetailLog("Datei " & endgültigerDateiname & " ist vorhanden!")
neuername = Stammname & "~" & version
Dim Stammname As String = zielpfad & "\" & Quelldatei_Name.Substring(0, Quelldatei_Name.LastIndexOf("."))
Dim neuername As String = zielpfad & "\" & Quelldatei_Name.Substring(0, Quelldatei_Name.LastIndexOf("."))
DetailLog("Stammname [" & Stammname & "]")
DetailLog("neuername [" & neuername & "]")
Do While file_exists("\\WINDREAM\OBJECTS\" & neuername & extension) = True
DetailLog("Versionierung - Datei [" & neuername & extension & "] ist vorhanden!")
neuername = Stammname & "~" & oMyVersion
DetailLog("Versionierung - neuername [" & neuername & "]")
endgültigerDateiname = neuername & extension
version = version + 1
oMyVersion = oMyVersion + 1
Loop
DetailLog("Datei [" & endgültigerDateiname & "] wird benutzt um den Filestream nach WM zu erzeugen...")
_Step = "3.1.2"
DetailLog("_Step: " & _Step)
oNewWMObject = _windream.oWMSession.GetNewWMObjectFS(WMEntityDocument, endgültigerDateiname, WMObjectEditModeObject)
Try
oNewWMObject = _windream.oWMSession.GetNewWMObjectFS(WMEntityDocument, endgültigerDateiname, WMObjectEditModeObject)
Catch ex As Exception
ClassLoggerDI.Add(" FEHLER DATEI_VORHANDEN GetNewWMObjectFS...")
ClassLoggerDI.Add(" FEHLER bei _windream.oWMSession.GetNewWMObjectFS: '" & ex.Message)
Return -1
End Try
If Err.Number > 0 Then
ClassLoggerDI.Add(" FEHLER: Neues WMObject (Kopie) konnte nicht erzeugt werden - Error: '" & Err.Description & "'")
If My.Settings.StopwatchTimerActive = True Then
oStopWatchTimer.Done()
oStopWatchTimerC.Done()
ClassLoggerDI.Add(" FEHLER: Neues WMObject (Kopie) konnte nicht erzeugt werden - Error: '" & Err.Description & "'")
If My.Settings.StopwatchTimerActive = True Then
oStopWatchTimer.Done()
oStopWatchTimerC.Done()
End If
'MsgBox(Err.Description)
End If
'MsgBox(Err.Description)
DetailLog("...WMObject-Filestream zugewiesen")
End If
DetailLog("WMObject zugewiesen")
End If
_Step = "3.2"
_Step = "3.2"
DetailLog("_Step: " & _Step)
DetailLog("ENDGÜLTIGER DATEINAME => " & endgültigerDateiname)
If oNewWMObject IsNot Nothing Then
' lock object for file system access (to change the file itself)
oNewWMObject.lock()
' set fileIO the local source file
DetailLog("Now Streaming from filenameQuelle...")
oFileIO.bstrOriginalFileName = filenameQuelle
If Err.Number > 0 Then
'MsgBox(Err.Number.ToString)
@@ -1198,8 +1211,25 @@ Public Class frmDIHauptseite
End If
_Step = "3.3"
DetailLog("_Step: " & _Step)
' open the windream object's file stream for writing
oWMStream = oNewWMObject.OpenStream(STREAM_BinaryObject, WMObjectStreamOpenModeReadWrite)
Try
' open the windream object's file stream for writing
oWMStream = oNewWMObject.OpenStream(STREAM_BinaryObject, WMObjectStreamOpenModeReadWrite)
Catch ex As Exception
ClassLoggerDI.Add(" FEHLER bei OpenStream - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
oNewWMObject.Unlock()
Try
System.IO.File.Delete(My.Settings.vWLaufwerk & ":" & endgültigerDateiname)
Catch ex1 As Exception
End Try
If My.Settings.StopwatchTimerActive = True Then
oStopWatchTimer.Done()
oStopWatchTimerC.Done()
End If
Return -1
End Try
If Err.Number > 0 Then
ClassLoggerDI.Add(" FEHLER bei OpenStream - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
oNewWMObject.Unlock()
@@ -2267,7 +2297,7 @@ Public Class frmDIHauptseite
Me.timRun_Dateiimport.Interval = Me.numIntervallDurchlauf.Value * 60 * 1000
Me.timRun_Dateiimport.Start()
My.Settings.vDIDurchlaufRunning = True
My.Settings.DI_RUNNING = True
My.Settings.Save()
'Direkt einen Durchlauf starten
If runnow = True Then
@@ -2286,7 +2316,7 @@ Public Class frmDIHauptseite
Me.tvLog.Visible = False
Me.timRun_Dateiimport.Stop()
Durchlauf = False
My.Settings.vDIDurchlaufRunning = False
My.Settings.DI_RUNNING = False
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei btnDurchlauf.Click:")

View File

@@ -1,9 +1,9 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class frmGrundeinstellungen
Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
@@ -20,7 +20,7 @@ Partial Class frmGrundeinstellungen
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmGrundeinstellungen))
Me.Label1 = New System.Windows.Forms.Label()
@@ -28,6 +28,10 @@ Partial Class frmGrundeinstellungen
Me.cmlLogart = New System.Windows.Forms.ComboBox()
Me.Label3 = New System.Windows.Forms.Label()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.lblLogDeleteTime = New System.Windows.Forms.Label()
Me.lblTimeDeleteLogs = New System.Windows.Forms.Label()
Me.txtTimeDeleteLogs = New System.Windows.Forms.TextBox()
Me.chkAutoDeleteLogs = New System.Windows.Forms.CheckBox()
Me.TextBox4 = New System.Windows.Forms.TextBox()
Me.Label6 = New System.Windows.Forms.Label()
Me.TextBox1 = New System.Windows.Forms.TextBox()
@@ -91,6 +95,10 @@ Partial Class frmGrundeinstellungen
'
'GroupBox1
'
Me.GroupBox1.Controls.Add(Me.lblLogDeleteTime)
Me.GroupBox1.Controls.Add(Me.lblTimeDeleteLogs)
Me.GroupBox1.Controls.Add(Me.txtTimeDeleteLogs)
Me.GroupBox1.Controls.Add(Me.chkAutoDeleteLogs)
Me.GroupBox1.Controls.Add(Me.TextBox4)
Me.GroupBox1.Controls.Add(Me.Label6)
Me.GroupBox1.Controls.Add(Me.Label1)
@@ -102,11 +110,46 @@ Partial Class frmGrundeinstellungen
Me.GroupBox1.Dock = System.Windows.Forms.DockStyle.Top
Me.GroupBox1.Location = New System.Drawing.Point(0, 0)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(470, 114)
Me.GroupBox1.Size = New System.Drawing.Size(470, 209)
Me.GroupBox1.TabIndex = 6
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "Log-Einstellungen:"
'
'lblLogDeleteTime
'
Me.lblLogDeleteTime.AutoSize = True
Me.lblLogDeleteTime.Location = New System.Drawing.Point(6, 169)
Me.lblLogDeleteTime.Name = "lblLogDeleteTime"
Me.lblLogDeleteTime.Size = New System.Drawing.Size(211, 13)
Me.lblLogDeleteTime.TabIndex = 11
Me.lblLogDeleteTime.Text = "Logs werden automatisch gelöscht um: "
'
'lblTimeDeleteLogs
'
Me.lblTimeDeleteLogs.AutoSize = True
Me.lblTimeDeleteLogs.Location = New System.Drawing.Point(229, 112)
Me.lblTimeDeleteLogs.Name = "lblTimeDeleteLogs"
Me.lblTimeDeleteLogs.Size = New System.Drawing.Size(209, 13)
Me.lblTimeDeleteLogs.TabIndex = 10
Me.lblTimeDeleteLogs.Text = "Zeitpunkt der automatischen Löschung"
'
'txtTimeDeleteLogs
'
Me.txtTimeDeleteLogs.Location = New System.Drawing.Point(232, 128)
Me.txtTimeDeleteLogs.Name = "txtTimeDeleteLogs"
Me.txtTimeDeleteLogs.Size = New System.Drawing.Size(84, 22)
Me.txtTimeDeleteLogs.TabIndex = 9
'
'chkAutoDeleteLogs
'
Me.chkAutoDeleteLogs.AutoSize = True
Me.chkAutoDeleteLogs.Location = New System.Drawing.Point(9, 130)
Me.chkAutoDeleteLogs.Name = "chkAutoDeleteLogs"
Me.chkAutoDeleteLogs.Size = New System.Drawing.Size(146, 17)
Me.chkAutoDeleteLogs.TabIndex = 8
Me.chkAutoDeleteLogs.Text = "Automatisches Löschen"
Me.chkAutoDeleteLogs.UseVisualStyleBackColor = True
'
'TextBox4
'
Me.TextBox4.DataBindings.Add(New System.Windows.Forms.Binding("Text", Global.ToolCollection.My.MySettings.Default, "logolder_then", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged))
@@ -121,7 +164,7 @@ Partial Class frmGrundeinstellungen
Me.Label6.AutoSize = True
Me.Label6.Location = New System.Drawing.Point(229, 63)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(198, 13)
Me.Label6.Size = New System.Drawing.Size(199, 13)
Me.Label6.TabIndex = 6
Me.Label6.Text = "LogDateien löschen - ""Älter als""-Tage:"
'
@@ -148,7 +191,7 @@ Partial Class frmGrundeinstellungen
Me.GroupBox2.Controls.Add(Me.Label4)
Me.GroupBox2.Controls.Add(Me.cmbCores)
Me.GroupBox2.Dock = System.Windows.Forms.DockStyle.Top
Me.GroupBox2.Location = New System.Drawing.Point(0, 114)
Me.GroupBox2.Location = New System.Drawing.Point(0, 209)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(470, 68)
Me.GroupBox2.TabIndex = 7
@@ -178,7 +221,7 @@ Partial Class frmGrundeinstellungen
Me.GroupBox3.Controls.Add(Me.txterrorIndex)
Me.GroupBox3.Controls.Add(Me.Label5)
Me.GroupBox3.Dock = System.Windows.Forms.DockStyle.Top
Me.GroupBox3.Location = New System.Drawing.Point(0, 182)
Me.GroupBox3.Location = New System.Drawing.Point(0, 277)
Me.GroupBox3.Name = "GroupBox3"
Me.GroupBox3.Size = New System.Drawing.Size(470, 67)
Me.GroupBox3.TabIndex = 8
@@ -207,7 +250,7 @@ Partial Class frmGrundeinstellungen
'
Me.GroupBox4.Controls.Add(Me.TextBox3)
Me.GroupBox4.Dock = System.Windows.Forms.DockStyle.Top
Me.GroupBox4.Location = New System.Drawing.Point(0, 249)
Me.GroupBox4.Location = New System.Drawing.Point(0, 344)
Me.GroupBox4.Name = "GroupBox4"
Me.GroupBox4.Size = New System.Drawing.Size(470, 50)
Me.GroupBox4.TabIndex = 9
@@ -230,7 +273,7 @@ Partial Class frmGrundeinstellungen
Me.GroupBox5.Controls.Add(Me.Label8)
Me.GroupBox5.Controls.Add(Me.Label7)
Me.GroupBox5.Dock = System.Windows.Forms.DockStyle.Top
Me.GroupBox5.Location = New System.Drawing.Point(0, 299)
Me.GroupBox5.Location = New System.Drawing.Point(0, 394)
Me.GroupBox5.Name = "GroupBox5"
Me.GroupBox5.Size = New System.Drawing.Size(470, 100)
Me.GroupBox5.TabIndex = 10
@@ -290,7 +333,7 @@ Partial Class frmGrundeinstellungen
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(470, 407)
Me.ClientSize = New System.Drawing.Size(470, 590)
Me.Controls.Add(Me.GroupBox5)
Me.Controls.Add(Me.GroupBox4)
Me.Controls.Add(Me.GroupBox3)
@@ -336,4 +379,8 @@ Partial Class frmGrundeinstellungen
Friend WithEvents cmbSleeptill As System.Windows.Forms.ComboBox
Friend WithEvents Label9 As System.Windows.Forms.Label
Friend WithEvents cmbSleepFrom As System.Windows.Forms.ComboBox
Friend WithEvents chkAutoDeleteLogs As CheckBox
Friend WithEvents lblTimeDeleteLogs As Label
Friend WithEvents txtTimeDeleteLogs As TextBox
Friend WithEvents lblLogDeleteTime As Label
End Class

View File

@@ -1,5 +1,8 @@
Public Class frmGrundeinstellungen
Private Shared _Instance As frmGrundeinstellungen = Nothing
Private _isLoading As Boolean = False
Public Shared Function Instance() As frmGrundeinstellungen
If _Instance Is Nothing OrElse _Instance.IsDisposed = True Then
_Instance = New frmGrundeinstellungen
@@ -20,7 +23,8 @@
End If
End Sub
Private Sub frmGrundeinstellungen_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Private Sub frmGrundeinstellungen_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
txtTimeDeleteLogs.Text = My.Settings.vDeleteLogsTime
My.Settings.Save()
End Sub
@@ -56,4 +60,82 @@
Private Sub txterrorIndex_TextChanged(sender As Object, e As EventArgs) Handles txterrorIndex.TextChanged
End Sub
Private Sub chkAutoDeleteLogs_CheckedChanged(sender As Object, e As EventArgs) Handles chkAutoDeleteLogs.CheckedChanged
If _isLoading Then Exit Sub
If chkAutoDeleteLogs.Checked Then
Dim dt As DateTime
If Not DateTime.TryParse(txtTimeDeleteLogs.Text, dt) Then
MsgBox("Ungültige Eingabe! Der Zeitpunkt für die Löschung wurde auf 03:00 Uhr gesetzt. Bitte geben Sie die Uhrzeit in folgendem Format ein: HH:mm.", MsgBoxStyle.Information)
'chkAutoDeleteLogs.Checked = False
'txtTimeDeleteLogs.Text = ""
My.Settings.vAutoDeleteLogs = chkAutoDeleteLogs.Checked
txtTimeDeleteLogs.Text = My.Settings.vDefaultDeleteLogsTime.ToShortTimeString
My.Settings.Save()
Else
My.Settings.vDeleteLogsTime = txtTimeDeleteLogs.Text
My.Settings.vAutoDeleteLogs = chkAutoDeleteLogs.Checked
My.Settings.Save()
lblLogDeleteTime.Text = "Logs werden automatisch gelöscht um: " & My.Settings.vDeleteLogsTime.ToShortTimeString & " Uhr."
frmStart.Instance().ToolStripStatusLabel_LogDeleteTime.Text = "Logs werden automatisch gelöscht um: " & My.Settings.vDeleteLogsTime.ToShortTimeString & " Uhr."
frmStart.Instance().SetupTimerDeleteLogfiles()
End If
Else
txtTimeDeleteLogs.Text = ""
My.Settings.vAutoDeleteLogs = chkAutoDeleteLogs.Checked
My.Settings.Save()
lblLogDeleteTime.Text = "Automatisches Löschen von Logs ist inaktiv."
frmStart.Instance().ToolStripStatusLabel_LogDeleteTime.Text = "Automatisches Löschen von Logs ist inaktiv."
frmStart.Instance().TimerDeleteLogfiles.Stop()
End If
End Sub
Private Sub FrmGrundeinstellungen_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
_isLoading = True
Try
If My.Settings.vAutoDeleteLogs Then
chkAutoDeleteLogs.Checked = My.Settings.vAutoDeleteLogs
If String.IsNullOrWhiteSpace(My.Settings.vDeleteLogsTime.ToString) Then
txtTimeDeleteLogs.Text = My.Settings.vDefaultDeleteLogsTime.ToShortTimeString
lblLogDeleteTime.Text = "Logs werden automatisch gelöscht um: " & My.Settings.vDefaultDeleteLogsTime.ToShortTimeString & " Uhr."
Else
txtTimeDeleteLogs.Text = My.Settings.vDeleteLogsTime.ToShortTimeString
lblLogDeleteTime.Text = "Logs werden automatisch gelöscht um: " & My.Settings.vDeleteLogsTime.ToShortTimeString & " Uhr."
End If
Else
txtTimeDeleteLogs.Text = ""
lblLogDeleteTime.Text = "Automatisches Löschen von Logs ist inaktiv."
End If
Catch ex As Exception
End Try
_isLoading = False
End Sub
Private Sub txtTimeDeleteLogs_TextChanged(sender As Object, e As EventArgs) Handles txtTimeDeleteLogs.TextChanged
' Falls gerade geladen wird oder Checkbox nicht aktiv ist → nichts machen
If _isLoading OrElse Not chkAutoDeleteLogs.Checked Then Exit Sub
Dim dt As DateTime
' Prüfen, ob Eingabe im Format HH:mm gültig ist
If DateTime.TryParseExact(txtTimeDeleteLogs.Text, "HH:mm", Nothing, Globalization.DateTimeStyles.None, dt) Then
' Neuen Wert in Settings speichern
My.Settings.vDeleteLogsTime = dt
My.Settings.Save()
' Labels aktualisieren
lblLogDeleteTime.Text = $"Logs werden automatisch gelöscht um: {dt:HH:mm} Uhr."
frmStart.Instance().ToolStripStatusLabel_LogDeleteTime.Text = lblLogDeleteTime.Text
' Timer neu setzen
frmStart.Instance().SetupTimerDeleteLogfiles()
End If
End Sub
End Class

View File

@@ -1,4 +1,5 @@
Imports System.ComponentModel
Imports System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder
Imports System.IO
Imports System.Text.RegularExpressions
Imports DigitalData.Modules.Logging
@@ -12,8 +13,7 @@ Public Class frmNIHauptseite
'####Variablen für Nachindexierung
Private _windreamNI As ClassNIWindream
Private _clsWorkfile As clsNI_WorkFile
'Private _clsMoRe As ClassMO_RE
'Private _windreamNI As ClassNIWindream = Me.ParentClass.Windream
Private bwProfil As New BackgroundWorker
Private bwDatei As New BackgroundWorker
Private bwsearch As New BackgroundWorker
@@ -67,7 +67,9 @@ Public Class frmNIHauptseite
' 3b. Windream initialisieren (Connection, Session, ... aufbauen)
If _windreamNI.Init() = False Then
EMAIL_DD.Send_EMail("Die Windream-Klasse konnte nicht initialisiert werden. Windream-Client unvollständig gestartert.", "windreamNI.Init()")
_Logger.Warn("Die Windream-Klasse konnte nicht initialisiert werden. Windream-Client unvollständig gestartert.")
Exit Sub
End If
'ClassMoveRenameLogger.Init("", "MoveRename_", True)
@@ -340,8 +342,6 @@ Public Class frmNIHauptseite
_Logger.Warn("Windream Suche für Profil: " & profil.Profilname & " konnte nicht ausgeführt werden! Die Datei " & Me.aktivesProfil.WindreamSuche & " existiert nicht!")
' wenn die gesuchte File eine Suche ist: per MAil informierne und Indexierung abbrechen
EMAIL_DD.Send_EMail("Fehler bei Nachindexierung: <br> >> Profil: " & Me.aktivesProfil.Profilname & "<br> >> Die windream-Suche : " & Me.aktivesProfil.WindreamSuche & " konnte nicht gefunden werden!" &
"<br> >> Mögliche Fehlerursache: Das W-Laufwerk ist nicht verfügbar!", "WMissing")
Abbruch_NI("Windream-Suche konnte nicht gefunden werden!", True, False)
clsHelper.Add_Application_log("Nachindexierung wurde abgebrochen, da eine Windream-Suche (" & Me.aktivesProfil.WindreamSuche & ") nicht gefunden werden konnte")
@@ -479,23 +479,22 @@ Public Class frmNIHauptseite
bwProfil.ReportProgress(oDTResults.Rows.Count)
_Logger.Debug($">> Working on [{oDTResults.Rows.Count}] documents via SQL...")
If Not IsNothing(_windreamNI) Then
Dim oColumnIndex As Integer
Try
Dim oCheckInt As Integer
Dim oCheckStr As String
If Integer.TryParse(oDTResults.Rows(0).Item(1).ToString, oCheckInt) Then
oColumnIndex = 0
Else
oColumnIndex = 1
End If
_Logger.Debug($">> WM fullFilePath is obviously located in ColumnIndex: {oColumnIndex}")
Catch ex As Exception
End Try
Dim i As Integer = 0
For Each oROW As DataRow In oDTResults.Rows
Dim oColumnIndex As Integer
Try
Dim oCheckInt As Integer
Dim oCheckStr As String
If Integer.TryParse(oROW.Item(1), oCheckInt) Then
' childAge successfully parsed as Integer
oColumnIndex = 0
Else
oColumnIndex = 1
End If
Catch ex As Exception
End Try
Dim oFilenameWM = oROW.Item(oColumnIndex).ToString
oFilenameWM = oFilenameWM.Replace("W:", "")
oFilenameWM = oFilenameWM.Replace("\\windream\objects", "")
@@ -692,7 +691,6 @@ Public Class frmNIHauptseite
IsWorking_Hour = True
End If
If _windreamNI.Init() = False Then
EMAIL_DD.Send_EMail("Die Windream-Klasse konnte nicht initialisiert werden. Windream-Client unvollständig gestartert.", "_windreamNI.Init(693)")
clsHelper.Add_Application_log("Die Windream-Klasse konnte nicht initialisiert werden. Windream-Client unvollständig gestartert?")
Exit Sub
@@ -797,8 +795,6 @@ Public Class frmNIHauptseite
Catch ex As Exception
errormsg = " FEHLER bei Check_Desk_Index (GetVariableValue für Index '" & aktivesProfil.Desk_windreamIndex & "'): " & ex.Message
_Logger.Warn(errormsg)
EMAIL_DD.Send_EMail("Beim Indexieren der Datei " & dokument.aName.ToString & " ist ein Fehler aufgetreten Check_Desk_Index (GetVariableValue): " & ex.Message, "Check_Desk_Index")
' wenn ein Fehler aufgetreten ist, muss das Flag gesetzt werden
Return True
@@ -1039,8 +1035,6 @@ Public Class frmNIHauptseite
result &= vbNewLine & " - Schwerwiegender Fehler bei Auslesen des einschränkenden Wertes aus Index':" & idxName_ohneSonderzeichen & "'"
oUnexpectedError = True
fehlermsg &= vbNewLine & "Schwerwiegender Fehler bei Auslesen des einschränkenden Wertes aus Index':" & idxName_ohneSonderzeichen & "' - Fehler: " & ex.Message
EMAIL_DD.Send_EMail(fehlermsg, "GettingWMIndexInfo")
End Try
' wenn beim Auslesen des Wertes für den aktuellen windream-Index kein Fehler auftrat
@@ -1637,7 +1631,7 @@ Public Class frmNIHauptseite
'Wenn Speicherort gespeichert werden soll wird Platzhalter ersetzt!
Sqlcommand = Sqlcommand.Replace("vSpeicherort", "'" & My.Settings.vWLaufwerk & ":" & Me.aktivesDokument.aPath & "'")
_Logger.Debug("SQL-Command: " & Sqlcommand)
'MsgBox(Me.aktivesDokument.aPath & vbNewLine & vbNewLine & Me.aktivesDokument.aName)
Next
If Me.aktivesProfil.DbArt = "Oracle" Then
If database.ExecuteonOracleDb(aktivesProfil.Profilname, Sqlcommand, aktivesProfil.DataSource, aktivesProfil.InitialCatalog, aktivesProfil.UserId, aktivesProfil.Password) = 1 Then
@@ -1752,7 +1746,6 @@ Public Class frmNIHauptseite
If unvollstaendig = False And Me.aktivesProfil.Ni_Art.ToLower <> "fulltext" Then
_Logger.Warn("Fehler bei IndexiereVerarbeiteDokument für die Datei: " & pMyWMDoc.aName.ToString)
_Logger.Warn("Fehlermeldung: " & fehlermsg)
EMAIL_DD.Send_EMail("Fehler in IndexiereVerarbeiteDokument für die Datei: " & pMyWMDoc.aName.ToString & "<br> Profilname: " & aktivesProfil.Profilname & " <br> Fehlermeldung: " & fehlermsg, "IndexiereVerarbeiteDokument1760")
End If
End If
@@ -1830,7 +1823,6 @@ Public Class frmNIHauptseite
Dim oMyDocumentName = pMyWMDoc.aName
Dim err As Boolean = CrFolderForIndex(docpath, oMyDocumentName)
If err = True Then
EMAIL_DD.Send_EMail("Fehler bei Create Folder for Index bei der Datei: '" & pMyWMDoc.aName.ToString & "'<br> Fehler: Die Datei wurde indexiert aber der Ordner konnte nicht erstellt werden!", "CrFolderForIndex")
End If
Else
@@ -1868,7 +1860,6 @@ Public Class frmNIHauptseite
Catch ex As Exception
_Logger.Error(ex)
_Logger.Warn($"oResultNachindexierung so far: {oResultNachindexierung.ToString}")
EMAIL_DD.Send_EMail("Schwerwiegender Fehler bei IndexiereVerarbeiteDokument - <br> Profil: " & aktivesProfil.Profilname & "<br> Datei: " & pMyWMDoc.aName.ToString & "<br> Fehler: " & ex.Message, "IndexiereVerarbeiteDokument1874")
End Try
End Sub
Private Function FolderForIndex(oDynamicFolder As String, myWMDocument As WMObject) As String
@@ -2165,7 +2156,14 @@ Public Class frmNIHauptseite
oReturnString = oNewPathFilename
End If
End If
If _windreamNI.NEW_MOVE_FILE(oReturnString, oActWMPath, "MO_RE", myWMDocument.aName) = True Then
Dim oFilename = myWMDocument.aName
If myWMDocument.aLocked Then
_Logger.Debug("Document still is locked...now unlocking...")
myWMDocument.unlock()
End If
myWMDocument = Nothing
If _windreamNI.NEW_MOVE_FILE(oReturnString, oActWMPath, "MO_RE", oFilename) = True Then
Return False
Else
Return True
@@ -2549,8 +2547,6 @@ Public Class frmNIHauptseite
_Logger.Error(ex)
End If
EMAIL_DD.Send_EMail("Schwerwiegender Fehler bei SetErrorMeldung - <br> Profil: " & aktivesProfil.Profilname & "<br> Datei: " & dokument.aName.ToString & "<br> Fehler: " & ex.Message, "SetErrorMeldung")
End Try
End Sub
Private Function IsNotEmpty(ByVal aValue As Object)

View File

@@ -186,7 +186,7 @@ Partial Class frmNI_SQLTest
Me.DataBindings.Add(New System.Windows.Forms.Binding("Location", Global.ToolCollection.My.MySettings.Default, "frmNI_SQL_Loc", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged))
Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Location = Global.ToolCollection.My.MySettings.Default.frmNI_SQL_Loc
Me.Name = "frmNI_SQLTest"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Test-Ergebnis der Nachindexierungverknüpfung"

View File

@@ -28,6 +28,7 @@ Partial Class frmStart
Me.Status_Machine = New System.Windows.Forms.ToolStripStatusLabel()
Me.ToolStripStatusLabel2 = New System.Windows.Forms.ToolStripStatusLabel()
Me.tslblVersion = New System.Windows.Forms.ToolStripStatusLabel()
Me.ToolStripStatusLabel_LogDeleteTime = New System.Windows.Forms.ToolStripStatusLabel()
Me.menHauptmenü = New System.Windows.Forms.MenuStrip()
Me.DateiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ÜbersichtToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
@@ -61,6 +62,7 @@ Partial Class frmStart
Me.EinblendenAusblendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.TimerNIRestart = New System.Windows.Forms.Timer(Me.components)
Me.TimerErrorLog = New System.Windows.Forms.Timer(Me.components)
Me.TimerDeleteLogfiles = New System.Windows.Forms.Timer(Me.components)
Me.StatusStrip1.SuspendLayout()
Me.menHauptmenü.SuspendLayout()
Me.Panel1.SuspendLayout()
@@ -73,8 +75,8 @@ Partial Class frmStart
'
'StatusStrip1
'
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.Status_Machine, Me.ToolStripStatusLabel2, Me.tslblVersion})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 708)
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.Status_Machine, Me.ToolStripStatusLabel2, Me.tslblVersion, Me.ToolStripStatusLabel_LogDeleteTime})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 613)
Me.StatusStrip1.Name = "StatusStrip1"
Me.StatusStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.ManagerRenderMode
Me.StatusStrip1.ShowItemToolTips = True
@@ -91,7 +93,7 @@ Partial Class frmStart
Me.Status_Machine.Image = CType(resources.GetObject("Status_Machine.Image"), System.Drawing.Image)
Me.Status_Machine.Margin = New System.Windows.Forms.Padding(10, 3, 0, 2)
Me.Status_Machine.Name = "Status_Machine"
Me.Status_Machine.Size = New System.Drawing.Size(140, 20)
Me.Status_Machine.Size = New System.Drawing.Size(139, 20)
Me.Status_Machine.Text = "ToolStripStatusLabel1"
Me.Status_Machine.ToolTipText = "Client-Name"
'
@@ -102,7 +104,7 @@ Partial Class frmStart
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom), System.Windows.Forms.ToolStripStatusLabelBorderSides)
Me.ToolStripStatusLabel2.Image = CType(resources.GetObject("ToolStripStatusLabel2.Image"), System.Drawing.Image)
Me.ToolStripStatusLabel2.Name = "ToolStripStatusLabel2"
Me.ToolStripStatusLabel2.Size = New System.Drawing.Size(140, 20)
Me.ToolStripStatusLabel2.Size = New System.Drawing.Size(139, 20)
Me.ToolStripStatusLabel2.Text = "ToolStripStatusLabel1"
Me.ToolStripStatusLabel2.ToolTipText = "Aktueller Benutzer"
'
@@ -112,10 +114,19 @@ Partial Class frmStart
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Right) _
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom), System.Windows.Forms.ToolStripStatusLabelBorderSides)
Me.tslblVersion.Name = "tslblVersion"
Me.tslblVersion.Size = New System.Drawing.Size(124, 20)
Me.tslblVersion.Size = New System.Drawing.Size(123, 20)
Me.tslblVersion.Text = "ToolStripStatusLabel1"
Me.tslblVersion.ToolTipText = "Aktueller Benutzer"
'
'ToolStripStatusLabel_LogDeleteTime
'
Me.ToolStripStatusLabel_LogDeleteTime.BorderSides = CType((((System.Windows.Forms.ToolStripStatusLabelBorderSides.Left Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Top) _
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Right) _
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom), System.Windows.Forms.ToolStripStatusLabelBorderSides)
Me.ToolStripStatusLabel_LogDeleteTime.Name = "ToolStripStatusLabel_LogDeleteTime"
Me.ToolStripStatusLabel_LogDeleteTime.Size = New System.Drawing.Size(270, 20)
Me.ToolStripStatusLabel_LogDeleteTime.Text = "Zeitpunkt der automatischen Löschung von Logs"
'
'menHauptmenü
'
Me.menHauptmenü.BackColor = System.Drawing.SystemColors.Control
@@ -232,7 +243,7 @@ Partial Class frmStart
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Left
Me.Panel1.Location = New System.Drawing.Point(0, 24)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(163, 684)
Me.Panel1.Size = New System.Drawing.Size(163, 589)
Me.Panel1.TabIndex = 10
'
'btnNachbearbeitungAD
@@ -436,11 +447,15 @@ Partial Class frmStart
'
Me.TimerErrorLog.Interval = 60000
'
'TimerDeleteLogfiles
'
Me.TimerDeleteLogfiles.Interval = 1000
'
'frmStart
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1237, 733)
Me.ClientSize = New System.Drawing.Size(1237, 638)
Me.ContextMenuStrip = Me.ContextMenuStrip1
Me.Controls.Add(Me.Panel1)
Me.Controls.Add(Me.menHauptmenü)
@@ -501,4 +516,6 @@ Partial Class frmStart
Friend WithEvents CriticalEmailTestToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ToolStripStatusLabel2 As System.Windows.Forms.ToolStripStatusLabel
Friend WithEvents TimerErrorLog As Timer
Friend WithEvents TimerDeleteLogfiles As Timer
Friend WithEvents ToolStripStatusLabel_LogDeleteTime As ToolStripStatusLabel
End Class

View File

@@ -159,7 +159,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAO
FAAAAk1TRnQBSQFMAgEBCQEAATABAwEwAQMBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
FAAAAk1TRnQBSQFMAgEBCQEAAVgBAwFYAQMBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAATADAAEBAQABCAYAAQwYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
@@ -643,6 +643,9 @@
<metadata name="TimerErrorLog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>920, 17</value>
</metadata>
<metadata name="TimerDeleteLogfiles.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>1049, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>102</value>
</metadata>

View File

@@ -21,47 +21,165 @@ Public Class frmStart
' Delete_LogFiles()
' End If
'End Sub
' CREATE INSTANCE
Private Shared _Instance As frmStart = Nothing
Public Shared Function Instance() As frmStart
If _Instance Is Nothing OrElse _Instance.IsDisposed Then
_Instance = New frmStart()
End If
Return _Instance
End Function
' DELETE LOGS
Private Sub Delete_LogFiles()
Try
' Dim vDate = DateAdd("d", -CInt(My.Settings.logolder_then), Now)
Dim directory As New DirectoryInfo(My.Application.Info.DirectoryPath & "\Log")
_Logger.Debug($"Dateipfad geholt: {directory}")
Dim oIntervall As Integer = 30
Integer.TryParse(frmGrundeinstellungen.TextBox4.Text, oIntervall)
_Logger.Debug($"Löschalter aus der Config geholt: {oIntervall}")
Try
Dim directory As New IO.DirectoryInfo(My.Application.Info.DirectoryPath & "\Log")
For Each file As FileInfo In directory.GetFiles
_Logger.Debug($"Durchlaufe alle Dateien: {file.FullName}")
Try
Dim oAgeOfFile As Integer = (Now - file.CreationTime).Days
_Logger.Debug($"Alter der aktuellen Datei: {oAgeOfFile}")
If oAgeOfFile >= oIntervall Then
file.Delete()
_Logger.Debug($"Lösche Datei, die älter ist als Löschalter: {file.FullName}")
End If
Catch ex As Exception
_Logger.Warn($"Could not delete file {file.Name}: {ex.Message}")
End Try
Next
For Each file As IO.FileInfo In directory.GetFiles
If (Now - file.CreationTime).Days > 29 Then file.Delete()
Next
Catch ex As Exception
End Try
Catch ex As Exception
_Logger.Error(ex.Message)
End Try
End Sub
Public Sub SetupTimerDeleteLogfiles()
Try
Dim now As DateTime = DateTime.Now
Dim startTime As DateTime
' Zeit aus den gespeicherten Settings lesen
Dim timeString As String = My.Settings.vDeleteLogsTime
If String.IsNullOrWhiteSpace(timeString) Then
timeString = "02:00"
End If
Dim dt As DateTime
If DateTime.TryParse(timeString, dt) Then
'If timeString Then
My.Settings.vDeleteLogsTime = timeString
My.Settings.Save()
startTime = New DateTime(now.Year, now.Month, now.Day, dt.Hour, dt.Minute, 0)
If now > startTime Then startTime = startTime.AddDays(1)
Else
_Logger.Warn($"Ungültiges Zeitformat '{timeString}', Standard 02:00 wird verwendet.")
startTime = New DateTime(now.Year, now.Month, now.Day, 2, 0, 0)
If now > startTime Then startTime = startTime.AddDays(1)
End If
Dim interval As TimeSpan = startTime - now
Dim intervalMs As Double = interval.TotalMilliseconds
' Sicherheitscheck
If intervalMs < 1000 Then
intervalMs = 1000
End If
If intervalMs > Integer.MaxValue Then
intervalMs = Integer.MaxValue
End If
TimerDeleteLogfiles.Interval = CInt(intervalMs)
If My.Settings.vAutoDeleteLogs Then
TimerDeleteLogfiles.Start()
_Logger.Info($"TimerDeleteLogfiles startet in {interval.TotalMinutes:F1} Minuten (Zielzeit: {startTime:HH:mm}).")
Else
TimerDeleteLogfiles.Stop()
_Logger.Info("Automatische Log-Löschung deaktiviert, Timer gestoppt.")
End If
Catch ex As Exception
_Logger.Error("Fehler in SetupTimerDeleteLogfiles: " & ex.Message)
End Try
End Sub
Private Sub TimerDeleteLogfiles_Tick(sender As Object, e As EventArgs) Handles TimerDeleteLogfiles.Tick
Try
Delete_Logfiles()
' Nächstes Intervall wieder 24h
TimerDeleteLogfiles.Interval = 24 * 60 * 60 * 1000
Catch ex As Exception
_Logger.Error("Fehler beim automatischen Löschen: " & ex.Message)
End Try
End Sub
Private Sub FMStart_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim result As MsgBoxResult = MsgBox("Sind Sie sicher, dass sie " & Application.ProductName & " wirklich schließen wollen?" & vbNewLine & "Alle Vorgänge/Module werden gestoppt und nicht mehr ausgeführt!", MsgBoxStyle.YesNo, "Bestätigung erforderlich:")
If result = MsgBoxResult.No Then
e.Cancel = True
End If
End Sub
Private Sub FMStart_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
_Instance = Me
Try
'Delete_LogFiles()
_MyLogger = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log"), Nothing, My.Application.Info.CompanyName,
My.Application.Info.ProductName)
My.Application.Info.ProductName)
_Logger = _MyLogger.GetLogger()
_MyLogger.Debug = Not My.Settings.vLogErrorsonly
CURR_Logger = _Logger
CURR_LogConfig = _MyLogger
Delete_LogFiles()
SetupTimerDeleteLogfiles()
'Aktueller Benutzer
Me.tslblVersion.Text = Environment.UserName.ToString
Me.Text = Application.CompanyName & "-" & Application.ProductName
Me.tslblVersion.Text = "Version: " & My.Application.Info.Version.ToString
'Aktuelle Machine
Me.Status_Machine.Text = My.Computer.Name
'Zeitpunkt der automatischen Löschung von Logs
If My.Settings.vAutoDeleteLogs Then
Me.ToolStripStatusLabel_LogDeleteTime.Text = "Logs werden automatisch gelöscht um: " & My.Settings.vDeleteLogsTime.ToShortTimeString & " Uhr."
Else
Me.ToolStripStatusLabel_LogDeleteTime.Text = "Automatisches Löschen von Logs ist inaktiv."
End If
' timUhrzeit.Start()
TimerErrorLog.Start()
If My.Settings.WM_PERS_LOGIN <> String.Empty Then
Dim oSPLIT As String()
oSPLIT = My.Settings.WM_PERS_LOGIN.Split("#")
If oSPLIT.Length > 0 Then
If oSPLIT(0) <> "@Domain" Then
WMLOGIN_DOMAIN = oSPLIT(0)
_Logger.Info($"WMLOGIN_DOMAIN: {WMLOGIN_DOMAIN}")
WMLOGIN_USER = oSPLIT(1)
_Logger.Info($"WMLOGIN_USER: {WMLOGIN_USER}")
WMLOGIN_PW = oSPLIT(2)
Else
_Logger.Info($"No dedicated WMUser(1)")
End If
End If
End If
If Not My.Settings.licensekey = "" Then
' Lizenz-Manager initialisieren
Me.licenseManager = New ClassLicenseManager("#DigitalData9731258!#", My.Settings.licensekey)
@@ -69,7 +187,6 @@ Public Class frmStart
' alle vorhandenen Module laden
Me.LoadAllModules()
End If
EMAIL_DD = New ClassEmail(_MyLogger)
Catch ex As Exception
_Logger.Error(ex)
@@ -188,7 +305,7 @@ Public Class frmStart
If Me.licenseManager.Licenses.machine.ToLower <> "all" Then
If Me.licenseManager.Licenses.machine.ToLower <> My.Computer.Name.ToLower Then
MsgBox("Ihre Lizenz gilt nicht für diese Maschine. " & vbNewLine & "Gelesener Computer Name: '" & My.Computer.Name & "'" & vbNewLine & "License Computer Name: '" & Me.licenseManager.Licenses.machine & "'" & vbNewLine &
"Bitte setzen Sie sich mit Digital Data in Verbindung.", MsgBoxStyle.Exclamation, "Lizenz ungültig:")
"Bitte setzen Sie sich mit Digital Data in Verbindung.", MsgBoxStyle.Exclamation, "Lizenz ungültig:")
Me.grbDI.Visible = False
Me.GBNachindexierung.Visible = False
Me.GroupBoxIntegration.Visible = False
@@ -257,10 +374,10 @@ Public Class frmStart
Private Sub FMStart_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
TimerNIRestart.Start()
If My.Settings.vDIDurchlaufRunning = True Then
If My.Settings.DI_RUNNING = True Then
Open_DI_Main()
End If
If My.Settings.NI_RUNNING = True Then
If NIDurchlaufRunning = True Then
Open_NI_Main()
End If
End Sub
@@ -411,12 +528,6 @@ Public Class frmStart
End If
End Sub
Private Sub CriticalEmailTestToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CriticalEmailTestToolStripMenuItem.Click
Cursor = Cursors.WaitCursor
EMAIL_DD.Send_EMail("Dies ist eine Test-Email!", "888888888")
Cursor = Cursors.Default
End Sub
Private Sub TimerErrorLog_Tick(sender As Object, e As EventArgs) Handles TimerErrorLog.Tick
If CURRENT_APPLICATION_LOG <> String.Empty Then
Dim frm As New frmApplicationLog