This commit is contained in:
2021-06-24 23:06:47 +02:00
parent 569991b011
commit 2c80644224
22 changed files with 2133 additions and 926 deletions

View File

@@ -12,6 +12,7 @@ Public Class frmTCNachrichtenVerarbeitung
' Dim DY_PFAD = "C:\Users\DEVELOPER1\Desktop\test\TEST\"
Dim TELOTEC_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_Einarbeitung\"
Dim TELOTEC_PFAD_VERAG = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_Einarbeitung\"
Dim VERARBEITUNGS_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_Einarbeitung\"
Dim ZIEL_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_Ablage\"
Dim ERROR_PFAD = "" '"C:\Users\DEVELOPER1\Desktop\test\TEST\Nachrichtendaten_ERROR\"
@@ -38,6 +39,7 @@ Public Class frmTCNachrichtenVerarbeitung
Sub initPfade()
Me.TELOTEC_PFAD = TELOTEC_Worker.cTC_Paramter.GET_PARAM_ByName("TELOTEC_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
Me.TELOTEC_PFAD_VERAG = TELOTEC_Worker.cTC_Paramter.GET_PARAM_ByName("TELOTEC_PFAD_VERAG", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
Me.VERARBEITUNGS_PFAD = TELOTEC_Worker.cTC_Paramter.GET_PARAM_ByName("VERARBEITUNGS_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
'VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getRootDir() & "DAKOSY\TESTSYSTEM\Nachrichtendaten_Einarbeitung\"
Me.ZIEL_PFAD = TELOTEC_Worker.cTC_Paramter.GET_PARAM_ByName("ZIEL_PFAD", VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM)
@@ -59,6 +61,7 @@ Public Class frmTCNachrichtenVerarbeitung
ListBox3.Items.Add(frmStartOptions.cut_file(d))
Me.Refresh()
Next
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
@@ -66,6 +69,7 @@ Public Class frmTCNachrichtenVerarbeitung
Try
Label9.Visible = True
Dim cnt = getNachrichtenDatenFromTelotec()
cnt += getNachrichtenDatenFromTelotec_VERAG()
Label9.Text = cnt & " Datensätze empfangen."
Catch ex As Exception
@@ -165,7 +169,34 @@ Public Class frmTCNachrichtenVerarbeitung
'Return cnt
End Function
Function getNachrichtenDatenFromTelotec_VERAG() As Integer
Dim cnt = 0
Try
For Each f In IO.Directory.GetFiles(TELOTEC_PFAD_VERAG)
Dim FI As New FileInfo(f)
If Not FI.Name.StartsWith(".") Then
'Temp. DownloadPfad
Dim destFilenameTMP = VERARBEITUNGS_PFAD + "." & If(IO.File.Exists(VERARBEITUNGS_PFAD & "." & FI.Name), Now.ToString("yyMMdd_HHmmss.fff_"), "") & FI.Name
'Datei herunterladen
IO.File.Copy(f, destFilenameTMP)
If IO.File.Exists(destFilenameTMP) Then IO.File.Delete(f) 'Datei nach erfolgreichem Herunterladen vom Server löschen
'Gültiger Filename
Dim destFilename = VERARBEITUNGS_PFAD & If(IO.File.Exists(VERARBEITUNGS_PFAD & FI.Name), Now.ToString("yyMMdd_HHmmss.fff_"), "") & FI.Name
IO.File.Move(destFilenameTMP, destFilename) 'Datei umbenennen
Dim fi_dest As FileInfo = New FileInfo(destFilename)
ListBox3.Items.Add(frmStartOptions.cut_file(fi_dest.Name)) 'zur Liste hinzufügen
cnt += 1
End If
Next
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return cnt
End Function
@@ -204,7 +235,14 @@ Public Class frmTCNachrichtenVerarbeitung
Return (character = 9 OrElse character = 10 OrElse character = 13 OrElse (character >= 32 AndAlso character <= 55295) OrElse (character >= 57344 AndAlso character <= 65533) OrElse (character >= 65536 AndAlso character <= 1114111))
End Function
Private Function getFilesInOrder() As String()
Dim myDirectory As New IO.DirectoryInfo(VERARBEITUNGS_PFAD)
'Dim myfiles() As String = myDirectory.GetFiles.OrderBy(Function(x) x.LastWriteTime).Select(Function(x) x.FullName).Take(40).ToArray
Dim myfiles() As String = myDirectory.GetFiles.OrderBy(Function(x) x.CreationTime).Select(Function(x) x.FullName).ToArray
' Dim myfiles As FileInfo() = myDirectory.GetFiles().OrderBy(Function(p) p.CreationTime).Select(Function(x) x.FullName).ToArray
Return myfiles
End Function
Sub DatenEinlesen()
@@ -216,57 +254,60 @@ Public Class frmTCNachrichtenVerarbeitung
Exit Sub
End If
For Each d In System.IO.Directory.GetFiles(VERARBEITUNGS_PFAD)
For Each d In getFilesInOrder() 'System.IO.Directory.GetFiles(VERARBEITUNGS_PFAD)
Try
Dateiname = d
cWorker_NCTS.Dateiname = d
If IO.File.Exists(d) Then
Dim found = False
Dim fi As FileInfo = New FileInfo(d)
If Not fi.Name.StartsWith(".") Then
' EDIFACT
' If fi.Extension = ".edi" Then
Dim alreadyMoved = False
If fi.Extension = ".xml" Then
Dim xmlWriterSettings As XmlWriterSettings = New XmlWriterSettings With {.Encoding = System.Text.Encoding.UTF8, .CheckCharacters = True}
' EDIFACT
' If fi.Extension = ".edi" Then
Dim alreadyMoved = False
If fi.Extension = ".xml" Then
Dim xmlWriterSettings As XmlWriterSettings = New XmlWriterSettings With {.Encoding = System.Text.Encoding.UTF8, .CheckCharacters = True}
Dim doc As New XmlDocument()
Dim XML_Code = System.IO.File.ReadAllText(d, System.Text.UTF8Encoding.Default)
Dim doc As New XmlDocument()
Dim XML_Code = System.IO.File.ReadAllText(d, System.Text.UTF8Encoding.Default)
doc.LoadXml(SanitizeXmlString(XML_Code))
Dim VERSION As String = ""
doc.LoadXml(SanitizeXmlString(XML_Code))
Dim VERSION As String = ""
'------------------------------------------------------------------------------------------------------------------------------
' eZOLL
'------------------------------------------------------------------------------------------------------------------------------
'------------------------------------------------------------------------------------------------------------------------------
' eZOLL
'------------------------------------------------------------------------------------------------------------------------------
'------------------------------------------
'------------------ Anmeldung ------------------
'------------------------------------------
'TC: Versandbestätigung
If Not found And cGetMsgType.isTC_Anmeldung(doc) Then
If readTC_Anmeldung(doc, d) <> "" Then found = True
' If bezugsNr <> "" Then addDGVEinarbeitung("NCTS: Versandbestätigung", bezugsNr) : found = True
End If
End If
If True Then
If Not alreadyMoved Then
If found Then
If Not IO.Directory.Exists(ZIEL_PFAD & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") Then IO.Directory.CreateDirectory(ZIEL_PFAD & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\")
frmStartOptions.moveFile(d, ZIEL_PFAD & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\")
Else
frmStartOptions.moveFile(d, ERROR_PFAD)
'------------------------------------------
'------------------ Anmeldung ------------------
'------------------------------------------
'TC: Versandbestätigung
If Not found And cGetMsgType.isTC_Anmeldung(doc) Then
If readTC_Anmeldung(doc, d) <> "" Then found = True
' If bezugsNr <> "" Then addDGVEinarbeitung("NCTS: Versandbestätigung", bezugsNr) : found = True
End If
End If
End If
If True Then
If Not alreadyMoved Then
If found Then
If Not IO.Directory.Exists(ZIEL_PFAD & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\") Then IO.Directory.CreateDirectory(ZIEL_PFAD & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\")
frmStartOptions.moveFile(d, ZIEL_PFAD & Now.Year & "\" & Now.ToString("yyyyMMdd") & "\")
Else
frmStartOptions.moveFile(d, ERROR_PFAD)
End If
End If
Me.Refresh()
If found Then cntDatenEingelesen += 1 Else dsNichtErkannt += 1
End If
Me.Refresh()
If found Then cntDatenEingelesen += 1 Else dsNichtErkannt += 1
End If
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace & vbNewLine & "Datei: " & Dateiname, System.Reflection.MethodInfo.GetCurrentMethod.Name)
@@ -544,8 +585,11 @@ Public Class frmTCNachrichtenVerarbeitung
End Select
'Derzeit nur IMEX
TC.telanm_firma = "IMEX"
TC.telanm_niederlassung = "Sub"
TC.telanm_firma = vifDEC.Mandant_ID.ToUpper '"IMEX"
If TC.telanm_BezugsNr.ToString.StartsWith("5501") Then
TC.telanm_firma = "IMEX" 'VERAG WO
End If
TC.telanm_niederlassung = "SUB"
TC.telanm_Erstellung = Now
TC.telanm_LetzteBearbeitung = Now