This commit is contained in:
Digital Data - Marlon Schreiber
2019-03-22 15:48:41 +01:00
parent fb92a0fd1c
commit 676e9d40b8
17 changed files with 547 additions and 184 deletions

View File

@@ -128,6 +128,7 @@ Public Class clsProfil
Logger.Info($"Working on profile '{_Profilname}'")
clsCURRENT.DT_TBDD_EMAIL = _database.Return_Datatable("SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE ACTIVE = 1")
clsCURRENT.PROFILE_HandledFiles = Nothing
clsCURRENT.EXPORTED_FILENAME = ""
Logger.Debug("Start RUN of profile '" & _Profilname & "'")
'den Durchlaufszeitpunkt speichern
If File.Exists(_profwdSuche) = False Then
@@ -160,7 +161,11 @@ Public Class clsProfil
Dim FileJobSuccessful As Boolean = False
Dim CountExportedDoc As Integer = 0
clsCURRENT.PROFILE_HandledFiles = Nothing
Dim oFileRunNo As String
Dim oCountDocs As Integer = 0
For Each WMdok As WMObject In windreamSucheErgebnisse
oCountDocs += 1
oFileRunNo = "#DocRun" & oCountDocs.ToString
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
@@ -178,6 +183,15 @@ Public Class clsProfil
If Not IsNothing(clsCURRENT.DT_TBDD_EMAIL) And clsCURRENT.DT_TBDD_EMAIL.Rows.Count >= 1 Then
Dim oAttachment = clsCURRENT.WDLAUFWERK & ":" & WMdok.aPath
If _dateiverarbeitung.Export_WMFile2HDD(WMdok, Path.GetTempPath()) = True Then
oAttachment = clsCURRENT.EXPORTED_FILENAME
Else
Logger.Warn($"Could not create a tempfile...")
FileJobSuccessful = False
Return False
End If
Dim MAILFROM As String = ""
Dim MAILSMTP As String = ""
@@ -201,16 +215,10 @@ Public Class clsProfil
Dim PWPlain = wrapper.DecryptData(MAIL_USER_PW)
If Not IsNothing(PWPlain) Then
If PWPlain <> "" Then
MAIL_USER_PW = PWPlain
Else
Logger.Warn("PWPlain is string.empty - Could not decrypt passwort181")
Return False
End If
MAIL_USER_PW = PWPlain
Else
Logger.Warn("PWPlain is string.empty - Could not decrypt passwort188")
Logger.Warn("PWPlain is Nothing - Could not decrypt passwort188")
Return False
End If
@@ -222,32 +230,34 @@ Public Class clsProfil
Email_Betreff = _dateiverarbeitung.REGEX_REPLACE(WMdok, Email_Betreff)
Email_Body = _dateiverarbeitung.REGEX_REPLACE(WMdok, Email_Body)
If _email.Email_Send_Independentsoft(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_AUTH_TYPE, oAttachment) = True Then
If _email.Email_Send(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_AUTH_TYPE, oAttachment) = True Then
FileJobSuccessful = True
Else
Logger.Warn("Email_Send_Independentsoft was not successfull!")
Logger.Warn($"{oFileRunNo} Email_Send_Independentsoft 1 was not successfull!")
FileJobSuccessful = False
End If
Else
Logger.Warn("DT_TBDD_EMAIL is nothing or contains no rows")
Logger.Warn($"{oFileRunNo} DT_TBDD_EMAIL is nothing or contains no rows")
Return False
End If
Case "Export HDD".ToUpper
Logger.Info("JobType: Case Export HDD")
Logger.Info($"{oFileRunNo} JobType: Case Export HDD")
'Für jedes Dokument in der Windream-Ergebnisliste
'For Each dok As WMObject In windreamSucheErgebnisse
' aktuelles Dokument zum Export bereitstellen
clsCURRENT.EXPORTED_FILENAME = ""
If _dateiverarbeitung.Export_File(WMdok, DR_PR_JB.Item("STRING1")) = True Then
If _dateiverarbeitung.Export_WMFile2HDD(WMdok, DR_PR_JB.Item("STRING1")) = True Then
ReDim Preserve clsCURRENT.PROFILE_HandledFiles(CountExportedDoc)
clsCURRENT.PROFILE_HandledFiles(CountExportedDoc) = clsCURRENT.EXPORTED_FILENAME
CountExportedDoc += 1
FileJobSuccessful = True
Logger.Info($"{oFileRunNo} Export HDD completed!")
End If
'Next
Case "BNS json Download".ToUpper
Logger.Info("JobType: BNS json Download")
Logger.Info($"{oFileRunNo} JobType: BNS json Download")
FileJobSuccessful = _dateiverarbeitung.BNSjsonDownload(WMdok, DR_PR_JB.Item("STRING1"), DR_PR_JB.Item("STRING2"))
'Case "Send to printer".ToUpper
' Logger.Info("JobType: Send to printer")
@@ -305,9 +315,26 @@ Public Class clsProfil
'Für jeden File-Job
For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows
If FileJobSuccessful = False Then
Logger.Info("AUSSTIEG FOR SCHLEIFE cause FileJobSuccessful = False...")
Logger.Info($"{oFileRunNo} AUSSTIEG FOR SCHLEIFE cause FileJobSuccessful = False...")
Exit For
End If
If DR_PR_FILE_JOB.Item("STRING2").ToString.Contains("EXPORTED_FILENAME") Then
If clsCURRENT.EXPORTED_FILENAME = "" Then
Logger.Warn($"{oFileRunNo} clsCURRENT.EXPORTED_FILENAME Is empty! So FileJobSuccessful will be set to FALSE")
FileJobSuccessful = False
Continue For
Else
If File.Exists(clsCURRENT.EXPORTED_FILENAME) = False Then
Logger.Warn($"{oFileRunNo} clsCURRENT.EXPORTED_FILENAME [{clsCURRENT.EXPORTED_FILENAME}] not existing! So FileJobSuccessful will be set to FALSE")
FileJobSuccessful = False
Continue For
Else
Logger.Debug($"{oFileRunNo} clsCURRENT.EXPORTED_FILENAME [{clsCURRENT.EXPORTED_FILENAME}] exists!")
End If
End If
End If
Select Case DR_PR_FILE_JOB.Item("TYP").ToString.ToLower
Case "Set Index".ToLower
Try
@@ -319,17 +346,17 @@ Public Class clsProfil
idxvalue = idxvalue.Replace("[%DATETIME]", Now.ToString)
End If
idxvalue = _dateiverarbeitung.REGEX_REPLACE(WMdok, idxvalue)
Logger.Debug($"Index '{idxName}' shall be set with value '{idxvalue}'")
Logger.Debug($"{oFileRunNo} Index '{idxName}' shall be set with value '{idxvalue}'")
Dim arrIndex() As String
ReDim Preserve arrIndex(0)
arrIndex(0) = idxName
Logger.Debug("...nach arrIndex")
Logger.Debug($"{oFileRunNo} ...nach arrIndex")
Dim arrValue() As String
Dim aktvalue As Object
aktvalue = WMdok.GetVariableValue(idxName)
Logger.Debug("...nach aktValue zuweisen..")
Logger.Debug($"{oFileRunNo} ...nach aktValue zuweisen..")
Dim wmtype = clsWindream_allgemein.GetTypeOfIndexAsIntByName(idxName)
Dim is_vektor As Boolean = False
Select Case wmtype
@@ -372,9 +399,10 @@ Public Class clsProfil
' 07.01.2019: Weitere Jobs bei Fehler in RunIndexing überspringen
If oErrorOccurred = True Then
FileJobSuccessful = False
End If
Else
Logger.Warn("arrValue is nothing - keine Indexierung")
Logger.Warn($"{oFileRunNo} arrValue is nothing - keine Indexierung")
End If
Catch ex As Exception
@@ -382,14 +410,14 @@ Public Class clsProfil
'clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsProfil.Profil_Durchlauf(SetIndex)")
End Try
Case "Rename File with windream Index".ToLower
Logger.Debug("Exportierte Datei soll nach Indexvorgaben umbenannt werden...")
Logger.Debug($"{oFileRunNo} Exportierte Datei soll nach Indexvorgaben umbenannt werden...")
_dateiverarbeitung.Rename_File(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
Case "Rename File with WMVector (only one)".ToLower
Logger.Debug("Exportierte Datei soll nach VektorIndexvorgaben umbenannt werden...")
Logger.Debug($"{oFileRunNo} Exportierte Datei soll nach VektorIndexvorgaben umbenannt werden...")
_dateiverarbeitung.Rename_File_Vektor(WMdok, DR_PR_FILE_JOB.Item("STRING1").ToString)
Case "Execute Oracle Command".ToLower
Try
Logger.Debug("Execute Oracle Command.......")
Logger.Debug($"{oFileRunNo} Execute Oracle Command.......")
Dim oracleconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
Dim oracleCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
FileJobSuccessful = _dateiverarbeitung.RUN_ORACLE_COMMAND(WMdok, oracleconnectionstring, oracleCommandRAW)
@@ -401,7 +429,7 @@ Public Class clsProfil
Try
Dim MSSQLconnectionstring = DR_PR_FILE_JOB.Item("STRING1").ToString
Dim MSSQLCommandRAW = DR_PR_FILE_JOB.Item("STRING2").ToString
Logger.Debug("Execute MSSQL Command.......")
Logger.Debug($"{oFileRunNo} Execute MSSQL Command.......")
FileJobSuccessful = _dateiverarbeitung.RUN_MSSQL_COMMAND(WMdok, MSSQLconnectionstring, MSSQLCommandRAW)
Catch ex As Exception
Logger.Error(ex)
@@ -426,8 +454,8 @@ Public Class clsProfil
Logger.Debug("pdftk location: " & pdftk)
clsCURRENT.CONCATTED_FILE = DR_PR_JB.Item("STRING1")
Logger.Debug("CONCATTED_FILE location: " & clsCURRENT.CONCATTED_FILE)
Dim deleteJaNein = DR_PR_JB.Item("STRING2").ToString.ToUpper
Logger.Debug("deleteJaNein: " & deleteJaNein.ToString)
Dim oDeleteResultFile = DR_PR_JB.Item("STRING2").ToString.ToUpper
Logger.Debug("deleteJaNein: " & oDeleteResultFile.ToString)
If File.Exists(pdftk) Then
If File.Exists(clsCURRENT.CONCATTED_FILE) Then
Try
@@ -496,10 +524,11 @@ Public Class clsProfil
Loop
sw.Stop()
If deleteJaNein = "JA" Then
If oDeleteResultFile = "JA" Then
For Each str As String In clsCURRENT.PROFILE_HandledFiles
Try
File.Delete(str)
Logger.Debug($"Deleted file [{str}]!")
Catch ex As Exception
Logger.Error(ex)
End Try
@@ -562,10 +591,11 @@ Public Class clsProfil
Return False
End If
If _email.Email_Send_Independentsoft(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_AUTH_TYPE, clsCURRENT.CONCATTED_FILE) = True Then
If _email.Email_Send(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_AUTH_TYPE, clsCURRENT.CONCATTED_FILE) = True Then
FileJobSuccessful = True
Else
Logger.Warn("Email_Send_Independentsoft was not successfull!")
Logger.Warn("Email_Send_Independentsoft 2 was not successfull!")
FileJobSuccessful = False
End If
@@ -581,10 +611,10 @@ Public Class clsProfil
Case "Send to printer".ToUpper
Logger.Info("Working on CASE Send to printer.... ")
Dim printername = DR_PR_JB.Item("STRING1")
For Each str As String In clsCURRENT.PROFILE_HandledFiles
For Each oFileString As String In clsCURRENT.PROFILE_HandledFiles
Try
Dim myproc As Process = New Process()
myproc.StartInfo.FileName = """" & str & """"
myproc.StartInfo.FileName = """" & oFileString & """"
myproc.StartInfo.Verb = "printto"
myproc.StartInfo.Arguments = printername
myproc.StartInfo.UseShellExecute = True
@@ -605,9 +635,10 @@ Public Class clsProfil
FileJobSuccessful = True
sw.Stop()
' myproc.Kill()
File.Delete(str)
File.Delete(oFileString)
Logger.Debug($"Deleted oFileString [{oFileString}]!")
Catch ex As Exception
Logger.Warn("Could not print (printto) file: " & str)
Logger.Warn("Could not print (printto) file: " & oFileString)
Logger.Error(ex)
End Try
Next