MS Service aktualisert
This commit is contained in:
parent
ea2554aa10
commit
1d4d48cd01
1
.gitignore
vendored
1
.gitignore
vendored
@ -154,3 +154,4 @@ $RECYCLE.BIN/
|
|||||||
|
|
||||||
# Mac desktop service store files
|
# Mac desktop service store files
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
/app/.vs/windream-Result-Handler/v15/Server/sqlite3
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
</startup>
|
</startup>
|
||||||
<applicationSettings>
|
<applicationSettings>
|
||||||
<DDWDResultHandler.My.MySettings>
|
<DDWDResultHandler.My.MySettings>
|
||||||
<setting name="MyConnection" serializeAs="String">
|
<setting name="SQLSERVER_CS" serializeAs="String">
|
||||||
<value>Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security Info=True;User ID=sa;Password=dd</value>
|
<value>Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security Info=True;User ID=sa;Password=dd</value>
|
||||||
</setting>
|
</setting>
|
||||||
</DDWDResultHandler.My.MySettings>
|
</DDWDResultHandler.My.MySettings>
|
||||||
|
|||||||
@ -1,216 +0,0 @@
|
|||||||
Imports System.IO
|
|
||||||
|
|
||||||
Public Class ClassLoggerOld
|
|
||||||
Private Shared DateiSpeicherort As String = Nothing
|
|
||||||
Private Shared DateiPrefix As String = ""
|
|
||||||
Private Shared Datei As IO.File = Nothing
|
|
||||||
Private Shared Dateiname As String = ""
|
|
||||||
Private Shared StreamWriter As IO.StreamWriter = Nothing
|
|
||||||
Private Shared HasInformedAboutError As Boolean = False
|
|
||||||
' eine Art Konstruktor
|
|
||||||
Public Shared Sub Init(ByVal speicherort As String, Optional ByVal prefix As String = "", Optional ByVal appendFile As Boolean = True)
|
|
||||||
SetSpeicherort()
|
|
||||||
ClassLoggerOld.DateiSpeicherort = speicherort
|
|
||||||
' wenn ein Prfix gesetzt wurde
|
|
||||||
If Not prefix = "" Then
|
|
||||||
' initialisiert das Prefix
|
|
||||||
ClassLoggerOld.SetPrefix(prefix)
|
|
||||||
End If
|
|
||||||
Dim str As String = ClassLoggerOld.DateiSpeicherort & "\" & ClassLoggerOld.DateiPrefix & System.DateTime.Now.ToString("yyyy_MM_dd") & ".txt"
|
|
||||||
Dim anz As Integer = 1
|
|
||||||
Do While File.Exists(str)
|
|
||||||
Dim info As New FileInfo(str)
|
|
||||||
Dim length As Long = info.Length
|
|
||||||
If length > 5000000 Then
|
|
||||||
str = IO.Path.GetDirectoryName(str)
|
|
||||||
str = str & "\" & ClassLoggerOld.DateiPrefix & System.DateTime.Now.ToString("yyyy_MM_dd") & "(" & anz.ToString & ").txt"
|
|
||||||
anz = anz + 1
|
|
||||||
Else
|
|
||||||
Exit Do
|
|
||||||
End If
|
|
||||||
Loop
|
|
||||||
ClassLoggerOld.Dateiname = str
|
|
||||||
If Not appendFile Then
|
|
||||||
' der Versuch die Datei zu löschen
|
|
||||||
'Try
|
|
||||||
' My.Computer.FileSystem.DeleteFile(ClassNILogger.Dateiname, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.DeletePermanently)
|
|
||||||
'Catch ex As Exception
|
|
||||||
' ' bei Fehler besteht kein Schreibrecht auf die Datei oder Datei existiert nicht
|
|
||||||
' ' ALSO: alles Okay soweit
|
|
||||||
'End Try
|
|
||||||
My.Computer.FileSystem.WriteAllText(ClassLoggerOld.Dateiname, "Neu erstellt - appendfile", False)
|
|
||||||
End If
|
|
||||||
' testen ob sich die Datei öffnen und beschreiben lässt
|
|
||||||
'ClassNILogger.CheckIsLogWritable()
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
' legt den Speicherort fest
|
|
||||||
Public Shared Sub SetSpeicherort()
|
|
||||||
Dim f As New IO.DirectoryInfo(My.Application.Info.DirectoryPath & "\Log")
|
|
||||||
If f.Exists = False Then
|
|
||||||
IO.Directory.CreateDirectory(My.Application.Info.DirectoryPath & "\Log")
|
|
||||||
End If
|
|
||||||
ClassLoggerOld.DateiSpeicherort = My.Application.Info.DirectoryPath & "\Log\"
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
' legt das Prefix für den Dateinamen fest
|
|
||||||
Public Shared Sub SetPrefix(ByVal prefix As String)
|
|
||||||
ClassLoggerOld.DateiPrefix = prefix
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Shared Sub Add(ByVal text As String, ByVal _error As Boolean, Optional ByVal Funktion As String = "")
|
|
||||||
Try
|
|
||||||
If ClassLoggerOld.OpenFile Then
|
|
||||||
Try
|
|
||||||
Dim msg As String
|
|
||||||
If _error = True And Funktion <> "" Then
|
|
||||||
msg = ">> Achtung Fehler in Funktion '" & Funktion & "'" & vbNewLine & "Fehlermeldung: "
|
|
||||||
ElseIf _error = True Then
|
|
||||||
msg = ">> Achtung Fehler:" & vbNewLine & "Fehlermeldung: "
|
|
||||||
End If
|
|
||||||
msg &= text
|
|
||||||
|
|
||||||
ClassLoggerOld.StreamWriter.WriteLine(msg)
|
|
||||||
ClassLoggerOld.CloseFile()
|
|
||||||
Catch e As Exception
|
|
||||||
ClassLoggerOld.WriteErrorMessage()
|
|
||||||
End Try
|
|
||||||
Else
|
|
||||||
ClassLoggerOld.WriteErrorMessage()
|
|
||||||
End If
|
|
||||||
Catch ex As Exception
|
|
||||||
|
|
||||||
End Try
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
Public Shared Sub AddDetailLog(ByVal text As String)
|
|
||||||
If ClassLoggerOld.OpenFile Then
|
|
||||||
Try
|
|
||||||
If clsSQLITE.konf_logerrorsonly = False Then
|
|
||||||
ClassLoggerOld.StreamWriter.WriteLine(">> " & text)
|
|
||||||
ClassLoggerOld.CloseFile()
|
|
||||||
End If
|
|
||||||
Catch e As Exception
|
|
||||||
ClassLoggerOld.WriteErrorMessage()
|
|
||||||
End Try
|
|
||||||
Else
|
|
||||||
ClassLoggerOld.WriteErrorMessage()
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
' öffnet eine Datei zum Schreiben
|
|
||||||
Private Shared Function OpenFile()
|
|
||||||
Try
|
|
||||||
' wenn ein Speicherort festgelegt wurde
|
|
||||||
If Not ClassLoggerOld.DateiSpeicherort = Nothing Then
|
|
||||||
' den Dateienamen definieren
|
|
||||||
Dim dateiname As String = ClassLoggerOld.Dateiname
|
|
||||||
' Datei anlegen wenn noch nicht vorhanden
|
|
||||||
My.Computer.FileSystem.WriteAllText(dateiname, String.Empty, True)
|
|
||||||
' die Datei zum Schreiben öffnen
|
|
||||||
ClassLoggerOld.StreamWriter = New IO.StreamWriter(dateiname, True, System.Text.Encoding.UTF8)
|
|
||||||
End If
|
|
||||||
' wenn die Datei erfolgreich geöffnet wurde
|
|
||||||
If ClassLoggerOld.StreamWriter IsNot Nothing Then
|
|
||||||
Return True
|
|
||||||
Else
|
|
||||||
Return False
|
|
||||||
End If
|
|
||||||
Catch ex As Exception
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
|
|
||||||
End Function
|
|
||||||
|
|
||||||
' öffnet eine Datei zum Schreiben
|
|
||||||
Private Shared Function OpenFile(ByVal DateiSpeicherort As String, ByVal DateiPrefix As String)
|
|
||||||
Try
|
|
||||||
' wenn ein Speicherort festgelegt wurde
|
|
||||||
If Not DateiSpeicherort = Nothing And ClassLoggerOld.CheckIsLogWritable() Then
|
|
||||||
' den Dateienamen definieren
|
|
||||||
Dim dateiname As String = ClassLoggerOld.Dateiname
|
|
||||||
' Datei anlegen wenn noch nicht vorhanden
|
|
||||||
My.Computer.FileSystem.WriteAllText(dateiname, String.Empty, True)
|
|
||||||
|
|
||||||
' die Datei zum Schreiben öffnen
|
|
||||||
ClassLoggerOld.StreamWriter = New IO.StreamWriter(dateiname, True, System.Text.Encoding.UTF8)
|
|
||||||
End If
|
|
||||||
' wenn die Datei erfolgreich geöffnet wurde
|
|
||||||
If ClassLoggerOld.StreamWriter IsNot Nothing Then
|
|
||||||
Return True
|
|
||||||
Else
|
|
||||||
Return False
|
|
||||||
End If
|
|
||||||
|
|
||||||
Catch ex As Exception
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
|
|
||||||
End Function
|
|
||||||
|
|
||||||
|
|
||||||
' schliesst die geöffnete Datei
|
|
||||||
Private Shared Sub CloseFile()
|
|
||||||
|
|
||||||
' wenn eine Datei geöffnet ist
|
|
||||||
If ClassLoggerOld.StreamWriter IsNot Nothing Then
|
|
||||||
' die Datei schliessen
|
|
||||||
ClassLoggerOld.StreamWriter.Close()
|
|
||||||
ClassLoggerOld.StreamWriter = Nothing
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
|
|
||||||
Public Shared Function CheckIsLogWritable()
|
|
||||||
|
|
||||||
If ClassLoggerOld.OpenFile Then
|
|
||||||
Try
|
|
||||||
ClassLoggerOld.CloseFile()
|
|
||||||
Catch e As Exception
|
|
||||||
ClassLoggerOld.WriteErrorMessage()
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
Else
|
|
||||||
ClassLoggerOld.WriteErrorMessage()
|
|
||||||
Return False
|
|
||||||
End If
|
|
||||||
|
|
||||||
Return True
|
|
||||||
End Function
|
|
||||||
|
|
||||||
|
|
||||||
Public Shared Function CheckIsLogWritable(ByVal vDateiSpeicherort As String, ByVal vDateiPrefix As String)
|
|
||||||
|
|
||||||
If ClassLoggerOld.OpenFile(vDateiSpeicherort, vDateiPrefix) Then
|
|
||||||
Try
|
|
||||||
ClassLoggerOld.CloseFile()
|
|
||||||
Catch e As Exception
|
|
||||||
ClassLoggerOld.WriteErrorMessage()
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
Else
|
|
||||||
ClassLoggerOld.WriteErrorMessage()
|
|
||||||
Return False
|
|
||||||
End If
|
|
||||||
|
|
||||||
Return True
|
|
||||||
End Function
|
|
||||||
|
|
||||||
|
|
||||||
Private Shared Sub WriteErrorMessage()
|
|
||||||
If Not ClassLoggerOld.HasInformedAboutError Then
|
|
||||||
Try
|
|
||||||
EventLog.WriteEntry("Windream Result Handler", "Fehler beim Öffnen der Logdatei - Keine Schreibrechte in Verzeichnis??", EventLogEntryType.Warning)
|
|
||||||
Catch ex As Exception
|
|
||||||
|
|
||||||
End Try
|
|
||||||
|
|
||||||
'EventLog1.Source = "Windream Result Handler"
|
|
||||||
'clsSQLITE.Execute_non_Query("INSERT INTO TBLOG (MODUL,MESSAGE) VALUES ('MAIN','" & "Fehler beim Öffnen der Logdatei - Keine Schreibrechte im Verzeichnis? Es wird keine Logdatei angelegt oder beschrieben.")
|
|
||||||
'MsgBox("Beim Öffnen der Logdatei ist ein Fehler aufgetreten. Bitte stellen Sie sicher das Sie sowohl über entsprechende Schreibrechte im Verzeichnis, als auch über ausreichend Speicherplatz zum Speichern der Logdatei verfügen." & _
|
|
||||||
' vbNewLine & vbNewLine & "Es wird keine Logdatei angelegt oder beschrieben." & vbNewLine & vbNewLine & "Im folgenden werden Sie über Fehler, den Log betreffend nicht weiter informiert, um den Ablauf des Dateiimporters nicht zu stören.", _
|
|
||||||
' MsgBoxStyle.Information, "Fehler beim Öffnen der Logdatei")
|
|
||||||
ClassLoggerOld.HasInformedAboutError = True
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
End Class
|
|
||||||
193
app/DDWDResultHandler/ClassWindream_allgemein.vb
Normal file
193
app/DDWDResultHandler/ClassWindream_allgemein.vb
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
Imports WINDREAMLib
|
||||||
|
Imports WINDREAMLib.WMCOMEvent
|
||||||
|
Imports WINDREAMLib.WMEntity
|
||||||
|
Imports WINDREAMLib.WMObjectEditMode
|
||||||
|
Imports WINDREAMLib.WMSearchOperator
|
||||||
|
Imports WINDREAMLib.WMSearchRelation
|
||||||
|
Imports WMOBRWSLib
|
||||||
|
|
||||||
|
Public Class ClassWindream_allgemein
|
||||||
|
|
||||||
|
#Region "+++++ Konstanten +++++"
|
||||||
|
Const DEBUG = AUS
|
||||||
|
Const AUS = 0
|
||||||
|
Const WINDREAM = 1
|
||||||
|
Const VARIABLEN = 2
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
#Region "+++++ Variablen +++++"
|
||||||
|
Public oConnect ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht)
|
||||||
|
Public oSession 'As WINDREAMLib.WMSession ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht)
|
||||||
|
Public oBrowser As New WMOBRWSLib.ServerBrowser
|
||||||
|
Public oDokumentTypen As WINDREAMLib.WMObjects
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
|
||||||
|
#Region "+++++ Allgemeine Methoden und Funktionen +++++"
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Konstruktor für die windream-Klasse
|
||||||
|
''' </summary>
|
||||||
|
''' <remarks></remarks>
|
||||||
|
Sub New()
|
||||||
|
' wenn ein Fehler bei der Initialisierung auftrat
|
||||||
|
If Not Me.Init() Then
|
||||||
|
' Nachricht ausgeben
|
||||||
|
clsLogger.Add("Es trat ein Fehler bei der Initialisierung der Klasse windream auf. Bitte prüfen Sie ob der windream-Server aktiv ist und alle Dienste gestartet sind.!", True)
|
||||||
|
|
||||||
|
|
||||||
|
' das Programm "abschießen"
|
||||||
|
Process.GetCurrentProcess.Kill()
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Initialisiert die statische Klasse (Login, Session starten, usw.)
|
||||||
|
''' </summary>
|
||||||
|
''' <returns>Liefert True wenn das Anmelden erfolgreich war, sonst False</returns>
|
||||||
|
''' <remarks></remarks>
|
||||||
|
Public Function Init() As Boolean
|
||||||
|
Try
|
||||||
|
Try
|
||||||
|
' Session-Objekt instanziieren und mit dem im Client ausgewählten Server belegen
|
||||||
|
Me.oSession = CreateObject("Windream.WMSession", Me.GetCurrentServer)
|
||||||
|
'If My.Settings.vDetailLog Then ClassLogger.Add(" >> windream-Server: '" & Me.GetCurrentServer & "'", False)
|
||||||
|
' Connection-Objekt instanziieren
|
||||||
|
Me.oConnect = CreateObject("Windream.WMConnect")
|
||||||
|
'MsgBox("windrem init 'ed")
|
||||||
|
Catch ex As Exception
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
|
||||||
|
|
||||||
|
' wenn windream nicht angemeldet ist
|
||||||
|
If Not Me.IsLoggedIn Then
|
||||||
|
|
||||||
|
' Art der Anmeldung an windream festlegen
|
||||||
|
' 0x0L (also 0) = Standard windream Benutzer
|
||||||
|
' WM_MODULE_ID_DOCTYPEEDITOR_LIC = ermöglicht Zugriff auf die windream Management Funktionen (Z.B. zur Verwaltung der windream Dokumententypen, Auswahllisten, etc.)
|
||||||
|
' WM_MODULE_ID_INDEXSERVICE = ermöglicht der Session die Indexierungs-Events vom windream DMS-Service zu empfangen
|
||||||
|
Me.oConnect.ModuleID = 0
|
||||||
|
|
||||||
|
' setzt die minimal erwartete windream-Version
|
||||||
|
Me.oConnect.MinReqVersion = "3"
|
||||||
|
|
||||||
|
' -- Impersonifizierung nur möglich mit registry-eintrag --
|
||||||
|
' oConnect.UserName "\schulung\windream"
|
||||||
|
' oConnect.Password "windream"
|
||||||
|
|
||||||
|
' Verbindung mit Session-Objekt (und dem ausgewählten Server) aufbauen
|
||||||
|
Me.oConnect.LoginSession(Me.oSession)
|
||||||
|
If Me.oSession.aLoggedin = False Then
|
||||||
|
clsLogger.Add("Es konnte keine Session aufgebaut werden!", True)
|
||||||
|
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
'If My.Settings.vDetailLog Then
|
||||||
|
' ClassLogger.Add(" >> windream-Version: '" & oSession.GetSystemInfo("WindreamVersion") & "'", False)
|
||||||
|
'End If
|
||||||
|
|
||||||
|
' AUSGABE VON SYSTEMINFORMATIONEN
|
||||||
|
' Gibt die Versionsart (Lizenztyp) also Small-Business-Edition (SBE), Small-Business-Extension (SBX)
|
||||||
|
' oder Business-Edition (BE) aus
|
||||||
|
'MsgBox("WindreamVersion: " & oSession.GetSystemInfo("WindreamVersion") & vbNewLine & "LicenceKey: " & oSession.GetSystemInfo("LicenceKey") & vbNewLine & _
|
||||||
|
' vbNewLine & "LicenceName: " & oSession.GetSystemInfo("LicenceName"))
|
||||||
|
|
||||||
|
'Dim WMCtrl As AISCONTROLDATACOMLib.AISControlData
|
||||||
|
'WMCtrl = New AISCONTROLDATACOMLib.AISControlData
|
||||||
|
|
||||||
|
'' liefert die Versionsnummer des Clients
|
||||||
|
|
||||||
|
'MsgBox(WMCtrl.WMWorkstationBuildNo)
|
||||||
|
'MsgBox(WMCtrl.W
|
||||||
|
'' liefert den Servernamen des angemeldeten windreams
|
||||||
|
'MsgBox(WMCtrl.WMServerName)
|
||||||
|
|
||||||
|
Try
|
||||||
|
Me.oSession.SwitchEvents(WMCOMEventWMSessionNeedIndex, False)
|
||||||
|
' der Parameter WMEntityDocument definiert, dass nur Dokumenttypen und keine
|
||||||
|
' Ordnertypen ausgelesen werden
|
||||||
|
Me.oDokumentTypen = Me.oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
|
||||||
|
Catch ex As Exception
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return True
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
If Err.Number = -2147220985 Then
|
||||||
|
Else
|
||||||
|
clsLogger.Add(ex.Message & vbNewLine & "Fehler beim Login an windream!", True)
|
||||||
|
|
||||||
|
End If
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Region "+++++ Funktionen die für den Objekttyp relevate Informationen zurückliefern +++++"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Public Function GetTypeOfIndex(ByVal indexname As String) As Integer
|
||||||
|
Try
|
||||||
|
Dim oAttribute = Me.oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
|
||||||
|
Dim vType = oAttribute.getVariableValue("dwAttrType")
|
||||||
|
Return vType
|
||||||
|
Catch ex As Exception
|
||||||
|
Return Nothing
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Region "+++++ Allgemeine Funktionen die Informationen zurückliefern +++++"
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Liefert True wenn die windream-Session angemeldet ist und False für den Fall, dass die Session nicht eingeloggt ist.
|
||||||
|
''' </summary>
|
||||||
|
''' <returns>Anmeldestatus als Boolean</returns>
|
||||||
|
''' <remarks></remarks>
|
||||||
|
Public Function IsLoggedIn() As Boolean
|
||||||
|
Try
|
||||||
|
Return Me.oSession.aLoggedin
|
||||||
|
Catch ex As Exception
|
||||||
|
clsLogger.Add("Me.oSession.aLoggedin was ended with error: " & ex.Message, True)
|
||||||
|
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Return False
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Liefert den Servernamen an dem windream aktuell angemeldet ist.
|
||||||
|
''' </summary>
|
||||||
|
''' <returns>Servername als String</returns>
|
||||||
|
''' <remarks></remarks>
|
||||||
|
Public Function GetCurrentServer() As String
|
||||||
|
Try
|
||||||
|
Return Me.oBrowser.GetCurrentServer 'ClassWindream.oBrowser.GetCurrentServer
|
||||||
|
Catch ex As Exception
|
||||||
|
clsLogger.Add(ex.Message & vbNewLine & "Der aktuell gewählte windream-Server konnte nicht ausgelesen werden!", True)
|
||||||
|
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Return ""
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#End Region
|
||||||
|
End Class
|
||||||
@ -32,11 +32,11 @@ Public Class DDWDResultHandler
|
|||||||
clsLogger.Add(" ", False)
|
clsLogger.Add(" ", False)
|
||||||
clsLogger.Add("## WindreamResultHandler gestartet - " & Now & " ## ", False)
|
clsLogger.Add("## WindreamResultHandler gestartet - " & Now & " ## ", False)
|
||||||
|
|
||||||
If My.Settings.MyConnection = String.Empty Then
|
If My.Settings.SQLSERVER_CS = String.Empty Then
|
||||||
clsLogger.Add("Achtung: Es wurde noch kein Datenbank-ConnectionString hinterlegt.", True)
|
clsLogger.Add("Achtung: Es wurde noch kein Datenbank-ConnectionString hinterlegt.", True)
|
||||||
Else
|
Else
|
||||||
If clsSQLITE.Init = False Then
|
If clsDatatabase.Init = False Then
|
||||||
clsLogger.Add("Achtung: Es konnte keine Verbindung zur Datenbank '" & My.Settings.MyConnection & "' hergestellt werden!", True)
|
clsLogger.Add("Achtung: Es konnte keine Verbindung zur Datenbank '" & My.Settings.SQLSERVER_CS & "' hergestellt werden!", True)
|
||||||
Else
|
Else
|
||||||
' '### Thread für Durchlauf generieren
|
' '### Thread für Durchlauf generieren
|
||||||
DDWDResultHandler.threadRunner = New BackgroundWorker()
|
DDWDResultHandler.threadRunner = New BackgroundWorker()
|
||||||
@ -73,14 +73,14 @@ Public Class DDWDResultHandler
|
|||||||
'EventLog1.WriteEntry("Dienst 'DD windream Result Handler' gestoppt")
|
'EventLog1.WriteEntry("Dienst 'DD windream Result Handler' gestoppt")
|
||||||
clsLogger.Add("", False)
|
clsLogger.Add("", False)
|
||||||
clsLogger.Add("## WindreamResultHandler wurde gestoppt - " & Now & " ## ", False)
|
clsLogger.Add("## WindreamResultHandler wurde gestoppt - " & Now & " ## ", False)
|
||||||
clsSQLITE.Execute_non_Query("Update TBPROFIL SET Running = 1 WHERE GUID = " & clsProfil._profGUID)
|
clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 1 WHERE GUID = " & _PROFIL_ID)
|
||||||
clsLogger.Add("", False)
|
clsLogger.Add("", False)
|
||||||
clsLogger.WriteLog()
|
clsLogger.WriteLog()
|
||||||
End Sub
|
End Sub
|
||||||
Public Shared Sub RUN_THREAD(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
|
Public Shared Sub RUN_THREAD(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
|
||||||
Try
|
Try
|
||||||
Dim notcompleted As Boolean = False
|
Dim notcompleted As Boolean = False
|
||||||
clsLogger.Init(My.Application.Info.DirectoryPath & "\Log", "logResultHandler_")
|
clsLogger.Init(My.Application.Info.DirectoryPath & "\Log", "_SERVICEResultHandler")
|
||||||
clsLogger.Add("", False)
|
clsLogger.Add("", False)
|
||||||
clsLogger.Add("## Start Durchlauf WindreamResultHandler - " & Now & " ## ", False)
|
clsLogger.Add("## Start Durchlauf WindreamResultHandler - " & Now & " ## ", False)
|
||||||
clsLogger.Add("", False)
|
clsLogger.Add("", False)
|
||||||
@ -88,35 +88,44 @@ Public Class DDWDResultHandler
|
|||||||
If _windream.Init() = True Then
|
If _windream.Init() = True Then
|
||||||
clsLogger.AddDetailLog("windream vollumfänglich initialisiert!")
|
clsLogger.AddDetailLog("windream vollumfänglich initialisiert!")
|
||||||
'Zur sicherheit die DB nochmal initialiseren
|
'Zur sicherheit die DB nochmal initialiseren
|
||||||
If clsSQLITE.Init() = True Then
|
If clsDatatabase.Init() = True Then
|
||||||
Dim DT As DataTable = clsSQLITE.Return_Datatable("SELECT GUID FROM TBPROFIL WHERE AKTIV = 1 order by REIHENFOLGE")
|
Dim DT As DataTable = clsDatatabase.Return_Datatable("select * from TBWMRH_KONFIGURATION where GUID = 1")
|
||||||
If DT.Rows.Count > 0 Then
|
If DT.Rows.Count = 1 Then
|
||||||
clsLogger.AddDetailLog("Anzahl der aktiven Profile: " & DT.Rows.Count.ToString)
|
LOG_ERRORS_ONLY = DT.Rows(0).Item("LOG_ERRORS_ONLY")
|
||||||
For Each DR As DataRow In DT.Rows
|
If LOG_ERRORS_ONLY = False Then
|
||||||
_PROFIL_ID = CInt(DR.Item("GUID"))
|
clsLogger.Add("Detaillog is ON!", False)
|
||||||
'Und nun das Profil durchlaufen
|
End If
|
||||||
Dim initresult = clsProfil.Init(_PROFIL_ID)
|
WDLAUFWERK = DT.Rows(0).Item("WD_LAUFWERK")
|
||||||
If initresult = True Then
|
|
||||||
clsLogger.WriteLog()
|
|
||||||
clsProfil.Profil_Durchlauf()
|
|
||||||
ElseIf initresult = False Then
|
|
||||||
clsLogger.Add("clsProfil konnte nicht initialisiert werden", True, "RUN_THREAD")
|
|
||||||
notcompleted = True
|
|
||||||
ElseIf initresult = 0 Then
|
|
||||||
clsLogger.AddDetailLog("initresult: 0")
|
|
||||||
notcompleted = True
|
|
||||||
ElseIf initresult = 1 Then
|
|
||||||
clsLogger.AddDetailLog("initresult: 1")
|
|
||||||
notcompleted = True
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
Else
|
|
||||||
clsLogger.Add("- Keine aktiven Profile vorhanden", False)
|
|
||||||
notcompleted = True
|
|
||||||
End If
|
End If
|
||||||
clsSQLITE.Execute_non_Query("UPDATE TBKONFIGURATION SET LAST_TICK = DATETIME ('now' , 'localtime') WHERE GUID = 1")
|
DT = clsDatatabase.Return_Datatable("SELECT GUID FROM TBWMRH_PROFIL WHERE AKTIV = 1 order by REIHENFOLGE")
|
||||||
|
If DT.Rows.Count > 0 Then
|
||||||
|
clsLogger.AddDetailLog("Anzahl der aktiven Profile: " & DT.Rows.Count.ToString)
|
||||||
|
For Each DR As DataRow In DT.Rows
|
||||||
|
_PROFIL_ID = CInt(DR.Item("GUID"))
|
||||||
|
'Und nun das Profil durchlaufen
|
||||||
|
Dim initresult = clsProfil.Init(_PROFIL_ID)
|
||||||
|
If initresult = True Then
|
||||||
|
clsLogger.WriteLog()
|
||||||
|
clsProfil.Profil_Durchlauf()
|
||||||
|
ElseIf initresult = False Then
|
||||||
|
clsLogger.Add("clsProfil konnte nicht initialisiert werden", True, "RUN_THREAD")
|
||||||
|
notcompleted = True
|
||||||
|
ElseIf initresult = 0 Then
|
||||||
|
clsLogger.AddDetailLog("initresult: 0")
|
||||||
|
notcompleted = True
|
||||||
|
ElseIf initresult = 1 Then
|
||||||
|
clsLogger.AddDetailLog("initresult: 1")
|
||||||
|
notcompleted = True
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Else
|
||||||
|
clsLogger.Add("- Keine aktiven Profile vorhanden", False)
|
||||||
|
notcompleted = True
|
||||||
|
End If
|
||||||
|
clsDatatabase.Execute_non_Query("UPDATE TBWMRH_KONFIGURATION SET LAST_TICK = GETDATE() WHERE GUID = 1")
|
||||||
Else
|
Else
|
||||||
clsLogger.Add("- clsSQLLite konnte nicht initialisiert werden!", False)
|
clsLogger.Add("- clsSQLLite konnte nicht initialisiert werden!", False)
|
||||||
notcompleted = True
|
notcompleted = True
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
@ -131,14 +140,14 @@ Public Class DDWDResultHandler
|
|||||||
End Try
|
End Try
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
#Region "*** BackgroundWorker DI und NI beenden und Abbrechen ***"
|
#Region "*** BackgroundWorker beenden und Abbrechen ***"
|
||||||
Private Shared Sub Thread_Completed(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) 'Handles threadDateiimport.RunWorkerCompleted
|
Private Shared Sub Thread_Completed(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) 'Handles threadDateiimport.RunWorkerCompleted
|
||||||
' This event fires when the DoWork event completes
|
' This event fires when the DoWork event completes
|
||||||
Try
|
Try
|
||||||
Dim result As String = ""
|
Dim result As String = ""
|
||||||
|
|
||||||
If e.Cancelled Then
|
If e.Cancelled Then
|
||||||
clsLogger.Add("## Der Dateiimport wurde durch den Anwender abgebrochen", False)
|
clsLogger.Add("## Der Process wurde durch den Anwender abgebrochen", False)
|
||||||
clsLogger.WriteLog()
|
clsLogger.WriteLog()
|
||||||
ElseIf e.Error IsNot Nothing Then
|
ElseIf e.Error IsNot Nothing Then
|
||||||
clsLogger.Add("Fehler bei Durchlauf. Der Vorgang wird abgebrochen.", True, "Thread_Completed")
|
clsLogger.Add("Fehler bei Durchlauf. Der Vorgang wird abgebrochen.", True, "Thread_Completed")
|
||||||
|
|||||||
@ -55,7 +55,7 @@
|
|||||||
<HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
<HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Interop.WINDREAMLib">
|
<Reference Include="Interop.WINDREAMLib">
|
||||||
<HintPath>..\..\..\Bibliotheken\DLL\windreamDLL\64bit\Interop.WINDREAMLib.dll</HintPath>
|
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll</HintPath>
|
||||||
<EmbedInteropTypes>False</EmbedInteropTypes>
|
<EmbedInteropTypes>False</EmbedInteropTypes>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
@ -88,7 +88,7 @@
|
|||||||
<Import Include="System.Threading.Tasks" />
|
<Import Include="System.Threading.Tasks" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="ClassLoggerOld.vb" />
|
<Compile Include="ClassWindream_allgemein.vb" />
|
||||||
<Compile Include="clsDatatabase.vb" />
|
<Compile Include="clsDatatabase.vb" />
|
||||||
<Compile Include="clsDateiverarbeitung.vb" />
|
<Compile Include="clsDateiverarbeitung.vb" />
|
||||||
<Compile Include="clsEmail.vb" />
|
<Compile Include="clsEmail.vb" />
|
||||||
|
|||||||
@ -15,7 +15,7 @@ Option Explicit On
|
|||||||
Namespace My
|
Namespace My
|
||||||
|
|
||||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.0.1.0"), _
|
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.5.0.0"), _
|
||||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
Partial Friend NotInheritable Class MySettings
|
Partial Friend NotInheritable Class MySettings
|
||||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
Inherits Global.System.Configuration.ApplicationSettingsBase
|
||||||
@ -58,9 +58,9 @@ Namespace My
|
|||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||||
Global.System.Configuration.DefaultSettingValueAttribute("Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security In"& _
|
Global.System.Configuration.DefaultSettingValueAttribute("Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security In"& _
|
||||||
"fo=True;User ID=sa;Password=dd")> _
|
"fo=True;User ID=sa;Password=dd")> _
|
||||||
Public ReadOnly Property MyConnection() As String
|
Public ReadOnly Property SQLSERVER_CS() As String
|
||||||
Get
|
Get
|
||||||
Return CType(Me("MyConnection"),String)
|
Return CType(Me("SQLSERVER_CS"),String)
|
||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
|
||||||
<Profiles />
|
<Profiles />
|
||||||
<Settings>
|
<Settings>
|
||||||
<Setting Name="MyConnection" Type="System.String" Scope="Application">
|
<Setting Name="SQLSERVER_CS" Type="System.String" Scope="Application">
|
||||||
<Value Profile="(Default)">Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security Info=True;User ID=sa;Password=dd</Value>
|
<Value Profile="(Default)">Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security Info=True;User ID=sa;Password=dd</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
</Settings>
|
</Settings>
|
||||||
|
|||||||
@ -1,4 +1,8 @@
|
|||||||
Module RUNTIME_VARIABLES
|
Module RUNTIME_VARIABLES
|
||||||
Public EXPORTED_FILENAME As String
|
Public EXPORTED_FILENAME As String
|
||||||
|
Public _PROFIL_ID, _profGUID As Integer
|
||||||
|
Public WDLAUFWERK, _profObjekttyp, _profwdSuche, _profDay, _profRunType, _Profilname As String
|
||||||
|
Public _proflastRun As Date
|
||||||
|
Public LOG_ERRORS_ONLY As Boolean = False
|
||||||
|
|
||||||
End Module
|
End Module
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
Imports System.Data.SqlClient
|
Imports System.Data.SqlClient
|
||||||
Imports Oracle.ManagedDataAccess.Client
|
Imports Oracle.ManagedDataAccess.Client
|
||||||
|
|
||||||
Public Class clsDatatabase
|
Public Class clsDatatabase
|
||||||
Public Shared Function ExecuteonOracleDb(CONSTRING As String, ByVal plsqlcommand As String)
|
Public Shared Function ExecuteonOracleDb(CONSTRING As String, ByVal plsqlcommand As String)
|
||||||
Try
|
Try
|
||||||
@ -36,6 +35,7 @@ Public Class clsDatatabase
|
|||||||
' *** Ausführen des Command ***
|
' *** Ausführen des Command ***
|
||||||
If Command() IsNot Nothing Then
|
If Command() IsNot Nothing Then
|
||||||
Try
|
Try
|
||||||
|
clsLogger.AddDetailLog("Now executing: " & plsqlcommand)
|
||||||
Oracle_Command.ExecuteNonQuery()
|
Oracle_Command.ExecuteNonQuery()
|
||||||
' DB-Connection schliessen
|
' DB-Connection schliessen
|
||||||
Oracle_Conn.Close()
|
Oracle_Conn.Close()
|
||||||
@ -57,11 +57,59 @@ Public Class clsDatatabase
|
|||||||
|
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
clsLogger.Add("Unexpected Error in ExecuteonOracleDb: " & ex.Message & vbNewLine & "(SQL: " & plsqlcommand & ")", True, "clsDatatabase.ExecuteonOracleDb")
|
clsLogger.Add("Unexpected Error in ExecuteonOracleDb: " & ex.Message & vbNewLine & "SQL: " & plsqlcommand, True, "clsDatatabase.ExecuteonOracleDb")
|
||||||
' an dieser Stelle sollte jeder unvorhergesehene Fehler der Funktion abgefangen werden
|
' an dieser Stelle sollte jeder unvorhergesehene Fehler der Funktion abgefangen werden
|
||||||
Return False
|
Return False
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
|
End Function
|
||||||
|
Public Shared Function Oracle_CS_Test(CONSTRING As String)
|
||||||
|
Try
|
||||||
|
Dim conn As New OracleConnectionStringBuilder
|
||||||
|
|
||||||
|
Dim Oracle_Conn As OracleConnection = New OracleConnection(CONSTRING)
|
||||||
|
|
||||||
|
' Verbindung zur Datenbank aufbauen
|
||||||
|
Try
|
||||||
|
Oracle_Conn.Open()
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
clsLogger.Add(ex.Message, True, "clsDatatabase.Oracle_CS_Test(OpenConnection)")
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
Oracle_Conn.Close()
|
||||||
|
Return True
|
||||||
|
Catch ex As Exception
|
||||||
|
clsLogger.Add("Unexpected Error in Oracle_CS_Test: " & ex.Message, True, "clsDatatabase.Oracle_CS_Test")
|
||||||
|
' an dieser Stelle sollte jeder unvorhergesehene Fehler der Funktion abgefangen werden
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End Function
|
||||||
|
Public Shared Function MSSQL_CS_Test(CONSTRING As String)
|
||||||
|
Try
|
||||||
|
|
||||||
|
' die nötigen Variablen definieren
|
||||||
|
Dim Connection As SqlConnection = Nothing
|
||||||
|
|
||||||
|
|
||||||
|
' Verbindung zur Datenbank aufbauen
|
||||||
|
Try
|
||||||
|
Connection = New SqlConnection(CONSTRING)
|
||||||
|
Connection.Open()
|
||||||
|
Catch ex As Exception
|
||||||
|
clsLogger.Add(ex.Message, True, "clsDatatabase.MSSQL_CS_Test(OpenConnection)")
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
Connection.Close()
|
||||||
|
Return True
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
' an dieser Stelle sollte jeder unvorhergesehene Fehler der Funktion abgefangen werden
|
||||||
|
clsLogger.Add("UNEXPECTED ERROR: " & ex.Message, True, "clsDatatabase.MSSQL_CS_Test")
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
Public Shared Function ExecuteonMSSQL(ConString As String, ByVal sqlcommand As String)
|
Public Shared Function ExecuteonMSSQL(ConString As String, ByVal sqlcommand As String)
|
||||||
Try
|
Try
|
||||||
@ -128,4 +176,167 @@ Public Class clsDatatabase
|
|||||||
End Try
|
End Try
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
Private Shared connectionString As String
|
||||||
|
|
||||||
|
Public Shared Function Init()
|
||||||
|
Try
|
||||||
|
connectionString = My.Settings.SQLSERVER_CS
|
||||||
|
Dim SQLconnect As New SqlClient.SqlConnection
|
||||||
|
SQLconnect.ConnectionString = connectionString
|
||||||
|
SQLconnect.Open()
|
||||||
|
SQLconnect.Close()
|
||||||
|
Return True
|
||||||
|
Catch ex As Exception
|
||||||
|
clsLogger.Add("Error in DatabaseInit: " & ex.Message, True)
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Public Shared Function Return_Datatable(Select_anweisung As String)
|
||||||
|
Try
|
||||||
|
Dim SQLconnect As New SqlClient.SqlConnection
|
||||||
|
Dim SQLcommand As SqlClient.SqlCommand
|
||||||
|
|
||||||
|
|
||||||
|
SQLconnect.ConnectionString = connectionString
|
||||||
|
SQLconnect.Open()
|
||||||
|
SQLcommand = SQLconnect.CreateCommand
|
||||||
|
SQLcommand.CommandText = Select_anweisung
|
||||||
|
SQLcommand.CommandTimeout = 180
|
||||||
|
Dim adapter1 As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(SQLcommand)
|
||||||
|
Dim dt As DataTable = New DataTable()
|
||||||
|
|
||||||
|
adapter1.Fill(dt)
|
||||||
|
SQLconnect.Close()
|
||||||
|
|
||||||
|
Return dt
|
||||||
|
Catch ex As Exception
|
||||||
|
|
||||||
|
clsLogger.Add("Error in Return_Datatable: " & ex.Message, True)
|
||||||
|
clsLogger.Add(">> SQL: " & Select_anweisung, False)
|
||||||
|
|
||||||
|
Return Nothing
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
Public Shared Function Execute_non_Query(ExecuteCMD As String)
|
||||||
|
Try
|
||||||
|
Dim SQLconnect As New SqlClient.SqlConnection
|
||||||
|
Dim SQLcommand As SqlClient.SqlCommand
|
||||||
|
SQLconnect.ConnectionString = connectionString
|
||||||
|
|
||||||
|
SQLconnect.Open()
|
||||||
|
SQLcommand = SQLconnect.CreateCommand
|
||||||
|
'Update Last Created Record in Foo
|
||||||
|
SQLcommand.CommandText = ExecuteCMD
|
||||||
|
SQLcommand.CommandTimeout = 120
|
||||||
|
SQLcommand.ExecuteNonQuery()
|
||||||
|
SQLcommand.Dispose()
|
||||||
|
SQLconnect.Close()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Return True
|
||||||
|
Catch ex As Exception
|
||||||
|
|
||||||
|
clsLogger.Add("Error in Execute_non_Query: " & ex.Message, True)
|
||||||
|
clsLogger.Add("SQL: " & ExecuteCMD, False)
|
||||||
|
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Shared Function Execute_Scalar(cmdscalar As String)
|
||||||
|
Dim result
|
||||||
|
Try
|
||||||
|
|
||||||
|
|
||||||
|
Dim SQLconnect As New SqlClient.SqlConnection
|
||||||
|
Dim SQLcommand As SqlClient.SqlCommand
|
||||||
|
|
||||||
|
SQLconnect.ConnectionString = connectionString
|
||||||
|
|
||||||
|
|
||||||
|
SQLconnect.Open()
|
||||||
|
SQLcommand = SQLconnect.CreateCommand
|
||||||
|
'Update Last Created Record in Foo
|
||||||
|
SQLcommand.CommandText = cmdscalar
|
||||||
|
SQLcommand.CommandTimeout = 120
|
||||||
|
result = SQLcommand.ExecuteScalar()
|
||||||
|
SQLcommand.Dispose()
|
||||||
|
SQLconnect.Close()
|
||||||
|
|
||||||
|
|
||||||
|
Return result
|
||||||
|
Catch ex As Exception
|
||||||
|
|
||||||
|
clsLogger.Add("Error in Execute_Scalar: " & ex.Message, True)
|
||||||
|
clsLogger.Add("SQL: " & cmdscalar, False)
|
||||||
|
Return Nothing
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
Public Shared Function OracleExecute_Scalar(cmdscalar As String, OracleConnection As String)
|
||||||
|
Dim result
|
||||||
|
Try
|
||||||
|
Dim SQLconnect As New OracleConnection
|
||||||
|
Dim SQLcommand As New OracleCommand
|
||||||
|
SQLconnect.ConnectionString = OracleConnection
|
||||||
|
SQLconnect.Open()
|
||||||
|
SQLcommand = SQLconnect.CreateCommand
|
||||||
|
'Update Last Created Record in Foo
|
||||||
|
SQLcommand.CommandText = cmdscalar
|
||||||
|
result = SQLcommand.ExecuteScalar()
|
||||||
|
SQLcommand.Dispose()
|
||||||
|
SQLconnect.Close()
|
||||||
|
Return result
|
||||||
|
Catch ex As Exception
|
||||||
|
clsLogger.Add("Error in OracleExecute_Scalar: " & ex.Message, True)
|
||||||
|
clsLogger.Add("#SQL: " & cmdscalar, False)
|
||||||
|
Return Nothing
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
Public Shared Function OracleExecute_non_Query(ExecuteCMD As String, OracleConnection As String, Optional userInput As Boolean = False)
|
||||||
|
Try
|
||||||
|
Dim SQLconnect As New OracleConnection
|
||||||
|
Dim SQLcommand As OracleCommand
|
||||||
|
SQLconnect.ConnectionString = OracleConnection
|
||||||
|
SQLconnect.Open()
|
||||||
|
SQLcommand = SQLconnect.CreateCommand
|
||||||
|
'Update Last Created Record in Foo
|
||||||
|
SQLcommand.CommandText = ExecuteCMD
|
||||||
|
SQLcommand.ExecuteNonQuery()
|
||||||
|
SQLcommand.Dispose()
|
||||||
|
SQLconnect.Close()
|
||||||
|
Return True
|
||||||
|
Catch ex As Exception
|
||||||
|
|
||||||
|
clsLogger.Add("Error in OracleExecute_non_Query: " & ex.Message, True)
|
||||||
|
clsLogger.Add("#SQL: " & ExecuteCMD, False)
|
||||||
|
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Shared Function Oracle_Return_Datatable(Select_anweisung As String, OracleConnection As String, Optional userInput As Boolean = False)
|
||||||
|
Try
|
||||||
|
Dim SQLconnect As New OracleConnection
|
||||||
|
Dim SQLcommand As OracleCommand
|
||||||
|
SQLconnect.ConnectionString = OracleConnection
|
||||||
|
SQLconnect.Open()
|
||||||
|
SQLcommand = SQLconnect.CreateCommand
|
||||||
|
SQLcommand.CommandText = Select_anweisung
|
||||||
|
|
||||||
|
Dim adapter1 As OracleDataAdapter = New OracleDataAdapter(SQLcommand)
|
||||||
|
Dim dt As DataTable = New DataTable()
|
||||||
|
adapter1.Fill(dt)
|
||||||
|
SQLconnect.Close()
|
||||||
|
Return dt
|
||||||
|
Catch ex As Exception
|
||||||
|
|
||||||
|
clsLogger.Add("Error in Oracle_Return_Datatable: " & ex.Message, True)
|
||||||
|
clsLogger.Add("#SQL: " & Select_anweisung, False)
|
||||||
|
Return Nothing
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@ -1,16 +1,19 @@
|
|||||||
Imports WINDREAMLib
|
Imports WINDREAMLib
|
||||||
Imports System.IO
|
Imports System.IO
|
||||||
|
Imports System.Net
|
||||||
|
Imports Newtonsoft.Json
|
||||||
|
Imports System.Text
|
||||||
|
|
||||||
Public Class clsDateiverarbeitung
|
Public Class clsDateiverarbeitung
|
||||||
|
|
||||||
#Region "***** Variablen und Konstanten*****"
|
#Region "***** Variablen und Konstanten*****"
|
||||||
Public Shared _windream As New clsWindream_allgemein
|
Public Shared _windream As New clsWindream_allgemein
|
||||||
|
|
||||||
Public Shared pr_Profilname, pr_Objekttyp, pr_wdSuche, konfig_WDLaufwerk, konfig_VERSIONSTZ As String
|
|
||||||
Public Shared pr_GUID As Integer
|
|
||||||
Public Shared pr_DTPROFIL_REGELN As DataTable
|
Public Shared pr_DTPROFIL_REGELN As DataTable
|
||||||
Public Shared aktfile_Exportresult
|
Public Shared aktfile_Exportresult
|
||||||
|
|
||||||
Private email As New clsEmail
|
|
||||||
Public Shared CriticalError As Boolean = False
|
Public Shared CriticalError As Boolean = False
|
||||||
|
|
||||||
Private Shared regel_TYP, regel_INDEX_NAME, regel_QUELLE1, regel_FROM1, regel_FROM2 As String
|
Private Shared regel_TYP, regel_INDEX_NAME, regel_QUELLE1, regel_FROM1, regel_FROM2 As String
|
||||||
@ -25,17 +28,8 @@ Public Class clsDateiverarbeitung
|
|||||||
#End Region
|
#End Region
|
||||||
Public Shared Function InitProfilData()
|
Public Shared Function InitProfilData()
|
||||||
Try
|
Try
|
||||||
pr_Profilname = Nothing
|
|
||||||
pr_Objekttyp = Nothing
|
|
||||||
pr_wdSuche = Nothing
|
|
||||||
pr_DTPROFIL_REGELN = Nothing
|
pr_DTPROFIL_REGELN = Nothing
|
||||||
' Profildaten der Klasse mitteilen
|
' Profildaten der Klasse mitteilen
|
||||||
pr_Profilname = clsProfil._Profilname
|
|
||||||
pr_Objekttyp = clsProfil._profObjekttyp
|
|
||||||
pr_wdSuche = clsProfil._profwdSuche
|
|
||||||
pr_GUID = clsProfil._profGUID
|
|
||||||
konfig_WDLaufwerk = clsSQLITE.konf_WDLAUFWERK
|
|
||||||
konfig_VERSIONSTZ = clsSQLITE.konf_VERSIONSTRENNZEICHEN
|
|
||||||
clsLogger.AddDetailLog("InitProfilData Profildaten zugewiesen....")
|
clsLogger.AddDetailLog("InitProfilData Profildaten zugewiesen....")
|
||||||
Return True
|
Return True
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
@ -52,7 +46,7 @@ Public Class clsDateiverarbeitung
|
|||||||
clsLogger.Add("", False)
|
clsLogger.Add("", False)
|
||||||
clsLogger.Add(">> Verarbeitung von Datei: " & WDDatei.aName, False)
|
clsLogger.Add(">> Verarbeitung von Datei: " & WDDatei.aName, False)
|
||||||
'Die Quelle zusammensetzen
|
'Die Quelle zusammensetzen
|
||||||
clsLogger.AddDetailLog("PFAD: " & konfig_WDLaufwerk & ":" & WDDatei.aPath & "\" & WDDatei.aName)
|
clsLogger.AddDetailLog("PFAD: " & WDLAUFWERK & ":" & WDDatei.aPath & "\" & WDDatei.aName)
|
||||||
'Dim Quelle As String = IO.Path.GetDirectoryName(WDLaufwerk & ":" & WDDatei.aPath & "\" & WDDatei.aName)
|
'Dim Quelle As String = IO.Path.GetDirectoryName(WDLaufwerk & ":" & WDDatei.aPath & "\" & WDDatei.aName)
|
||||||
|
|
||||||
Dim ExportFileIO = New WMOTOOLLib.WMFileIO ' CreateObject("WMOTOOLLib.WMFileIO") ' New WMOTOOLLib.WMFileIO
|
Dim ExportFileIO = New WMOTOOLLib.WMFileIO ' CreateObject("WMOTOOLLib.WMFileIO") ' New WMOTOOLLib.WMFileIO
|
||||||
@ -67,7 +61,7 @@ Public Class clsDateiverarbeitung
|
|||||||
clsLogger.AddError("Unvorhergesehener Fehler beim Lock-Vorgang: " & ex.Message, "clsDV.Export_File")
|
clsLogger.AddError("Unvorhergesehener Fehler beim Lock-Vorgang: " & ex.Message, "clsDV.Export_File")
|
||||||
Return False
|
Return False
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
Dim oWMStream = WDDatei.OpenStream("BinaryObject", WMObjectStreamOpenModeReadWrite)
|
Dim oWMStream = WDDatei.OpenStream("BinaryObject", WMObjectStreamOpenModeReadWrite)
|
||||||
'### VERSIONIERUNG ###
|
'### VERSIONIERUNG ###
|
||||||
Dim version As Integer = 2
|
Dim version As Integer = 2
|
||||||
@ -77,7 +71,7 @@ Public Class clsDateiverarbeitung
|
|||||||
Dim tempFilename As String = Zielpfad & Filename & Extension
|
Dim tempFilename As String = Zielpfad & Filename & Extension
|
||||||
'Überprüfen ob File existiert
|
'Überprüfen ob File existiert
|
||||||
Do While IO.File.Exists(tempFilename) = True
|
Do While IO.File.Exists(tempFilename) = True
|
||||||
tempFilename = Zielpfad & Filename & konfig_VERSIONSTZ & version & Extension
|
tempFilename = Zielpfad & Filename & "_" & version & Extension
|
||||||
version = version + 1
|
version = version + 1
|
||||||
Loop
|
Loop
|
||||||
clsLogger.AddDetailLog("Zieldateiname: " & tempFilename)
|
clsLogger.AddDetailLog("Zieldateiname: " & tempFilename)
|
||||||
@ -100,11 +94,11 @@ Public Class clsDateiverarbeitung
|
|||||||
Return False
|
Return False
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
Public Shared Function Rename_File(wddok As WMObject, konvention As String)
|
Public Shared Function Rename_File(WMFile As WMObject, konvention As String)
|
||||||
Try
|
Try
|
||||||
clsLogger.AddDetailLog("Konvention: '" & konvention & "'")
|
clsLogger.AddDetailLog("Konvention: '" & konvention & "'")
|
||||||
|
|
||||||
' Regulären Ausdruck zum Auslesen der windream-Indexe definieren
|
'Regulären Ausdruck zum Auslesen der windream-Indexe definieren
|
||||||
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
|
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
|
||||||
' einen Regulären Ausdruck laden
|
' einen Regulären Ausdruck laden
|
||||||
Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
|
Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
|
||||||
@ -113,13 +107,13 @@ Public Class clsDateiverarbeitung
|
|||||||
Dim i As Integer = 0
|
Dim i As Integer = 0
|
||||||
' alle Vorkommen der windream-Indexe im SQL-String durchlaufen
|
' alle Vorkommen der windream-Indexe im SQL-String durchlaufen
|
||||||
For Each reg_element As System.Text.RegularExpressions.Match In reg_elemente
|
For Each reg_element As System.Text.RegularExpressions.Match In reg_elemente
|
||||||
' die Zeichen [% und ] entfernen (liefert den wirklichen windream-Index)
|
'die Zeichen [% und ] entfernen (liefert den wirklichen windream-Index)
|
||||||
Dim reg_element_Ohne_SZ As String = reg_element.Value.Replace("[%", "")
|
Dim reg_element_Ohne_SZ As String = reg_element.Value.Replace("[%", "")
|
||||||
reg_element_Ohne_SZ = reg_element_Ohne_SZ.Replace("]", "")
|
reg_element_Ohne_SZ = reg_element_Ohne_SZ.Replace("]", "")
|
||||||
clsLogger.AddDetailLog("Indexwert aus Index '" & reg_element_Ohne_SZ & "' auslesen....")
|
clsLogger.AddDetailLog("Indexwert aus Index '" & reg_element_Ohne_SZ & "' auslesen....")
|
||||||
Dim wdIndexwert
|
Dim wdIndexwert
|
||||||
' den Wert des Indexes für das aktuelle Dokument auslesen
|
'den Wert des Indexes für das aktuelle Dokument auslesen
|
||||||
wdIndexwert = wddok.GetVariableValue(reg_element_Ohne_SZ)
|
wdIndexwert = WMFile.GetVariableValue(reg_element_Ohne_SZ)
|
||||||
If wdIndexwert Is Nothing = False Then
|
If wdIndexwert Is Nothing = False Then
|
||||||
If Not wdIndexwert.GetType.ToString.Contains("System.Object") Then
|
If Not wdIndexwert.GetType.ToString.Contains("System.Object") Then
|
||||||
clsLogger.AddDetailLog("Namenkonvention (" & i & ") " & konvention)
|
clsLogger.AddDetailLog("Namenkonvention (" & i & ") " & konvention)
|
||||||
@ -143,7 +137,7 @@ Public Class clsDateiverarbeitung
|
|||||||
clsLogger.AddDetailLog("tempFilename: " & tempFilename)
|
clsLogger.AddDetailLog("tempFilename: " & tempFilename)
|
||||||
'Überprüfen ob File existiert
|
'Überprüfen ob File existiert
|
||||||
Do While IO.File.Exists(tempFilename) = True
|
Do While IO.File.Exists(tempFilename) = True
|
||||||
tempFilename = ZielPfad & "\" & Filename & konfig_VERSIONSTZ & version & Extension
|
tempFilename = ZielPfad & "\" & Filename & "~" & version & Extension
|
||||||
version += 1
|
version += 1
|
||||||
Loop
|
Loop
|
||||||
clsLogger.AddDetailLog("RenameFile - OLDFilename: " & aktfile_Exportresult & " - NEWFilename: " & Path.GetFileName(tempFilename))
|
clsLogger.AddDetailLog("RenameFile - OLDFilename: " & aktfile_Exportresult & " - NEWFilename: " & Path.GetFileName(tempFilename))
|
||||||
@ -155,6 +149,152 @@ Public Class clsDateiverarbeitung
|
|||||||
Return False
|
Return False
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
Public Shared Function Rename_File_Vektor(WMFile As WMObject, WMINDEX_NAME As String)
|
||||||
|
Try
|
||||||
|
Dim WMIndexwert
|
||||||
|
Dim ZielPfad As String = Path.GetDirectoryName(aktfile_Exportresult)
|
||||||
|
clsLogger.AddDetailLog("ZielPfad: " & ZielPfad)
|
||||||
|
Dim Extension = Path.GetExtension(aktfile_Exportresult)
|
||||||
|
clsLogger.AddDetailLog("Extension: " & Extension)
|
||||||
|
|
||||||
|
If WMINDEX_NAME.StartsWith("[%") Then
|
||||||
|
WMINDEX_NAME = WMINDEX_NAME.Replace("[%", "")
|
||||||
|
WMINDEX_NAME = WMINDEX_NAME.Replace("]", "")
|
||||||
|
End If
|
||||||
|
'den Wert des Indexes für das aktuelle Dokument auslesen
|
||||||
|
WMIndexwert = WMFile.GetVariableValue(WMINDEX_NAME)
|
||||||
|
If WMIndexwert.GetType.ToString.Contains("System.Object") Then
|
||||||
|
clsLogger.AddDetailLog("Rename_File_Vektor in Progress for index " & WMINDEX_NAME)
|
||||||
|
Dim anz As Integer = 1
|
||||||
|
Dim copybasefile As String
|
||||||
|
For Each WMvalue As Object In WMIndexwert
|
||||||
|
'Für jeden Value eine Datei erzeugen
|
||||||
|
Try
|
||||||
|
If WMvalue.ToString <> String.Empty Then
|
||||||
|
Dim tempFilename As String = ZielPfad & "\" & WMvalue & Extension
|
||||||
|
clsLogger.AddDetailLog("tempFilename: " & tempFilename)
|
||||||
|
If anz = 1 Then
|
||||||
|
clsLogger.AddDetailLog("RenameFile - OLDFilename: " & aktfile_Exportresult & " - NEWFilename: " & Path.GetFileName(tempFilename))
|
||||||
|
My.Computer.FileSystem.RenameFile(aktfile_Exportresult, Path.GetFileName(tempFilename))
|
||||||
|
copybasefile = tempFilename
|
||||||
|
Else
|
||||||
|
Dim version As Integer = 2
|
||||||
|
'Überprüfen ob File existiert
|
||||||
|
Do While IO.File.Exists(tempFilename) = True
|
||||||
|
tempFilename = ZielPfad & "\" & WMvalue & "~" & version & Extension
|
||||||
|
version += 1
|
||||||
|
Loop
|
||||||
|
File.Copy(copybasefile, tempFilename, True)
|
||||||
|
End If
|
||||||
|
anz += 1
|
||||||
|
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsDateiverarbeitung.ForEachWMvalue")
|
||||||
|
End Try
|
||||||
|
Next
|
||||||
|
Else
|
||||||
|
clsLogger.Add(">> Achtung WMIndex " & WMINDEX_NAME & " scheint kein Vektorfeld zu sein!", False, "clsDateiverarbeitung.Rename_File_Vektor")
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
clsLogger.Add(">> Dateien wurde erfolgreich nach Vektorfeld erzeugt.", False, "clsDateiverarbeitung.Rename_File_Vektor")
|
||||||
|
Return True
|
||||||
|
Catch ex As Exception
|
||||||
|
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsDateiverarbeitung.Rename_File_Vektor")
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Shared Function GetWMAPILink(docId As String, userId As String)
|
||||||
|
Dim hostname = "http://documents.mylogitservices.syncreon.com:8100"
|
||||||
|
Dim link As String = $"{hostname}/WMWebApi/windream.web.api/DigitalData/BNSDownload?docId={docId}&userId={userId}"
|
||||||
|
|
||||||
|
Return link
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Shared Function GetDocTypeCategory(docType As String)
|
||||||
|
Select Case docType
|
||||||
|
Case "Abliefernachweis"
|
||||||
|
Return 5
|
||||||
|
Case Else
|
||||||
|
Return 0
|
||||||
|
End Select
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Generiert einen Link für BNS und fügt das Dokument WMFile
|
||||||
|
''' ins BNS ein
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="WMFile">Das WMObject, dass das aktuelle Dokument repräsentiert</param>
|
||||||
|
''' <param name="userId">Die eindeutige Benutzer Kennung für die Authentifizierung in Windream</param>
|
||||||
|
Public Shared Function BNSjsonDownload(WMFile As WMObject, userId As String, apiAddress As String)
|
||||||
|
Try
|
||||||
|
' Indizes für das aktuelle Dokument auslesen
|
||||||
|
Dim SENDUNGNR = WMFile.GetVariableValue("Sendungnr")
|
||||||
|
Dim DOKID = WMFile.GetVariableValue("Dokument-ID")
|
||||||
|
Dim DOKART = WMFile.GetVariableValue("Dokumentart")
|
||||||
|
Dim now As DateTime = DateTime.Now
|
||||||
|
|
||||||
|
' Download Link für Dokument erstellen
|
||||||
|
Dim link As String = GetWMAPILink(DOKID, userId)
|
||||||
|
|
||||||
|
' JSON Payload erstellen und serialisieren
|
||||||
|
Dim doc As New BNSDocument()
|
||||||
|
doc.Bemerkung = DOKART
|
||||||
|
doc.Ivalidfrom = now
|
||||||
|
doc.Ivaliduntil = now.AddDays(30)
|
||||||
|
doc.Pfad = link
|
||||||
|
doc.Kategorien = New List(Of BNSDocumentCategory) From {
|
||||||
|
New BNSDocumentCategory With {.Id = GetDocTypeCategory(DOKART)}
|
||||||
|
}
|
||||||
|
|
||||||
|
Dim json As String = JsonConvert.SerializeObject(doc, Formatting.Indented)
|
||||||
|
Dim bytes As Byte() = Encoding.Default.GetBytes(json)
|
||||||
|
|
||||||
|
' HTTP Request machen
|
||||||
|
' Mandanten ID ist Standartmäßig 1
|
||||||
|
Dim mandatenId As Integer = 1
|
||||||
|
' Für Tests auf Sendung gesetzt, später sollte dieser String konfigurierbar sein
|
||||||
|
Dim geschaeftsObjekt = "Sendung"
|
||||||
|
' Für Tests wird hier die Sendungsnummer verwendet, später hängt der verwendete Index von 'geschaeftsObjekt' ab
|
||||||
|
Dim geschaeftsId = SENDUNGNR
|
||||||
|
Dim url As String = $"http://{apiAddress}/onwebui/api/Customer/{mandatenId}/{geschaeftsObjekt}/{geschaeftsId}/dokument"
|
||||||
|
|
||||||
|
clsLogger.Add($">> Generiertes JSON: {json}", False, "BNSjsonDownload")
|
||||||
|
clsLogger.Add($">> Creating WebRequest for {url}", False, "BNSjsonDownload")
|
||||||
|
|
||||||
|
Dim req As HttpWebRequest = WebRequest.CreateHttp(url)
|
||||||
|
|
||||||
|
req.Method = "POST"
|
||||||
|
req.ContentType = "application/json"
|
||||||
|
req.ContentLength = bytes.Length
|
||||||
|
req.Timeout = 3000
|
||||||
|
req.ServicePoint.Expect100Continue = False
|
||||||
|
|
||||||
|
Dim reqStream As Stream = req.GetRequestStream()
|
||||||
|
reqStream.Write(bytes, 0, bytes.Length)
|
||||||
|
reqStream.Close()
|
||||||
|
|
||||||
|
clsLogger.Add($">> Datei wird hochgeladen... docId: {DOKID}, dokart: {DOKART}, userId: {userId}", False, "BNSjsonDownload")
|
||||||
|
clsLogger.Add($">> Upload URL: {url}", False, "BNSjsonDownload")
|
||||||
|
|
||||||
|
Using res As HttpWebResponse = req.GetResponse()
|
||||||
|
Dim code As HttpStatusCode = res.StatusCode
|
||||||
|
Dim text As String = res.StatusDescription
|
||||||
|
|
||||||
|
' Status 201 Created bedeutet: Alles okay!
|
||||||
|
If code = HttpStatusCode.Created Then
|
||||||
|
clsLogger.Add($">> Datei geschrieben! docId: {DOKID}, dokart: {DOKART}, userId: {userId}", False, "BNSjsonDownload")
|
||||||
|
Else
|
||||||
|
Throw New Exception($"Server Error (HTTP {code}: {text})")
|
||||||
|
End If
|
||||||
|
End Using
|
||||||
|
Return True
|
||||||
|
Catch ex As Exception
|
||||||
|
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message & " - " & ex.Source, "BNSjsonDownload")
|
||||||
|
Return True
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
Public Shared Function RUN_ORACLE_COMMAND(WMFile As WMObject, OracleCS As String, OracleCommandRAW As String)
|
Public Shared Function RUN_ORACLE_COMMAND(WMFile As WMObject, OracleCS As String, OracleCommandRAW As String)
|
||||||
Try
|
Try
|
||||||
Dim result = REGEX_REPLACE(WMFile, OracleCommandRAW)
|
Dim result = REGEX_REPLACE(WMFile, OracleCommandRAW)
|
||||||
@ -163,7 +303,7 @@ Public Class clsDateiverarbeitung
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
If clsDatatabase.ExecuteonOracleDb(OracleCS, OracleCommandRAW) = True Then
|
If clsDatatabase.ExecuteonOracleDb(OracleCS, result) = True Then
|
||||||
Return True
|
Return True
|
||||||
Else
|
Else
|
||||||
Return False
|
Return False
|
||||||
@ -182,7 +322,7 @@ Public Class clsDateiverarbeitung
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
If clsDatatabase.ExecuteonMSSQL(MSSQLCS, SQLCommandRAW) = True Then
|
If clsDatatabase.ExecuteonMSSQL(MSSQLCS, result) = True Then
|
||||||
Return True
|
Return True
|
||||||
Else
|
Else
|
||||||
Return False
|
Return False
|
||||||
@ -219,11 +359,12 @@ Public Class clsDateiverarbeitung
|
|||||||
wdIndexwert = WMFile.GetVariableValue(reg_element_Ohne_SZ)
|
wdIndexwert = WMFile.GetVariableValue(reg_element_Ohne_SZ)
|
||||||
If wdIndexwert Is Nothing = False Then
|
If wdIndexwert Is Nothing = False Then
|
||||||
If Not wdIndexwert.GetType.ToString.Contains("System.Object") Then
|
If Not wdIndexwert.GetType.ToString.Contains("System.Object") Then
|
||||||
clsLogger.AddDetailLog("Namenkonvention (" & i & ") " & _STRING)
|
|
||||||
wdIndexwert = wdIndexwert.ToString.TrimEnd
|
wdIndexwert = wdIndexwert.ToString.TrimEnd
|
||||||
wdIndexwert = wdIndexwert.ToString.TrimStart
|
wdIndexwert = wdIndexwert.ToString.TrimStart
|
||||||
clsLogger.AddDetailLog("Ausgelesener Indexwert = '" & wdIndexwert & "'")
|
clsLogger.AddDetailLog("Ausgelesener Indexwert = '" & wdIndexwert & "'")
|
||||||
_STRING = _STRING.Replace(reg_element.Value, wdIndexwert.ToString)
|
_STRING = _STRING.Replace(reg_element.Value, wdIndexwert.ToString)
|
||||||
|
clsLogger.AddDetailLog("Namenkonvention (" & i & ") " & _STRING)
|
||||||
i += 1
|
i += 1
|
||||||
Else
|
Else
|
||||||
clsLogger.Add(">> Achtung gelesener Wert ist ein Vektorfeld - keine Umbenennung möglich ", False, "clsProfil.Profil_Durchlauf")
|
clsLogger.Add(">> Achtung gelesener Wert ist ein Vektorfeld - keine Umbenennung möglich ", False, "clsProfil.Profil_Durchlauf")
|
||||||
@ -241,5 +382,20 @@ Public Class clsDateiverarbeitung
|
|||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Public Class BNSDocument
|
||||||
|
Public Doksourcetype As Integer = 3
|
||||||
|
Public Pfad As String
|
||||||
|
Public Ivalidfrom As DateTime
|
||||||
|
Public Ivaliduntil As DateTime
|
||||||
|
Public Bemerkung As String
|
||||||
|
Public Primaer As Boolean = False
|
||||||
|
Public Fremsysid As Integer = 1
|
||||||
|
Public Kategorien As List(Of BNSDocumentCategory)
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class BNSDocumentCategory
|
||||||
|
Public Id As Integer
|
||||||
|
End Class
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,7 @@ Public Class clsEmail
|
|||||||
Private Shared MailEmpfaenger, MailFrom, MAilSMTP, MailUser, MailUser_PW As String
|
Private Shared MailEmpfaenger, MailFrom, MAilSMTP, MailUser, MailUser_PW As String
|
||||||
Public Shared Function Init()
|
Public Shared Function Init()
|
||||||
Try
|
Try
|
||||||
Dim DT As DataTable = clsSQLITE.Return_Datatable("select * from TBKONFIGURATION where GUID = 1 and EMAIL_AKTIV = 1")
|
Dim DT As DataTable = clsDatatabase.Return_Datatable("select * from TBKONFIGURATION where GUID = 1 and EMAIL_AKTIV = 1")
|
||||||
If DT.Rows.Count = 1 Then
|
If DT.Rows.Count = 1 Then
|
||||||
For Each row As DataRow In DT.Rows
|
For Each row As DataRow In DT.Rows
|
||||||
MailEmpfaenger = row.Item("EMAIL_EMP")
|
MailEmpfaenger = row.Item("EMAIL_EMP")
|
||||||
|
|||||||
@ -51,7 +51,7 @@ Public Class clsHelper
|
|||||||
Return False
|
Return False
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
Public Shared Function Datei_Versionieren(Dateiname As String, LOG_ERR_ONLY As Boolean, modul As String)
|
Public Shared Function Datei_Versionieren(Dateiname As String, modul As String)
|
||||||
Try
|
Try
|
||||||
Dim version As Integer = 1
|
Dim version As Integer = 1
|
||||||
Dim extension As String = Path.GetExtension(Dateiname) 'Quelldatei.Substring(Quelldatei.LastIndexOf("."))
|
Dim extension As String = Path.GetExtension(Dateiname) 'Quelldatei.Substring(Quelldatei.LastIndexOf("."))
|
||||||
@ -61,7 +61,7 @@ Public Class clsHelper
|
|||||||
'Automatische Versionierung mit Tilde + Version
|
'Automatische Versionierung mit Tilde + Version
|
||||||
Do While file_exists(Stammname & "\" & neuername & extension) = True
|
Do While file_exists(Stammname & "\" & neuername & extension) = True
|
||||||
clsLogger.Add(" - Datei " & endgueltigerDateiname & " ist vorhanden - Datei wird versioniert", False)
|
clsLogger.Add(" - Datei " & endgueltigerDateiname & " ist vorhanden - Datei wird versioniert", False)
|
||||||
neuername = Stammname & clsSQLITE.konf_VERSIONSTRENNZEICHEN & version
|
neuername = Stammname & "_"
|
||||||
endgueltigerDateiname = neuername & extension
|
endgueltigerDateiname = neuername & extension
|
||||||
version = version + 1
|
version = version + 1
|
||||||
Loop
|
Loop
|
||||||
|
|||||||
@ -2,14 +2,14 @@
|
|||||||
|
|
||||||
Public Class clsLogger
|
Public Class clsLogger
|
||||||
Private Shared LogPath As String
|
Private Shared LogPath As String
|
||||||
Private Shared LogFilename As String
|
Public Shared LogFilename As String
|
||||||
Private Shared logErr_name As String
|
Private Shared logErr_name As String
|
||||||
Private Shared log_string As String
|
Private Shared log_string As String
|
||||||
Public Shared Function Init(ByVal speicherort As String, ByVal prefix As String)
|
Public Shared Function Init(ByVal speicherort As String, ByVal prefix As String)
|
||||||
Try
|
Try
|
||||||
'Den Speicherort festlegen
|
'Den Speicherort festlegen
|
||||||
SetSpeicherort()
|
SetSpeicherort()
|
||||||
Dim logf_name As String = LogPath & "\" & prefix & System.DateTime.Now.ToString("yyyy_MM_dd") & ".txt"
|
Dim logf_name As String = LogPath & "\" & System.DateTime.Now.ToString("yyyy_MM_dd") & prefix & ".txt"
|
||||||
logErr_name = LogPath & "\" & "ErrorLog_" & System.DateTime.Now.ToString("yyyy_MM_dd") & ".txt"
|
logErr_name = LogPath & "\" & "ErrorLog_" & System.DateTime.Now.ToString("yyyy_MM_dd") & ".txt"
|
||||||
Dim anz As Integer = 1
|
Dim anz As Integer = 1
|
||||||
Do While File.Exists(logf_name)
|
Do While File.Exists(logf_name)
|
||||||
@ -116,12 +116,12 @@ Public Class clsLogger
|
|||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
LogEscalation_Error("Unexpected Error in AddError - Error: " & ex.Message)
|
LogEscalation_Error("Unexpected Error in AddError - Error: " & ex.Message)
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Shared Sub AddDetailLog(ByVal text As String)
|
Public Shared Sub AddDetailLog(ByVal text As String)
|
||||||
Try
|
Try
|
||||||
If clsSQLITE.konf_logerrorsonly = False Then
|
If LOG_ERRORS_ONLY = False Then
|
||||||
If log_string <> "" Then
|
If log_string <> "" Then
|
||||||
log_string &= vbNewLine
|
log_string &= vbNewLine
|
||||||
End If
|
End If
|
||||||
|
|||||||
@ -1,22 +1,25 @@
|
|||||||
Imports WINDREAMLib
|
Imports WINDREAMLib
|
||||||
Imports System.IO
|
Imports System.IO
|
||||||
|
Imports System.Text
|
||||||
|
Imports Newtonsoft.Json
|
||||||
|
|
||||||
Public Class clsProfil
|
Public Class clsProfil
|
||||||
|
|
||||||
#Region "***** Variablen *****"
|
#Region "***** Variablen *****"
|
||||||
Public Shared _Profilname, _profObjekttyp, _profwdSuche, _profDay, _profRunType As String
|
|
||||||
Public Shared _profGUID As Integer
|
|
||||||
Public Shared _proflastRun As Date
|
|
||||||
|
|
||||||
|
|
||||||
Private email As New clsEmail
|
|
||||||
|
|
||||||
|
|
||||||
Private Shared CriticalError As Boolean = False
|
Private Shared CriticalError As Boolean = False
|
||||||
|
|
||||||
Private Shared WD_aktivesDokument As WMObject
|
Private Shared WD_aktivesDokument As WMObject
|
||||||
#End Region
|
#End Region
|
||||||
Public Shared Function Init(guid As Integer)
|
Public Shared Function Init(guid As Integer)
|
||||||
Try
|
Try
|
||||||
|
|
||||||
clsLogger.AddDetailLog("Start Initialisierung Profil für GUID: " & guid.ToString)
|
clsLogger.AddDetailLog("Start Initialisierung Profil für GUID: " & guid.ToString)
|
||||||
Dim DT As DataTable = clsSQLITE.Return_Datatable("Select * from TBPROFIL where GUID = " & guid & " AND Running = 0")
|
Dim DT As DataTable = clsDatatabase.Return_Datatable("Select * from TBWMRH_PROFIL where GUID = " & guid)
|
||||||
If DT.Rows.Count > 0 Then
|
If DT.Rows.Count > 0 Then
|
||||||
For Each DR As DataRow In DT.Rows
|
For Each DR As DataRow In DT.Rows
|
||||||
_profGUID = guid
|
_profGUID = guid
|
||||||
@ -26,7 +29,7 @@ Public Class clsProfil
|
|||||||
If CBool(DR.Item("Aktiv")) = False Then
|
If CBool(DR.Item("Aktiv")) = False Then
|
||||||
clsLogger.Add("## Profil '" & _Profilname & "' ist inaktiv geschaltet", False)
|
clsLogger.Add("## Profil '" & _Profilname & "' ist inaktiv geschaltet", False)
|
||||||
clsLogger.Add("", False)
|
clsLogger.Add("", False)
|
||||||
Return 0
|
Return False
|
||||||
Else
|
Else
|
||||||
_profObjekttyp = CStr(DR.Item("Objekttyp"))
|
_profObjekttyp = CStr(DR.Item("Objekttyp"))
|
||||||
_profwdSuche = CStr(DR.Item("WindreamSuche"))
|
_profwdSuche = CStr(DR.Item("WindreamSuche"))
|
||||||
@ -39,9 +42,9 @@ Public Class clsProfil
|
|||||||
Next
|
Next
|
||||||
Else
|
Else
|
||||||
clsLogger.Add("Achtung - keine Profile für diesen Durchlaufthread verfügbar", False)
|
clsLogger.Add("Achtung - keine Profile für diesen Durchlaufthread verfügbar", False)
|
||||||
Return 1
|
Return False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
clsLogger.AddError(ex.Message, "Profil_Init")
|
clsLogger.AddError(ex.Message, "Profil_Init")
|
||||||
Return False
|
Return False
|
||||||
@ -51,216 +54,363 @@ Public Class clsProfil
|
|||||||
'Durchlauf des Profils wird aus dem Service gestartet wenn Init = True war
|
'Durchlauf des Profils wird aus dem Service gestartet wenn Init = True war
|
||||||
Public Shared Function Profil_Durchlauf()
|
Public Shared Function Profil_Durchlauf()
|
||||||
Dim _error As Boolean = False
|
Dim _error As Boolean = False
|
||||||
Try
|
'Try
|
||||||
Dim Run_Profile As Boolean = False
|
Dim Run_Profile As Boolean = False
|
||||||
'Soll die Verarbeitung heute durchgeführt werden??
|
'Soll die Verarbeitung heute durchgeführt werden??
|
||||||
Dim Dayofweek As Integer = My.Computer.Clock.LocalTime.DayOfWeek
|
Dim Dayofweek As Integer = My.Computer.Clock.LocalTime.DayOfWeek
|
||||||
If _profDay.Substring(Dayofweek - 1, 1) = 1 Then
|
If _profDay.Substring(Dayofweek - 1, 1) = 1 Then
|
||||||
'Verarbeitung soll heute durchgeführt werden
|
'Verarbeitung soll heute durchgeführt werden
|
||||||
clsLogger.AddDetailLog("Verarbeitung soll heute durchgeführt werden!")
|
clsLogger.AddDetailLog("Verarbeitung soll heute durchgeführt werden!")
|
||||||
clsLogger.AddDetailLog("_RunType: " & _profRunType)
|
clsLogger.AddDetailLog("_RunType: " & _profRunType)
|
||||||
Dim arr As String()
|
Dim arr As String()
|
||||||
arr = _profRunType.Split(";")
|
arr = _profRunType.Split(";")
|
||||||
clsLogger.AddDetailLog("arr(1): " & arr(1).ToString)
|
clsLogger.AddDetailLog("arr(1): " & arr(1).ToString)
|
||||||
Select Case arr(0)
|
Select Case arr(0)
|
||||||
Case "TIME"
|
Case "TIME"
|
||||||
Dim Time_last As DateTime = clsSQLITE.konf_LASTTICK.ToShortTimeString
|
' Dim intervall As Integer = clsSQLITE.konf_intervall / 60
|
||||||
' Dim intervall As Integer = clsSQLITE.konf_intervall / 60
|
clsLogger.AddDetailLog("Intervall: 1 Minute")
|
||||||
clsLogger.AddDetailLog("Intervall: 1 Minute")
|
Dim Time_next As DateTime = _proflastRun.AddMinutes(1)
|
||||||
Dim Time_next As DateTime = _proflastRun.AddMinutes(1)
|
Dim _RunTime As Date = CDate(arr(1))
|
||||||
Dim _RunTime As Date = CDate(arr(1))
|
clsLogger.AddDetailLog("ProfilTime: " & _RunTime)
|
||||||
clsLogger.AddDetailLog("ProfilTime: " & _RunTime)
|
clsLogger.AddDetailLog("_RunTime.ToShortTimeString: " & _RunTime.ToShortTimeString & " # " & "Now.ToShortTimeString: " & Now.ToShortTimeString)
|
||||||
clsLogger.AddDetailLog("_RunTime.ToShortTimeString: " & _RunTime.ToShortTimeString & " # " & "Now.ToShortTimeString: " & Now.ToShortTimeString)
|
If Time_next.ToString.StartsWith("11.11.1911") Then
|
||||||
If Time_next.ToString.StartsWith("11.11.1911") Then
|
clsLogger.AddDetailLog("Manueller Durchlauf des Profils - 11.11.1911")
|
||||||
clsLogger.AddDetailLog("Manueller Durchlauf des Profils - 11.11.1911")
|
Run_Profile = True
|
||||||
Run_Profile = True
|
|
||||||
Else
|
|
||||||
'Ist die Uhrzeit in der Range
|
|
||||||
If _RunTime.ToShortTimeString = Now.ToShortTimeString Then
|
|
||||||
Run_Profile = True
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
|
|
||||||
Case "INTV"
|
|
||||||
'Die Differenz berechnen
|
|
||||||
Dim DiffMin As Integer = DateDiff(DateInterval.Minute, _proflastRun, Date.Now)
|
|
||||||
Dim msg As String
|
|
||||||
msg = "Minutenangaben: " & vbNewLine
|
|
||||||
msg = msg & "DiffMin: " & DiffMin & vbNewLine
|
|
||||||
msg = msg & "Intervall: " & arr(1)
|
|
||||||
clsLogger.AddDetailLog(msg)
|
|
||||||
If DiffMin >= CInt(arr(1)) Then
|
|
||||||
'Den Durchlauf erlauben
|
|
||||||
Run_Profile = True
|
|
||||||
End If
|
|
||||||
Case Else
|
|
||||||
clsLogger.Add(">> _profRunType konnte nicht ausgewertet werden - " & arr(0), False)
|
|
||||||
End Select
|
|
||||||
If Run_Profile = True Then
|
|
||||||
clsLogger.Add(">> Start des Durchlaufes für Profil '" & _Profilname & "'", False)
|
|
||||||
'den Durchlaufszeitpunkt speichern
|
|
||||||
clsSQLITE.Execute_non_Query("Update TBPROFIL SET Running = 1 WHERE GUID = " & _profGUID)
|
|
||||||
clsLogger.AddDetailLog("Prüfen der windream-Suche.......")
|
|
||||||
If File.Exists(_profwdSuche) = False Then
|
|
||||||
clsLogger.Add("Die Windream-Suche '" & _profwdSuche & "' existiert nicht!", True, "clsProfil.Profil_Durchlauf")
|
|
||||||
'wenn die gesuchte File eine Suche ist: per MAil informierne und Indexierung abbrechen
|
|
||||||
If clsSQLITE.konf_EmailAktiv Then
|
|
||||||
clsEmail.Send_EMail("Fehler in windream-ResultHandler", "<br> >> Profilname: '" & _Profilname & "'<br> >> Die windream-Suche : " & _profwdSuche & " konnte nicht gefunden werden!" & _
|
|
||||||
"<br> >> Mögliche Fehlerursache: Das W-Laufwerk ist nicht verfügbar!")
|
|
||||||
End If
|
|
||||||
Return False
|
|
||||||
Else
|
Else
|
||||||
' windream-Suche für Profil starten
|
'Ist die Uhrzeit in der Range
|
||||||
clsLogger.AddDetailLog("GetSearchDocuments für Suche '" & _profwdSuche & "' starten: ")
|
If _RunTime.ToShortTimeString = Now.ToShortTimeString Then
|
||||||
Dim windreamSucheErgebnisse As WMObjects = clsWindream_allgemein.GetSearchDocuments(_profwdSuche)
|
Run_Profile = True
|
||||||
|
|
||||||
If windreamSucheErgebnisse.Count > 0 Then
|
|
||||||
clsLogger.Add("- Insgesamt sollen '" & windreamSucheErgebnisse.Count & "' Dateien bearbeitet werden", False)
|
|
||||||
clsLogger.AddDetailLog("SELECT * FROM TBPROFIL_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE")
|
|
||||||
Dim DT_PROFIL_JOB As DataTable = clsSQLITE.Return_Datatable("SELECT * FROM TBPROFIL_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE")
|
|
||||||
Dim DT_PROFIL_FILE_JOB As DataTable = clsSQLITE.Return_Datatable("SELECT * FROM TBPROFIL_FILE_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE")
|
|
||||||
clsLogger.AddDetailLog("DT_PROFIL_JOB und DT_PROFIL_FILE_JOB generiert ")
|
|
||||||
If DT_PROFIL_JOB.Rows.Count > 0 Then
|
|
||||||
clsLogger.AddDetailLog("DT_PROFIL_JOB.Rows.Count > 0")
|
|
||||||
If clsDateiverarbeitung.InitProfilData = True Then
|
|
||||||
clsLogger.AddDetailLog("clsDateiverarbeitung.InitProfilData = True")
|
|
||||||
For Each dok As WMObject In windreamSucheErgebnisse
|
|
||||||
For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
|
|
||||||
Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
|
|
||||||
Case "Create Mail Attachment".ToUpper
|
|
||||||
Case "Export HDD".ToUpper
|
|
||||||
clsLogger.AddDetailLog("Case Export HDD")
|
|
||||||
'Für jedes Dokument in der Windream-Ergebnisliste
|
|
||||||
'For Each dok As WMObject In windreamSucheErgebnisse
|
|
||||||
' aktuelles Dokument zum Export bereitstellen
|
|
||||||
EXPORTED_FILENAME = ""
|
|
||||||
If clsDateiverarbeitung.Export_File(dok, DR_PR_JB.Item("STRING1")) = True Then
|
|
||||||
If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then
|
|
||||||
clsLogger.AddDetailLog("Anzahl ")
|
|
||||||
'Für jeden File-Job
|
|
||||||
Dim errorFileJob As Boolean = False
|
|
||||||
For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows
|
|
||||||
If errorFileJob = True Then Exit For
|
|
||||||
Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower
|
|
||||||
Case "Set Index".ToLower
|
|
||||||
Try
|
|
||||||
'Überprüfen ob Value bereits gesetzt wurde?
|
|
||||||
Dim idxName As String = DR_PR_FILE_JOB.Item("STRING1").ToString
|
|
||||||
Dim idxvalue As String = DR_PR_FILE_JOB.Item("STRING2").ToString
|
|
||||||
If idxvalue.Contains("[%DATETIME]") Then
|
|
||||||
idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString)
|
|
||||||
End If
|
|
||||||
clsLogger.AddDetailLog("Datei soll mit Index '" & idxName & "'indexiert werden...")
|
|
||||||
Dim arrIndex() As String
|
|
||||||
ReDim Preserve arrIndex(0)
|
|
||||||
arrIndex(0) = idxName
|
|
||||||
clsLogger.AddDetailLog("...nach arrIndex")
|
|
||||||
|
|
||||||
Dim arrValue() As String
|
|
||||||
|
|
||||||
Dim aktvalue As Object
|
|
||||||
aktvalue = dok.GetVariableValue(idxName)
|
|
||||||
clsLogger.AddDetailLog("...nach aktValue zuweisen..")
|
|
||||||
|
|
||||||
If aktvalue Is Nothing Then
|
|
||||||
clsLogger.AddDetailLog("Index '" & idxName & "' ist noch leer.")
|
|
||||||
ReDim Preserve arrValue(0)
|
|
||||||
arrValue(0) = idxvalue
|
|
||||||
Else
|
|
||||||
clsLogger.AddDetailLog("Index '" & idxName & "' ist bereits gefüllt.")
|
|
||||||
Dim myArray()
|
|
||||||
ReDim myArray(0)
|
|
||||||
myArray(0) = idxvalue
|
|
||||||
|
|
||||||
Dim VektorArray()
|
|
||||||
VektorArray = Return_VektorArray(dok, idxName, myArray, True)
|
|
||||||
|
|
||||||
If VektorArray Is Nothing = False Then
|
|
||||||
ReDim arrValue(VektorArray.Length - 1)
|
|
||||||
Array.Copy(VektorArray, arrValue, VektorArray.Length)
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
If arrValue Is Nothing = False Then
|
|
||||||
clsWindream_Index.RunIndexing(dok, arrIndex, arrValue, _profObjekttyp)
|
|
||||||
Else
|
|
||||||
clsLogger.Add(">> arrValue is nothing - keine Indexierung", False, "clsProfil.Profil_Durchlauf")
|
|
||||||
End If
|
|
||||||
|
|
||||||
Catch ex As Exception
|
|
||||||
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)")
|
|
||||||
End Try
|
|
||||||
Case "Rename File with windream Index".ToLower
|
|
||||||
clsLogger.AddDetailLog("Exportierte Datei soll nach Indexvorgaben umbenannt werden...")
|
|
||||||
clsDateiverarbeitung.Rename_File(dok, DR_PR_FILE_JOB.Item("STRING1").ToString)
|
|
||||||
Case "Execute Oracle Command"
|
|
||||||
Try
|
|
||||||
Dim oracleconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
|
|
||||||
Dim oracleCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
|
|
||||||
errorFileJob = clsDateiverarbeitung.RUN_ORACLE_COMMAND(dok, oracleconnectionstring, oracleCommandRAW)
|
|
||||||
Catch ex As Exception
|
|
||||||
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteOracleCommand)")
|
|
||||||
End Try
|
|
||||||
Case "Execute MSSQL Command"
|
|
||||||
Try
|
|
||||||
errorFileJob = clsDateiverarbeitung.RUN_MSSQL_COMMAND(dok, DR_PR_FILE_JOB.Item("STRING1").ToString, DR_PR_FILE_JOB.Item("STRING2").ToString)
|
|
||||||
Catch ex As Exception
|
|
||||||
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteMSSQLCommand)")
|
|
||||||
End Try
|
|
||||||
End Select
|
|
||||||
'Abschluss Bearbeitung File Job
|
|
||||||
clsLogger.WriteLog()
|
|
||||||
Next
|
|
||||||
Else
|
|
||||||
clsLogger.Add(">> KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf")
|
|
||||||
clsLogger.WriteLog()
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
clsSQLITE.Execute_non_Query("UPDATE TBPROFIL SET Running = 0, LETZTER_DURCHLAUF = DATETIME ('now' , 'localtime') WHERE GUID = " & _profGUID)
|
|
||||||
End If
|
|
||||||
'Next
|
|
||||||
|
|
||||||
End Select
|
|
||||||
'Abschluss Bearbeitung Job
|
|
||||||
clsLogger.WriteLog()
|
|
||||||
Next
|
|
||||||
|
|
||||||
Next
|
|
||||||
|
|
||||||
Else
|
|
||||||
clsLogger.Add(">> Initialisierung Profil nicht erfolgreich", True)
|
|
||||||
clsLogger.WriteLog()
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
clsLogger.Add(">> KEINE JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf")
|
|
||||||
clsLogger.WriteLog()
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
' keine Dateien zum Importieren
|
|
||||||
clsLogger.Add(">> Keine windream-Dokumente für Profil '" & _Profilname & "' vorhanden/gefunden.", False)
|
|
||||||
clsLogger.Add("", False)
|
|
||||||
clsLogger.WriteLog()
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
Case "INTV"
|
||||||
|
'Die Differenz berechnen
|
||||||
|
Dim DiffMin As Integer = DateDiff(DateInterval.Minute, _proflastRun, Date.Now)
|
||||||
|
Dim msg As String
|
||||||
|
msg = "Minutenangaben: " & vbNewLine
|
||||||
|
msg = msg & "DiffMin: " & DiffMin & vbNewLine
|
||||||
|
msg = msg & "Intervall: " & arr(1)
|
||||||
|
clsLogger.AddDetailLog(msg)
|
||||||
|
If DiffMin >= CInt(arr(1)) Then
|
||||||
|
'Den Durchlauf erlauben
|
||||||
|
Run_Profile = True
|
||||||
|
End If
|
||||||
|
Case Else
|
||||||
|
clsLogger.Add(">> _profRunType konnte nicht ausgewertet werden - " & arr(0), False)
|
||||||
|
End Select
|
||||||
|
If Run_Profile = True Then
|
||||||
|
clsLogger.Add(">> Start des Durchlaufes für Profil '" & _Profilname & "'", False)
|
||||||
|
'den Durchlaufszeitpunkt speichern
|
||||||
|
clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 1 WHERE GUID = " & _profGUID)
|
||||||
|
clsLogger.AddDetailLog("Prüfen der windream-Suche.......")
|
||||||
|
If File.Exists(_profwdSuche) = False Then
|
||||||
|
clsLogger.Add("Die Windream-Suche '" & _profwdSuche & "' existiert nicht!", True, "clsProfil.Profil_Durchlauf")
|
||||||
|
'wenn die gesuchte File eine Suche ist: per MAil informierne und Indexierung abbrechen
|
||||||
|
clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 0 WHERE GUID = " & _profGUID)
|
||||||
|
clsLogger.WriteLog()
|
||||||
|
Return False
|
||||||
|
Else
|
||||||
|
' windream-Suche für Profil starten
|
||||||
|
clsLogger.AddDetailLog("GetSearchDocuments für Suche '" & _profwdSuche & "' starten: ")
|
||||||
|
Dim windreamSucheErgebnisse As WMObjects = clsWindream_allgemein.GetSearchDocuments(_profwdSuche)
|
||||||
|
If windreamSucheErgebnisse Is Nothing Then
|
||||||
|
clsLogger.Add("windreamSucheErgebnisse is nothing!", True, "clsProfil.Profil_Durchlauf")
|
||||||
|
clsLogger.WriteLog()
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
If windreamSucheErgebnisse.Count > 0 Then
|
||||||
|
clsLogger.Add("- Insgesamt sollen '" & windreamSucheErgebnisse.Count & "' Dateien bearbeitet werden", False)
|
||||||
|
clsLogger.AddDetailLog("SELECT * FROM TBWMRH_PROFIL_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE")
|
||||||
|
Dim DT_PROFIL_JOB As DataTable = clsDatatabase.Return_Datatable("SELECT * FROM TBWMRH_PROFIL_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE")
|
||||||
|
Dim DT_PROFIL_FILE_JOB As DataTable = clsDatatabase.Return_Datatable("SELECT * FROM TBWMRH_PROFIL_FILE_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE")
|
||||||
|
clsLogger.AddDetailLog("DT_PROFIL_JOB und DT_PROFIL_FILE_JOB generiert ")
|
||||||
|
clsLogger.AddDetailLog("DT_PROFIL_JOB.Rows.Count = " & DT_PROFIL_JOB.Rows.Count)
|
||||||
|
clsLogger.AddDetailLog("DT_PROFIL_FILE_JOB.Rows.Count = " & DT_PROFIL_FILE_JOB.Rows.Count)
|
||||||
|
If DT_PROFIL_JOB.Rows.Count > 0 Then
|
||||||
|
|
||||||
|
If clsDateiverarbeitung.InitProfilData = True Then
|
||||||
|
clsLogger.AddDetailLog("clsDateiverarbeitung.InitProfilData = True")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
'For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
|
||||||
|
' Dim result = DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
|
||||||
|
' Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
|
||||||
|
' Case "BNS json Download".ToUpper
|
||||||
|
' 'ARRAY oder Äqivalent bilden
|
||||||
|
' Dim sb As New StringBuilder()
|
||||||
|
' Dim sw As New StringWriter(sb)
|
||||||
|
' Using writer As JsonWriter = New JsonTextWriter(sw)
|
||||||
|
' writer.Formatting = Formatting.Indented
|
||||||
|
|
||||||
|
' writer.WriteStartObject()
|
||||||
|
' writer.WritePropertyName("CPU")
|
||||||
|
' writer.WriteValue("Intel")
|
||||||
|
' writer.WritePropertyName("PSU")
|
||||||
|
' writer.WriteValue("500W")
|
||||||
|
' writer.WritePropertyName("Drives")
|
||||||
|
' writer.WriteStartArray()
|
||||||
|
' writer.WriteValue("DVD read/writer")
|
||||||
|
' writer.WriteComment("(broken)")
|
||||||
|
' writer.WriteValue("500 gigabyte hard drive")
|
||||||
|
' writer.WriteValue("200 gigabype hard drive")
|
||||||
|
' writer.WriteEnd()
|
||||||
|
' writer.WriteEndObject()
|
||||||
|
' End Using
|
||||||
|
' Console.WriteLine(sb.ToString())
|
||||||
|
' End Select
|
||||||
|
'Next
|
||||||
|
Dim FileJobSuccessful As Boolean = False
|
||||||
|
For Each WMdok As WMObject In windreamSucheErgebnisse
|
||||||
|
For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
|
||||||
|
Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
|
||||||
|
Case "Create Mail Attachment".ToUpper
|
||||||
|
Case "Export HDD".ToUpper
|
||||||
|
clsLogger.AddDetailLog("Case Export HDD")
|
||||||
|
'Für jedes Dokument in der Windream-Ergebnisliste
|
||||||
|
'For Each dok As WMObject In windreamSucheErgebnisse
|
||||||
|
' aktuelles Dokument zum Export bereitstellen
|
||||||
|
EXPORTED_FILENAME = ""
|
||||||
|
If clsDateiverarbeitung.Export_File(WMdok, DR_PR_JB.Item("STRING1")) = True Then
|
||||||
|
FileJobSuccessful = True
|
||||||
|
'If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then
|
||||||
|
' clsLogger.AddDetailLog("Anzahl DT_PROFIL_FILE_JOB.Rows.Count:" & DT_PROFIL_FILE_JOB.Rows.Count)
|
||||||
|
' 'Für jeden File-Job
|
||||||
|
|
||||||
|
' For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows
|
||||||
|
' If FileJobSuccessful = False Then
|
||||||
|
' clsLogger.Add("AUSSTIEG FOR SCHLEIFE...", True)
|
||||||
|
' clsLogger.WriteLog()
|
||||||
|
' Exit For
|
||||||
|
' End If
|
||||||
|
' Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower
|
||||||
|
' Case "Set Index".ToLower
|
||||||
|
' Try
|
||||||
|
' 'Überprüfen ob Value bereits gesetzt wurde?
|
||||||
|
' Dim idxName As String = DR_PR_FILE_JOB.Item("STRING1").ToString
|
||||||
|
' Dim idxvalue As String = DR_PR_FILE_JOB.Item("STRING2").ToString
|
||||||
|
' If idxvalue.Contains("[%DATETIME]") Then
|
||||||
|
' idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString)
|
||||||
|
' End If
|
||||||
|
' clsLogger.AddDetailLog("Datei soll mit Index '" & idxName & "'indexiert werden...")
|
||||||
|
' Dim arrIndex() As String
|
||||||
|
' ReDim Preserve arrIndex(0)
|
||||||
|
' arrIndex(0) = idxName
|
||||||
|
' clsLogger.AddDetailLog("...nach arrIndex")
|
||||||
|
|
||||||
|
' Dim arrValue() As String
|
||||||
|
|
||||||
|
' Dim aktvalue As Object
|
||||||
|
' aktvalue = WMdok.GetVariableValue(idxName)
|
||||||
|
' clsLogger.AddDetailLog("...nach aktValue zuweisen..")
|
||||||
|
|
||||||
|
' If aktvalue Is Nothing Then
|
||||||
|
' clsLogger.AddDetailLog("Index '" & idxName & "' ist noch leer.")
|
||||||
|
' ReDim Preserve arrValue(0)
|
||||||
|
' arrValue(0) = idxvalue
|
||||||
|
' Else
|
||||||
|
' clsLogger.AddDetailLog("Index '" & idxName & "' ist bereits gefüllt.")
|
||||||
|
' Dim myArray()
|
||||||
|
' ReDim myArray(0)
|
||||||
|
' myArray(0) = idxvalue
|
||||||
|
|
||||||
|
' Dim VektorArray()
|
||||||
|
' VektorArray = Return_VektorArray(WMdok, idxName, myArray, True)
|
||||||
|
|
||||||
|
' If VektorArray Is Nothing = False Then
|
||||||
|
' ReDim arrValue(VektorArray.Length - 1)
|
||||||
|
' Array.Copy(VektorArray, arrValue, VektorArray.Length)
|
||||||
|
' End If
|
||||||
|
|
||||||
|
' End If
|
||||||
|
|
||||||
|
' If arrValue Is Nothing = False Then
|
||||||
|
' clsWindream_Index.RunIndexing(WMdok, arrIndex, arrValue, _profObjekttyp)
|
||||||
|
' Else
|
||||||
|
' clsLogger.Add(">> arrValue is nothing - keine Indexierung", False, "clsProfil.Profil_Durchlauf")
|
||||||
|
' End If
|
||||||
|
|
||||||
|
' Catch ex As Exception
|
||||||
|
' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)")
|
||||||
|
' End Try
|
||||||
|
' Case "Rename File with windream Index".ToLower
|
||||||
|
' clsLogger.AddDetailLog("Exportierte Datei soll nach Indexvorgaben umbenannt werden...")
|
||||||
|
' clsDateiverarbeitung.Rename_File(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
|
||||||
|
' Case "Rename File with WMVector (only one)".ToLower
|
||||||
|
' clsLogger.AddDetailLog("Exportierte Datei soll nach VektorIndexvorgaben umbenannt werden...")
|
||||||
|
' clsDateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
|
||||||
|
' Case "Execute Oracle Command".ToLower
|
||||||
|
' Try
|
||||||
|
' clsLogger.AddDetailLog("Execute Oracle Comman.......")
|
||||||
|
' Dim oracleconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
|
||||||
|
' Dim oracleCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
|
||||||
|
' FileJobSuccessful = clsDateiverarbeitung.RUN_ORACLE_COMMAND(WMdok, oracleconnectionstring, oracleCommandRAW)
|
||||||
|
' Catch ex As Exception
|
||||||
|
' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteOracleCommand)")
|
||||||
|
' End Try
|
||||||
|
' Case "Execute MSSQL Command".ToLower
|
||||||
|
' Try
|
||||||
|
' Dim MSSQLconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
|
||||||
|
' Dim MSSQLCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
|
||||||
|
' clsLogger.AddDetailLog("Execute MSSQL Command.......")
|
||||||
|
' FileJobSuccessful = clsDateiverarbeitung.RUN_MSSQL_COMMAND(WMdok, MSSQLconnectionstring, MSSQLCommandRAW)
|
||||||
|
' Catch ex As Exception
|
||||||
|
' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteMSSQLCommand)")
|
||||||
|
' End Try
|
||||||
|
' End Select
|
||||||
|
' 'Abschluss Bearbeitung File Job
|
||||||
|
' clsLogger.WriteLog()
|
||||||
|
' Next
|
||||||
|
'Else
|
||||||
|
' clsLogger.Add(">> KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf")
|
||||||
|
' clsLogger.WriteLog()
|
||||||
|
'End If
|
||||||
|
Else
|
||||||
|
clsDatatabase.Execute_non_Query("UPDATE TBWMRH_PROFIL SET Running = 0, LETZTER_DURCHLAUF = Getdate() WHERE GUID = " & _profGUID)
|
||||||
|
End If
|
||||||
|
'Next
|
||||||
|
Case "BNS json Download".ToUpper
|
||||||
|
FileJobSuccessful = clsDateiverarbeitung.BNSjsonDownload(WMdok, DR_PR_JB.Item("STRING1"), DR_PR_JB.Item("STRING2"))
|
||||||
|
|
||||||
|
|
||||||
|
End Select
|
||||||
|
'Abschluss Bearbeitung Job
|
||||||
|
clsLogger.WriteLog()
|
||||||
|
Next
|
||||||
|
'##################################
|
||||||
|
'JETZT DER DURCHLAUF DER DATEI-JOBS
|
||||||
|
'##################################
|
||||||
|
If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then
|
||||||
|
Dim filecount As Integer = 0
|
||||||
|
'Für jeden File-Job
|
||||||
|
For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows
|
||||||
|
If FileJobSuccessful = False Then
|
||||||
|
clsLogger.Add("AUSSTIEG FOR SCHLEIFE...", True)
|
||||||
|
clsLogger.WriteLog()
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower
|
||||||
|
Case "Set Index".ToLower
|
||||||
|
Try
|
||||||
|
'Überprüfen ob Value bereits gesetzt wurde?
|
||||||
|
Dim idxName As String = DR_PR_FILE_JOB.Item("STRING1").ToString
|
||||||
|
Dim idxvalue As String = DR_PR_FILE_JOB.Item("STRING2").ToString
|
||||||
|
If idxvalue.Contains("[%DATETIME]") Then
|
||||||
|
idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString)
|
||||||
|
End If
|
||||||
|
clsLogger.AddDetailLog("Datei soll mit Index '" & idxName & "'indexiert werden...")
|
||||||
|
Dim arrIndex() As String
|
||||||
|
ReDim Preserve arrIndex(0)
|
||||||
|
arrIndex(0) = idxName
|
||||||
|
clsLogger.AddDetailLog("...nach arrIndex")
|
||||||
|
|
||||||
|
Dim arrValue() As String
|
||||||
|
|
||||||
|
Dim aktvalue As Object
|
||||||
|
aktvalue = WMdok.GetVariableValue(idxName)
|
||||||
|
clsLogger.AddDetailLog("...nach aktValue zuweisen..")
|
||||||
|
|
||||||
|
If aktvalue Is Nothing Then
|
||||||
|
clsLogger.AddDetailLog("Index '" & idxName & "' ist noch leer.")
|
||||||
|
ReDim Preserve arrValue(0)
|
||||||
|
arrValue(0) = idxvalue
|
||||||
|
Else
|
||||||
|
clsLogger.AddDetailLog("Index '" & idxName & "' ist bereits gefüllt.")
|
||||||
|
Dim myArray()
|
||||||
|
ReDim myArray(0)
|
||||||
|
myArray(0) = idxvalue
|
||||||
|
|
||||||
|
Dim VektorArray()
|
||||||
|
VektorArray = Return_VektorArray(WMdok, idxName, myArray, True)
|
||||||
|
|
||||||
|
If VektorArray Is Nothing = False Then
|
||||||
|
ReDim arrValue(VektorArray.Length - 1)
|
||||||
|
Array.Copy(VektorArray, arrValue, VektorArray.Length)
|
||||||
|
End If
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
If arrValue Is Nothing = False Then
|
||||||
|
clsWindream_Index.RunIndexing(WMdok, arrIndex, arrValue, _profObjekttyp)
|
||||||
|
Else
|
||||||
|
clsLogger.Add(">> arrValue is nothing - keine Indexierung", False, "clsProfil.Profil_Durchlauf")
|
||||||
|
End If
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)")
|
||||||
|
End Try
|
||||||
|
Case "Rename File with windream Index".ToLower
|
||||||
|
clsLogger.AddDetailLog("Exportierte Datei soll nach Indexvorgaben umbenannt werden...")
|
||||||
|
clsDateiverarbeitung.Rename_File(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
|
||||||
|
Case "Rename File with WMVector (only one)".ToLower
|
||||||
|
clsLogger.AddDetailLog("Exportierte Datei soll nach VektorIndexvorgaben umbenannt werden...")
|
||||||
|
clsDateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
|
||||||
|
Case "Execute Oracle Command".ToLower
|
||||||
|
Try
|
||||||
|
clsLogger.AddDetailLog("Execute Oracle Comman.......")
|
||||||
|
Dim oracleconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
|
||||||
|
Dim oracleCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
|
||||||
|
FileJobSuccessful = clsDateiverarbeitung.RUN_ORACLE_COMMAND(WMdok, oracleconnectionstring, oracleCommandRAW)
|
||||||
|
Catch ex As Exception
|
||||||
|
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteOracleCommand)")
|
||||||
|
End Try
|
||||||
|
Case "Execute MSSQL Command".ToLower
|
||||||
|
Try
|
||||||
|
Dim MSSQLconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
|
||||||
|
Dim MSSQLCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
|
||||||
|
clsLogger.AddDetailLog("Execute MSSQL Command.......")
|
||||||
|
FileJobSuccessful = clsDateiverarbeitung.RUN_MSSQL_COMMAND(WMdok, MSSQLconnectionstring, MSSQLCommandRAW)
|
||||||
|
Catch ex As Exception
|
||||||
|
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(ExecuteMSSQLCommand)")
|
||||||
|
End Try
|
||||||
|
End Select
|
||||||
|
If filecount >= 20 Then
|
||||||
|
clsLogger.WriteLog()
|
||||||
|
filecount = 0
|
||||||
|
End If
|
||||||
|
'Abschluss Bearbeitung File Job
|
||||||
|
|
||||||
|
Next
|
||||||
|
Else
|
||||||
|
clsLogger.Add(">> KEINE File-JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf")
|
||||||
|
clsLogger.WriteLog()
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
clsLogger.WriteLog()
|
||||||
|
Else
|
||||||
|
clsLogger.Add(">> Initialisierung Profil nicht erfolgreich", True)
|
||||||
|
clsLogger.WriteLog()
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
clsLogger.Add(">> KEINE JOBS für Profil '" & _Profilname & "' angelegt!", False, "clsProfil.Profil_Durchlauf")
|
||||||
|
clsLogger.WriteLog()
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
' keine Dateien zum Importieren
|
||||||
|
clsLogger.Add(">> Keine windream-Dokumente für Profil '" & _Profilname & "' vorhanden/gefunden.", False)
|
||||||
|
clsLogger.Add("", False)
|
||||||
|
clsLogger.WriteLog()
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
Else
|
|
||||||
clsLogger.AddDetailLog("Verarbeitung für heute NICHT konfiguriert")
|
|
||||||
clsLogger.WriteLog()
|
|
||||||
End If
|
End If
|
||||||
'Abschluss des Profiles
|
Else
|
||||||
clsSQLITE.Execute_non_Query("UPDATE TBPROFIL SET Running = 0, LETZTER_DURCHLAUF = DATETIME ('now' , 'localtime') WHERE GUID = " & _profGUID)
|
clsLogger.AddDetailLog("Verarbeitung für heute NICHT konfiguriert")
|
||||||
clsLogger.AddDetailLog("'UPDATE TBPROFIL SET Running = 0' ausgeführt")
|
|
||||||
clsLogger.WriteLog()
|
clsLogger.WriteLog()
|
||||||
Return True
|
End If
|
||||||
Catch ex As Exception
|
'Abschluss des Profiles
|
||||||
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf")
|
clsDatatabase.Execute_non_Query("UPDATE TBWMRH_PROFIL SET Running = 0, LETZTER_DURCHLAUF = GETDATE() WHERE GUID = " & _profGUID)
|
||||||
clsSQLITE.Execute_non_Query("Update TBPROFIL SET Running = 0 WHERE GUID = " & _profGUID)
|
clsLogger.AddDetailLog("'UPDATE TBWMRH_PROFIL SET Running = 0' ausgeführt")
|
||||||
CriticalError = False
|
clsLogger.WriteLog()
|
||||||
DDWDResultHandler.threadRunner.CancelAsync()
|
Return True
|
||||||
Return False
|
'Catch ex As Exception
|
||||||
End Try
|
' clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf")
|
||||||
|
' clsDatatabase.Execute_non_Query("Update TBWMRH_PROFIL SET Running = 0 WHERE GUID = " & _profGUID)
|
||||||
|
' CriticalError = False
|
||||||
|
|
||||||
|
' Return False
|
||||||
|
'End Try
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
Private Shared Function Return_VektorArray(ByVal oDocument As WMObject, vktIndexName As String, NIIndexe As Object, CheckDuplikat As Boolean)
|
Private Shared Function Return_VektorArray(ByVal oDocument As WMObject, vktIndexName As String, NIIndexe As Object, CheckDuplikat As Boolean)
|
||||||
Try
|
Try
|
||||||
@ -366,5 +516,8 @@ Public Class clsProfil
|
|||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
Imports WMOSRCHLib
|
Imports WMOSRCHLib
|
||||||
Public Class clsWindream_Index
|
Public Class clsWindream_Index
|
||||||
Inherits clsWindream_allgemein
|
Inherits clsWindream_allgemein
|
||||||
|
|
||||||
#Region "+++++ Konstanten +++++"
|
#Region "+++++ Konstanten +++++"
|
||||||
Protected Const WMObjectEditModeObject = &H1F
|
Protected Const WMObjectEditModeObject = &H1F
|
||||||
Protected Const WMObjectStreamOpenModeReadWrite = 2
|
Protected Const WMObjectStreamOpenModeReadWrite = 2
|
||||||
@ -280,16 +280,14 @@ Public Class clsWindream_Index
|
|||||||
Dim _date As Boolean = False
|
Dim _date As Boolean = False
|
||||||
Dim _dbl As Boolean = False
|
Dim _dbl As Boolean = False
|
||||||
Dim _bool As Boolean = False
|
Dim _bool As Boolean = False
|
||||||
'If indexname = "Tournr" Then
|
|
||||||
' MsgBox("Index: " & indexname & vbNewLine & "wert: " & aValues(i), MsgBoxStyle.Information, "Index: " & aName.ToString)
|
|
||||||
'End If
|
|
||||||
clsLogger.AddDetailLog("Indexierung von Index '" & indexname & "'")
|
clsLogger.AddDetailLog("Indexierung von Index '" & indexname & "'")
|
||||||
'MsgBox(oDocument.aName & vbNewLine & aValues(i) & vbNewLine & vType, MsgBoxStyle.Exclamation, "Zeile 87")
|
|
||||||
Dim value = aValues(i)
|
Dim value = aValues(i)
|
||||||
Dim convertValue
|
Dim convertValue
|
||||||
Dim vektor As Boolean = False
|
Dim vektor As Boolean = False
|
||||||
'Den Typ des Index-Feldes auslesen
|
'Den Typ des Index-Feldes auslesen
|
||||||
'MsgBox(value.GetType.ToString)
|
|
||||||
Select Case (vType)
|
Select Case (vType)
|
||||||
'Case WMObjectVariableValueTypeUndefined
|
'Case WMObjectVariableValueTypeUndefined
|
||||||
Case WMObjectVariableValueTypeString
|
Case WMObjectVariableValueTypeString
|
||||||
@ -379,7 +377,7 @@ Public Class clsWindream_Index
|
|||||||
Case Else
|
Case Else
|
||||||
clsLogger.AddDetailLog("Typ des windream-Indexes konnte nicht bestimmt werden!")
|
clsLogger.AddDetailLog("Typ des windream-Indexes konnte nicht bestimmt werden!")
|
||||||
clsLogger.AddDetailLog("Versuch des Auslesens (vType): " & vType)
|
clsLogger.AddDetailLog("Versuch des Auslesens (vType): " & vType)
|
||||||
'MsgBox(vType & vbNewLine & CStr(value), MsgBoxStyle.Exclamation, "Marlon-Case Else")
|
|
||||||
convertValue = ""
|
convertValue = ""
|
||||||
End Select
|
End Select
|
||||||
If vektor = False Then
|
If vektor = False Then
|
||||||
@ -599,79 +597,7 @@ Public Class clsWindream_Index
|
|||||||
|
|
||||||
|
|
||||||
#Region "+++++ Allgemeine Funktionen die Informationen zurückliefern +++++"
|
#Region "+++++ Allgemeine Funktionen die Informationen zurückliefern +++++"
|
||||||
Public Function GetSearchDocuments(ByVal wdfLocation As String)
|
|
||||||
|
|
||||||
If System.IO.File.Exists(wdfLocation) Then
|
|
||||||
|
|
||||||
Try
|
|
||||||
Dim ProfileName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
|
|
||||||
Dim ProfilePath = wdfLocation.Substring(0, wdfLocation.Length - ProfileName.Length)
|
|
||||||
|
|
||||||
oController.CheckSearchProfile(wdfLocation.ToLower)
|
|
||||||
Dim suchTyp = oController.SearchProfileTargetProgID
|
|
||||||
Dim ExSettings As Object
|
|
||||||
Dim oSearch As Object
|
|
||||||
ExSettings = oController.SearchProfileExSettings
|
|
||||||
If ExSettings = 0 Then ExSettings = 7
|
|
||||||
|
|
||||||
Dim srchQuick As WMOSRCHLib.WMQuickSearch = CreateObject("WMOSrch.WMQuickSearch")
|
|
||||||
Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch")
|
|
||||||
Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch")
|
|
||||||
|
|
||||||
'' 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", GetCurrentServer)
|
|
||||||
|
|
||||||
oConnect.LoginSession(srchQuick.WMSession)
|
|
||||||
|
|
||||||
srchQuick.ClearSearch()
|
|
||||||
srchQuick.SearchProfilePath = ProfilePath
|
|
||||||
srchQuick.LoadSearchProfile(ProfileName)
|
|
||||||
|
|
||||||
oSearch = srchQuick.GetSearch()
|
|
||||||
|
|
||||||
Case "WMOSRCH.WMINDEXSEARCH"
|
|
||||||
srchIndex.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
|
||||||
|
|
||||||
oConnect.LoginSession(srchIndex.WMSession)
|
|
||||||
|
|
||||||
srchIndex.ClearSearch()
|
|
||||||
srchIndex.SearchProfilePath = ProfilePath
|
|
||||||
srchIndex.LoadSearchProfile(ProfileName)
|
|
||||||
|
|
||||||
oSearch = srchIndex.GetSearch()
|
|
||||||
|
|
||||||
Case "WMOSRCH.WMOBJECTTYPESEARCH"
|
|
||||||
srchObjectType.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
|
||||||
|
|
||||||
oConnect.LoginSession(srchObjectType.WMSession)
|
|
||||||
|
|
||||||
srchObjectType.ClearSearch()
|
|
||||||
srchObjectType.SearchProfilePath = ProfilePath
|
|
||||||
srchObjectType.LoadSearchProfile(ProfileName)
|
|
||||||
|
|
||||||
oSearch = srchObjectType.GetSearch()
|
|
||||||
|
|
||||||
Case Else
|
|
||||||
clsLogger.Add("KEIN GÜLTIGER WINDREAM-SUCHTYP", True, "GetSearchDocuments")
|
|
||||||
Return Nothing
|
|
||||||
End Select
|
|
||||||
Dim WMObjects As Object
|
|
||||||
WMObjects = oSearch.Execute
|
|
||||||
Return oSearch.execute
|
|
||||||
|
|
||||||
Catch ex As Exception
|
|
||||||
' bei einem Fehler einen Eintrag in der Logdatei machen
|
|
||||||
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "GetSearchDocuments")
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
Return Nothing
|
|
||||||
|
|
||||||
End Function
|
|
||||||
''' Liefert den Wert eines Indexes als String
|
''' Liefert den Wert eines Indexes als String
|
||||||
''' _indexname = Name des zu überprüfenden Indexfeldes
|
''' _indexname = Name des zu überprüfenden Indexfeldes
|
||||||
Public Function GetValueforIndex(ByVal _fullfilepath As String, _indexname As String)
|
Public Function GetValueforIndex(ByVal _fullfilepath As String, _indexname As String)
|
||||||
@ -684,7 +610,7 @@ Public Class clsWindream_Index
|
|||||||
IndexwertAusWindream = _dok.GetVariableValue(_indexname)
|
IndexwertAusWindream = _dok.GetVariableValue(_indexname)
|
||||||
Return IndexwertAusWindream.ToString
|
Return IndexwertAusWindream.ToString
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
'MsgBox(ex.Message)
|
|
||||||
Return Nothing
|
Return Nothing
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
|||||||
@ -295,6 +295,7 @@ Public Class clsWindream_allgemein
|
|||||||
''' <remarks></remarks>
|
''' <remarks></remarks>
|
||||||
Public Shared Function GetCurrentServer() As String
|
Public Shared Function GetCurrentServer() As String
|
||||||
Try
|
Try
|
||||||
|
clsLogger.AddDetailLog(oBrowser.GetCurrentServer.ToString)
|
||||||
Return oBrowser.GetCurrentServer 'ClassWindream.oBrowser.GetCurrentServer
|
Return oBrowser.GetCurrentServer 'ClassWindream.oBrowser.GetCurrentServer
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
clsLogger.AddError("Der aktuell gewählte windream-Server konnte nicht ausgelesen werden. Fehler: " & ex.Message, "clswindream.GetCurrentServer")
|
clsLogger.AddError("Der aktuell gewählte windream-Server konnte nicht ausgelesen werden. Fehler: " & ex.Message, "clswindream.GetCurrentServer")
|
||||||
@ -404,18 +405,14 @@ Public Class clsWindream_allgemein
|
|||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
Public Shared Function GetSearchDocuments(ByVal wdfLocation As String)
|
Public Shared Function GetSearchDocuments(ByVal wdfLocation As String)
|
||||||
'wdfLocation = 'W:\System\Suchen\WDRH\TestPDF.wdf'
|
|
||||||
Try
|
Try
|
||||||
Dim SearchName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
|
Dim SearchName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
|
||||||
Dim SearchPath = wdfLocation.Substring(0, wdfLocation.Length - SearchName.Length)
|
Dim SearchPath = wdfLocation.Substring(0, wdfLocation.Length - SearchName.Length)
|
||||||
|
clsLogger.Add("WMSearch: " & wdfLocation.ToLower, False)
|
||||||
If System.IO.File.Exists(wdfLocation.ToLower) Then
|
If System.IO.File.Exists(wdfLocation.ToLower) Then
|
||||||
clsLogger.AddDetailLog("Search exists")
|
clsLogger.AddDetailLog("Search exists")
|
||||||
Else
|
|
||||||
clsLogger.AddError("windream-search not existing: " & wdfLocation)
|
|
||||||
Return Nothing
|
|
||||||
End If
|
End If
|
||||||
oController.CheckSearchProfile(wdfLocation.ToLower)
|
oController.CheckSearchProfile(wdfLocation.ToLower) 'wdfLocation.ToLower)
|
||||||
clsLogger.AddDetailLog("oController erzeugt")
|
clsLogger.AddDetailLog("oController erzeugt")
|
||||||
Dim suchTyp = oController.SearchProfileTargetProgID
|
Dim suchTyp = oController.SearchProfileTargetProgID
|
||||||
Dim ExSettings As Object
|
Dim ExSettings As Object
|
||||||
@ -427,17 +424,12 @@ Public Class clsWindream_allgemein
|
|||||||
Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch")
|
Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch")
|
||||||
Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch")
|
Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch")
|
||||||
clsLogger.AddDetailLog("WD Objekte in GetSearchDocuments erzeugt")
|
clsLogger.AddDetailLog("WD Objekte in GetSearchDocuments erzeugt")
|
||||||
If suchTyp Is Nothing Then
|
|
||||||
clsLogger.AddError("suchTyp is nothing")
|
|
||||||
Return Nothing
|
|
||||||
End If
|
|
||||||
clsLogger.AddDetailLog(suchTyp.ToString.ToUpper)
|
clsLogger.AddDetailLog(suchTyp.ToString.ToUpper)
|
||||||
'' Der öffentliche Member CheckSearchProfile für den Typ IWMQuickSearch7 wurde nicht gefunden. [Microsoft.VisualBasic] => GetSearchDocuments()
|
'' Der öffentliche Member CheckSearchProfile für den Typ IWMQuickSearch7 wurde nicht gefunden. [Microsoft.VisualBasic] => GetSearchDocuments()
|
||||||
Select Case suchTyp.ToString.ToUpper
|
Select Case suchTyp.ToString.ToUpper
|
||||||
Case "WMOSRCH.WMQUICKSEARCH"
|
Case "WMOSRCH.WMQUICKSEARCH"
|
||||||
srchQuick.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
srchQuick.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
||||||
oConnect.LoginSession(srchQuick.WMSession)
|
oConnect.LoginSession(srchQuick.WMSession)
|
||||||
clsLogger.AddDetailLog("Session created...")
|
|
||||||
srchQuick.ClearSearch()
|
srchQuick.ClearSearch()
|
||||||
srchQuick.SearchProfilePath = SearchPath
|
srchQuick.SearchProfilePath = SearchPath
|
||||||
srchQuick.LoadSearchProfile(SearchName)
|
srchQuick.LoadSearchProfile(SearchName)
|
||||||
@ -447,15 +439,16 @@ Public Class clsWindream_allgemein
|
|||||||
srchIndex.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
srchIndex.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
||||||
clsLogger.AddDetailLog("Session created...")
|
clsLogger.AddDetailLog("Session created...")
|
||||||
oConnect.LoginSession(srchIndex.WMSession)
|
oConnect.LoginSession(srchIndex.WMSession)
|
||||||
srchIndex.ClearSearch()
|
clsLogger.AddDetailLog("LoginSession...")
|
||||||
srchIndex.SearchProfilePath = SearchPath
|
srchIndex.SearchProfilePath = SearchPath
|
||||||
|
clsLogger.AddDetailLog("SearchPath...")
|
||||||
srchIndex.LoadSearchProfile(SearchName)
|
srchIndex.LoadSearchProfile(SearchName)
|
||||||
|
clsLogger.AddDetailLog("LoadSearchProfile...")
|
||||||
oSearch = srchIndex.GetSearch()
|
oSearch = srchIndex.GetSearch()
|
||||||
|
clsLogger.AddDetailLog("GetSearch...")
|
||||||
Case "WMOSRCH.WMOBJECTTYPESEARCH"
|
Case "WMOSRCH.WMOBJECTTYPESEARCH"
|
||||||
srchObjectType.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
srchObjectType.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
||||||
oConnect.LoginSession(srchObjectType.WMSession)
|
oConnect.LoginSession(srchObjectType.WMSession)
|
||||||
clsLogger.AddDetailLog("Session created...")
|
|
||||||
srchObjectType.ClearSearch()
|
srchObjectType.ClearSearch()
|
||||||
srchObjectType.SearchProfilePath = SearchPath
|
srchObjectType.SearchProfilePath = SearchPath
|
||||||
srchObjectType.LoadSearchProfile(SearchName)
|
srchObjectType.LoadSearchProfile(SearchName)
|
||||||
|
|||||||
@ -1,398 +0,0 @@
|
|||||||
Imports WINDREAMLib
|
|
||||||
Imports WINDREAMLib.WMCOMEvent
|
|
||||||
Imports WINDREAMLib.WMEntity
|
|
||||||
Imports WINDREAMLib.WMObjectEditMode
|
|
||||||
Imports WINDREAMLib.WMSearchOperator
|
|
||||||
Imports WINDREAMLib.WMSearchRelation
|
|
||||||
Imports WMOBRWSLib
|
|
||||||
|
|
||||||
Public Class ClassWindream_allgemein
|
|
||||||
|
|
||||||
#Region "+++++ Konstanten +++++"
|
|
||||||
Const DEBUG = AUS
|
|
||||||
Const AUS = 0
|
|
||||||
Const WINDREAM = 1
|
|
||||||
Const VARIABLEN = 2
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
#Region "+++++ Variablen +++++"
|
|
||||||
Public oConnect ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht)
|
|
||||||
Public oSession 'As WINDREAMLib.WMSession ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht)
|
|
||||||
Public oBrowser As New WMOBRWSLib.ServerBrowser
|
|
||||||
Public oDokumentTypen As WINDREAMLib.WMObjects
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
|
|
||||||
#Region "+++++ Allgemeine Methoden und Funktionen +++++"
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Konstruktor für die windream-Klasse
|
|
||||||
''' </summary>
|
|
||||||
''' <remarks></remarks>
|
|
||||||
Sub New()
|
|
||||||
' wenn ein Fehler bei der Initialisierung auftrat
|
|
||||||
If Not Me.Init() Then
|
|
||||||
' Nachricht ausgeben
|
|
||||||
MsgBox("Es trat ein Fehler bei der Initialisierung der Klasse windream auf. Bitte prüfen Sie ob der windream-Server aktiv ist und alle Dienste gestartet sind.", MsgBoxStyle.Exclamation, "Fehler bei Initialisierung")
|
|
||||||
|
|
||||||
' das Programm "abschießen"
|
|
||||||
Process.GetCurrentProcess.Kill()
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Initialisiert die statische Klasse (Login, Session starten, usw.)
|
|
||||||
''' </summary>
|
|
||||||
''' <returns>Liefert True wenn das Anmelden erfolgreich war, sonst False</returns>
|
|
||||||
''' <remarks></remarks>
|
|
||||||
Public Function Init() As Boolean
|
|
||||||
Try
|
|
||||||
Try
|
|
||||||
' Session-Objekt instanziieren und mit dem im Client ausgewählten Server belegen
|
|
||||||
Me.oSession = CreateObject("Windream.WMSession", Me.GetCurrentServer)
|
|
||||||
'If My.Settings.vDetailLog Then ClassLogger.Add(" >> windream-Server: '" & Me.GetCurrentServer & "'", False)
|
|
||||||
' Connection-Objekt instanziieren
|
|
||||||
Me.oConnect = CreateObject("Windream.WMConnect")
|
|
||||||
'MsgBox("windrem init 'ed")
|
|
||||||
Catch ex As Exception
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
|
|
||||||
|
|
||||||
' wenn windream nicht angemeldet ist
|
|
||||||
If Not Me.IsLoggedIn Then
|
|
||||||
|
|
||||||
' Art der Anmeldung an windream festlegen
|
|
||||||
' 0x0L (also 0) = Standard windream Benutzer
|
|
||||||
' WM_MODULE_ID_DOCTYPEEDITOR_LIC = ermöglicht Zugriff auf die windream Management Funktionen (Z.B. zur Verwaltung der windream Dokumententypen, Auswahllisten, etc.)
|
|
||||||
' WM_MODULE_ID_INDEXSERVICE = ermöglicht der Session die Indexierungs-Events vom windream DMS-Service zu empfangen
|
|
||||||
Me.oConnect.ModuleID = 0
|
|
||||||
|
|
||||||
' setzt die minimal erwartete windream-Version
|
|
||||||
Me.oConnect.MinReqVersion = "3"
|
|
||||||
|
|
||||||
' -- Impersonifizierung nur möglich mit registry-eintrag --
|
|
||||||
' oConnect.UserName "\schulung\windream"
|
|
||||||
' oConnect.Password "windream"
|
|
||||||
|
|
||||||
' Verbindung mit Session-Objekt (und dem ausgewählten Server) aufbauen
|
|
||||||
Me.oConnect.LoginSession(Me.oSession)
|
|
||||||
If Me.oSession.aLoggedin = False Then
|
|
||||||
MsgBox("Es konnte keine Verbindung mit dem windream-Server hergestellt werden", MsgBoxStyle.Exclamation, "Verbindung konnte nicht hergestellt werden")
|
|
||||||
Return False
|
|
||||||
End If
|
|
||||||
|
|
||||||
'If My.Settings.vDetailLog Then
|
|
||||||
' ClassLogger.Add(" >> windream-Version: '" & oSession.GetSystemInfo("WindreamVersion") & "'", False)
|
|
||||||
'End If
|
|
||||||
|
|
||||||
' AUSGABE VON SYSTEMINFORMATIONEN
|
|
||||||
' Gibt die Versionsart (Lizenztyp) also Small-Business-Edition (SBE), Small-Business-Extension (SBX)
|
|
||||||
' oder Business-Edition (BE) aus
|
|
||||||
'MsgBox("WindreamVersion: " & oSession.GetSystemInfo("WindreamVersion") & vbNewLine & "LicenceKey: " & oSession.GetSystemInfo("LicenceKey") & vbNewLine & _
|
|
||||||
' vbNewLine & "LicenceName: " & oSession.GetSystemInfo("LicenceName"))
|
|
||||||
|
|
||||||
'Dim WMCtrl As AISCONTROLDATACOMLib.AISControlData
|
|
||||||
'WMCtrl = New AISCONTROLDATACOMLib.AISControlData
|
|
||||||
|
|
||||||
'' liefert die Versionsnummer des Clients
|
|
||||||
|
|
||||||
'MsgBox(WMCtrl.WMWorkstationBuildNo)
|
|
||||||
'MsgBox(WMCtrl.W
|
|
||||||
'' liefert den Servernamen des angemeldeten windreams
|
|
||||||
'MsgBox(WMCtrl.WMServerName)
|
|
||||||
|
|
||||||
Try
|
|
||||||
Me.oSession.SwitchEvents(WMCOMEventWMSessionNeedIndex, False)
|
|
||||||
' der Parameter WMEntityDocument definiert, dass nur Dokumenttypen und keine
|
|
||||||
' Ordnertypen ausgelesen werden
|
|
||||||
Me.oDokumentTypen = Me.oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
|
|
||||||
Catch ex As Exception
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
Return True
|
|
||||||
|
|
||||||
Catch ex As Exception
|
|
||||||
If Err.Number = -2147220985 Then
|
|
||||||
MsgBox("Die installierte windream-Version ist nicht ausreichend für den Betrieb der Tool Collection für windream." & vbNewLine & _
|
|
||||||
"Bitte kontaktieren Sie Digital Data." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & Err.Description, MsgBoxStyle.Exclamation, "Unzureichende windream-Version")
|
|
||||||
Else
|
|
||||||
MsgBox("Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Login an windream")
|
|
||||||
End If
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
|
|
||||||
End Function
|
|
||||||
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#Region "+++++ Funktionen die für den Objekttyp relevate Informationen zurückliefern +++++"
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Liefert alle Objekttypen des aktuellen Servers als windream-Objekte.
|
|
||||||
''' </summary>
|
|
||||||
''' <returns>Alle Objekttypen als WMObjects-Objekt</returns>
|
|
||||||
''' <remarks></remarks>
|
|
||||||
Public Function GetObjecttypesAsObjects() As WMObjects
|
|
||||||
Try
|
|
||||||
|
|
||||||
Return Me.oDokumentTypen
|
|
||||||
|
|
||||||
Catch ex As Exception
|
|
||||||
MsgBox("Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen der Objekttypen")
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Liefert alle Objekttypen des aktuellen Servers als Array aus Strings.
|
|
||||||
''' </summary>
|
|
||||||
''' <returns>Array mit allen Objekttypen als Strings</returns>
|
|
||||||
''' <remarks></remarks>
|
|
||||||
Public Function GetObjecttypesAsStrings() As String()
|
|
||||||
|
|
||||||
Try
|
|
||||||
Dim objektTypenStr(Me.oDokumentTypen.Count) As String
|
|
||||||
|
|
||||||
For i As Integer = 0 To Me.oDokumentTypen.Count
|
|
||||||
objektTypenStr(i) = Me.oDokumentTypen.Item(i).aName
|
|
||||||
Next
|
|
||||||
|
|
||||||
Return objektTypenStr
|
|
||||||
|
|
||||||
Catch ex As Exception
|
|
||||||
MsgBox("Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen der Objekttypen als String")
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
|
|
||||||
End Function
|
|
||||||
Public Function GetTypeOfIndex(ByVal indexname As String) As Integer
|
|
||||||
Try
|
|
||||||
Dim oAttribute = Me.oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
|
|
||||||
Dim vType = oAttribute.getVariableValue("dwAttrType")
|
|
||||||
Return vType
|
|
||||||
Catch ex As Exception
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
''' <summary>
|
|
||||||
''' Liefert alle Indexe eines Objekttypen.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="name">Name des Objekttyps</param>
|
|
||||||
''' <returns>Array mit allen Objekttyp zugeordneten Indexen als String</returns>
|
|
||||||
''' <remarks></remarks>
|
|
||||||
Public Function GetIndicesByObjecttype(ByVal Objecttype_name As String) As String()
|
|
||||||
Try
|
|
||||||
Dim oObjectType As WMObject
|
|
||||||
Dim oIndexAttributes As WMObjectRelation
|
|
||||||
Dim oIndexAttribute As WMObject
|
|
||||||
Dim oIndex As WMObject
|
|
||||||
Dim oRelProperties As WMObjectRelationClass
|
|
||||||
|
|
||||||
' den Objekttyp laden
|
|
||||||
oObjectType = Me.oSession.GetWMObjectByName(WMEntityObjectType, Objecttype_name)
|
|
||||||
|
|
||||||
' Beziehung zu Indizes des Objekttyp auslesen
|
|
||||||
oIndexAttributes = oObjectType.GetWMObjectRelationByName("TypeAttributes")
|
|
||||||
|
|
||||||
' Array für Indizes vorbereiten
|
|
||||||
Dim aIndexNames(oIndexAttributes.Count - 1) As String
|
|
||||||
|
|
||||||
' alle Indizes durchlaufen
|
|
||||||
For j As Integer = 0 To oIndexAttributes.Count - 1
|
|
||||||
|
|
||||||
' aktuellen Index auslesen
|
|
||||||
oIndexAttribute = oIndexAttributes.Item(j)
|
|
||||||
|
|
||||||
' Eigenschaften des Index auslesen
|
|
||||||
oRelProperties = oIndexAttribute.GetWMObjectRelationByName("Attribute")
|
|
||||||
|
|
||||||
' Index aus den Eigenschaften auslesen
|
|
||||||
oIndex = oRelProperties.Item(0)
|
|
||||||
|
|
||||||
' Indexname speichern
|
|
||||||
aIndexNames(j) = oIndex.aName
|
|
||||||
Next
|
|
||||||
|
|
||||||
' Indexarray zurückgeben
|
|
||||||
' Indexarray zurückgeben
|
|
||||||
Array.Sort(aIndexNames)
|
|
||||||
Return aIndexNames
|
|
||||||
|
|
||||||
Catch ex As Exception
|
|
||||||
MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen der windream-Indexe")
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
''' <summary>
|
|
||||||
''' Liefert einen Objekttyp als WMObject an Hand dessen Name.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="objekttypName">Name des Objekttyps</param>
|
|
||||||
''' <returns>Objekttyp als WMObject</returns>
|
|
||||||
''' <remarks></remarks>
|
|
||||||
Public Function GetObjecttypeByName(ByVal objekttypName As String) As WMObject
|
|
||||||
Try
|
|
||||||
' alle Objekttypen auslesen
|
|
||||||
Dim oObjectTypes As WMObjects = Me.oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
|
|
||||||
|
|
||||||
' alle Objekttypen durchlaufen und nach dem mit dem angegebenen Namen suchen
|
|
||||||
For Each oObjectType As WMObject In oObjectTypes
|
|
||||||
If oObjectType.aName = objekttypName Then
|
|
||||||
Return oObjectType
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
|
|
||||||
Return Nothing
|
|
||||||
|
|
||||||
Catch ex As Exception
|
|
||||||
MsgBox("Es konnte ein Objekttyp nicht erstellt werden." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Exclamation, "Objekttyp konnte nicht erstellt werden")
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Überprüft ob der angegebene Index im Objekttyp existiert
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="objekttyp">Name des zu durchsuchenden Objekttyps</param>
|
|
||||||
''' <param name="indexname">Name des zu suchenden Indexes</param>
|
|
||||||
''' <returns>Liefert True wenn der Index im Objekttyp existiert, sonst False</returns>
|
|
||||||
''' <remarks></remarks>
|
|
||||||
Public Function ExistIndexInObjekttyp(ByVal objekttyp As String, ByVal indexname As String) As Boolean
|
|
||||||
Try
|
|
||||||
Dim indexnamen() As String = Me.GetIndicesByObjecttype(objekttyp)
|
|
||||||
|
|
||||||
If indexnamen Is Nothing Then Return False
|
|
||||||
|
|
||||||
For Each index As String In indexnamen
|
|
||||||
If index = indexname Then Return True
|
|
||||||
Next
|
|
||||||
|
|
||||||
Catch ex As Exception
|
|
||||||
MsgBox("Beim Prüfen ob ein Index für einen Objekttypen existiert, ist ein Fehler aufgetreten." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Prüfen auf Existenz eines Index in einem Objekttyp")
|
|
||||||
End Try
|
|
||||||
|
|
||||||
Return False
|
|
||||||
|
|
||||||
End Function
|
|
||||||
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#Region "+++++ Allgemeine Funktionen die Informationen zurückliefern +++++"
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Liefert True wenn die windream-Session angemeldet ist und False für den Fall, dass die Session nicht eingeloggt ist.
|
|
||||||
''' </summary>
|
|
||||||
''' <returns>Anmeldestatus als Boolean</returns>
|
|
||||||
''' <remarks></remarks>
|
|
||||||
Public Function IsLoggedIn() As Boolean
|
|
||||||
Try
|
|
||||||
Return Me.oSession.aLoggedin
|
|
||||||
Catch ex As Exception
|
|
||||||
MsgBox("Es konnte nicht erfolgreich geprüft werden, ob das Programm am windream-Server angemeldted ist." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler bei Loggedin-Prüfung")
|
|
||||||
End Try
|
|
||||||
|
|
||||||
Return False
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Liefert den Servernamen an dem windream aktuell angemeldet ist.
|
|
||||||
''' </summary>
|
|
||||||
''' <returns>Servername als String</returns>
|
|
||||||
''' <remarks></remarks>
|
|
||||||
Public Function GetCurrentServer() As String
|
|
||||||
Try
|
|
||||||
Return Me.oBrowser.GetCurrentServer 'ClassWindream.oBrowser.GetCurrentServer
|
|
||||||
Catch ex As Exception
|
|
||||||
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
|
|
||||||
|
|
||||||
Return ""
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'Public Function GetSharedCurrentServer() As String
|
|
||||||
' Try
|
|
||||||
' Return ClassWindream.oBrowser.GetCurrentServer
|
|
||||||
' Catch ex As Exception
|
|
||||||
' 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
|
|
||||||
|
|
||||||
' Return ""
|
|
||||||
'End Function
|
|
||||||
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Liefert das Windream-Laufwerk des windream-Servers, in Form '[Laufwerksbuchstabe]:'. (z.B. 'W:')
|
|
||||||
''' </summary>
|
|
||||||
''' <returns>Laufwerksbuchstabe mit Doppelpunkt als String</returns>
|
|
||||||
''' <remarks></remarks>
|
|
||||||
'Public Function GetWindreamDriveLetter() As String
|
|
||||||
|
|
||||||
' Try
|
|
||||||
' Dim oControl As AISCONTROLDATACOMLib.AISControlData
|
|
||||||
' Dim sDrive As String = ""
|
|
||||||
|
|
||||||
' oControl = New AISCONTROLDATACOMLib.AISControlData
|
|
||||||
|
|
||||||
' sDrive = oControl.GetStringValue(&H10040003)
|
|
||||||
|
|
||||||
' Return sDrive & ":"
|
|
||||||
|
|
||||||
' Catch ex As Exception
|
|
||||||
' MsgBox("Fehlernachricht: " & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen des windream-Laufwerks")
|
|
||||||
' End Try
|
|
||||||
|
|
||||||
' Return ""
|
|
||||||
'End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Liefert den Typen eines Indexes als Integer.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="indexname">Name des zu überprüfenden Indexfeldes</param>
|
|
||||||
''' <returns>Liefert eine Zahl, die einen Typen beschreibt</returns>
|
|
||||||
''' <remarks></remarks>
|
|
||||||
|
|
||||||
Public Function GetValuesfromAuswahlliste(ByVal _auswahlliste As String) As Object
|
|
||||||
Try
|
|
||||||
'Dim oAttribute = Me.oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
|
|
||||||
'Dim vType = oAttribute.getVariableValue("vItems")
|
|
||||||
'Return vType
|
|
||||||
Dim oChoiceList = oSession.GetWMObjectByName(WMEntityChoiceList, _auswahlliste)
|
|
||||||
If Err.Number = 0 And TypeName(oChoiceList) <> "Nothing" Then
|
|
||||||
Dim Values = oChoiceList
|
|
||||||
Values = oChoiceList.GetVariableValue("vItems")
|
|
||||||
Dim anz As Integer = 0
|
|
||||||
|
|
||||||
For Each CLItem In Values
|
|
||||||
If oChoiceList.aName IsNot Nothing Then
|
|
||||||
anz += 1
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
Dim strListe(anz - 1)
|
|
||||||
Dim zahl As Integer = 0
|
|
||||||
For Each CLItem In Values
|
|
||||||
If oChoiceList.aName IsNot Nothing Then
|
|
||||||
strListe(zahl) = CLItem
|
|
||||||
zahl += 1
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
Return strListe
|
|
||||||
Else
|
|
||||||
MsgBox("Auswahlliste: " & _auswahlliste & " nicht gefunden!", MsgBoxStyle.Critical, "Fehler:")
|
|
||||||
Return Nothing
|
|
||||||
End If
|
|
||||||
|
|
||||||
Catch ex As Exception
|
|
||||||
MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler in GetValuesfromAuswahlliste:")
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
#End Region
|
|
||||||
End Class
|
|
||||||
@ -111,7 +111,6 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="ClassAllgemeineFunktionen.vb" />
|
<Compile Include="ClassAllgemeineFunktionen.vb" />
|
||||||
<Compile Include="ClassWindream_allgemein.vb" />
|
|
||||||
<Compile Include="clsDatabase.vb" />
|
<Compile Include="clsDatabase.vb" />
|
||||||
<Compile Include="clsDateiverarbeitung.vb" />
|
<Compile Include="clsDateiverarbeitung.vb" />
|
||||||
<Compile Include="clsLogger.vb" />
|
<Compile Include="clsLogger.vb" />
|
||||||
|
|||||||
3
app/ResultHandler_Konfig/frmMain.Designer.vb
generated
3
app/ResultHandler_Konfig/frmMain.Designer.vb
generated
@ -1344,7 +1344,8 @@ Partial Class frmMain
|
|||||||
'NumericUpDown
|
'NumericUpDown
|
||||||
'
|
'
|
||||||
Me.NumericUpDown.Increment = New Decimal(New Integer() {5, 0, 0, 0})
|
Me.NumericUpDown.Increment = New Decimal(New Integer() {5, 0, 0, 0})
|
||||||
Me.NumericUpDown.Location = New System.Drawing.Point(352, 168)
|
Me.NumericUpDown.Location = New System.Drawing.Point(352, 169)
|
||||||
|
Me.NumericUpDown.Maximum = New Decimal(New Integer() {500, 0, 0, 0})
|
||||||
Me.NumericUpDown.Name = "NumericUpDown"
|
Me.NumericUpDown.Name = "NumericUpDown"
|
||||||
Me.NumericUpDown.Size = New System.Drawing.Size(38, 22)
|
Me.NumericUpDown.Size = New System.Drawing.Size(38, 22)
|
||||||
Me.NumericUpDown.TabIndex = 101
|
Me.NumericUpDown.TabIndex = 101
|
||||||
|
|||||||
@ -215,7 +215,7 @@
|
|||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAI
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAI
|
||||||
DAAAAk1TRnQBSQFMAgEBAwEAATgBAQE4AQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
DAAAAk1TRnQBSQFMAgEBAwEAAUgBAQFIAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||||
|
|||||||
@ -588,7 +588,7 @@ Public Class frmMain
|
|||||||
clsLogger.Add("", False)
|
clsLogger.Add("", False)
|
||||||
'windream initialisieren
|
'windream initialisieren
|
||||||
If _windream.Init() = True Then
|
If _windream.Init() = True Then
|
||||||
clsLogger.AddDetailLog("windream vollumfänglich initialisiert!")
|
clsLogger.AddDetailLog("windream vollumfänglich initialisiert!")
|
||||||
'Zur sicherheit die DB nochmal initialiseren
|
'Zur sicherheit die DB nochmal initialiseren
|
||||||
If clsDatatabase.Init() = True Then
|
If clsDatatabase.Init() = True Then
|
||||||
Dim DT As DataTable = clsDatatabase.Return_Datatable("SELECT GUID FROM TBWMRH_PROFIL WHERE AKTIV = 1 order by REIHENFOLGE")
|
Dim DT As DataTable = clsDatatabase.Return_Datatable("SELECT GUID FROM TBWMRH_PROFIL WHERE AKTIV = 1 order by REIHENFOLGE")
|
||||||
@ -619,12 +619,12 @@ Public Class frmMain
|
|||||||
clsDatatabase.Execute_non_Query("UPDATE TBWMRH_KONFIGURATION SET LAST_TICK = GETDATE() WHERE GUID = 1")
|
clsDatatabase.Execute_non_Query("UPDATE TBWMRH_KONFIGURATION SET LAST_TICK = GETDATE() WHERE GUID = 1")
|
||||||
Else
|
Else
|
||||||
clsLogger.Add("- clsSQLLite konnte nicht initialisiert werden!", False)
|
clsLogger.Add("- clsSQLLite konnte nicht initialisiert werden!", False)
|
||||||
notcompleted = True
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
clsLogger.Add("# Achtung: Windream-Init mit Fehlern beendet", False)
|
|
||||||
notcompleted = True
|
notcompleted = True
|
||||||
End If
|
End If
|
||||||
|
Else
|
||||||
|
clsLogger.Add("# Achtung: Windream-Init mit Fehlern beendet", False)
|
||||||
|
notcompleted = True
|
||||||
|
End If
|
||||||
If notcompleted = True Then
|
If notcompleted = True Then
|
||||||
clsLogger.WriteLog()
|
clsLogger.WriteLog()
|
||||||
End If
|
End If
|
||||||
|
|||||||
@ -1,10 +1,8 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 15
|
# Visual Studio 15
|
||||||
VisualStudioVersion = 15.0.26228.9
|
VisualStudioVersion = 15.0.27130.2010
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "windream-Result-Handler", "windream-Result-Handler\windream-Result-Handler.vbproj", "{95448D0B-00CF-4870-A90D-C39F20DD8AAB}"
|
|
||||||
EndProject
|
|
||||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ResultHandler_Konfig", "ResultHandler_Konfig\ResultHandler_Konfig.vbproj", "{85F6D07F-4C83-41C6-AEF1-66F228C13C25}"
|
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ResultHandler_Konfig", "ResultHandler_Konfig\ResultHandler_Konfig.vbproj", "{85F6D07F-4C83-41C6-AEF1-66F228C13C25}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DDWDResultHandler", "DDWDResultHandler\DDWDResultHandler.vbproj", "{190A63D1-A129-499D-A863-59D39D9EA58F}"
|
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DDWDResultHandler", "DDWDResultHandler\DDWDResultHandler.vbproj", "{190A63D1-A129-499D-A863-59D39D9EA58F}"
|
||||||
@ -18,16 +16,6 @@ Global
|
|||||||
SingleImage|Any CPU = SingleImage|Any CPU
|
SingleImage|Any CPU = SingleImage|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{95448D0B-00CF-4870-A90D-C39F20DD8AAB}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{95448D0B-00CF-4870-A90D-C39F20DD8AAB}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{95448D0B-00CF-4870-A90D-C39F20DD8AAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{95448D0B-00CF-4870-A90D-C39F20DD8AAB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{95448D0B-00CF-4870-A90D-C39F20DD8AAB}.DVD-5|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{95448D0B-00CF-4870-A90D-C39F20DD8AAB}.DVD-5|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{95448D0B-00CF-4870-A90D-C39F20DD8AAB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{95448D0B-00CF-4870-A90D-C39F20DD8AAB}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{95448D0B-00CF-4870-A90D-C39F20DD8AAB}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{95448D0B-00CF-4870-A90D-C39F20DD8AAB}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{85F6D07F-4C83-41C6-AEF1-66F228C13C25}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
{85F6D07F-4C83-41C6-AEF1-66F228C13C25}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{85F6D07F-4C83-41C6-AEF1-66F228C13C25}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
{85F6D07F-4C83-41C6-AEF1-66F228C13C25}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||||
{85F6D07F-4C83-41C6-AEF1-66F228C13C25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{85F6D07F-4C83-41C6-AEF1-66F228C13C25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
@ -52,4 +40,7 @@ Global
|
|||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {19F9A4BE-B0CE-4334-8B86-8BAB1F9D2648}
|
||||||
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user