You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1520 lines
69 KiB
1520 lines
69 KiB
Imports System.IO.File
|
|
Imports System.Data.SqlClient
|
|
Imports System.Data.SqlTypes
|
|
Imports System.ComponentModel
|
|
Imports System.IO
|
|
Imports System.SystemException
|
|
Imports System.Reflection
|
|
|
|
'''<summary>
|
|
'''Steuermodul für EDKB01
|
|
'''</summary>
|
|
'''<remarks>
|
|
'''Das Module1 ist das Steuermodul für die gesamte EDKB01-Verabeitung.
|
|
'''Folgende Parameter werden als Kommandozeilen-Parameter übergeben:
|
|
'''1: Verzeichnis in dem die Datei Parameters.cfg gespeichert ist
|
|
'''2: Verarbeitungsart (HOST, ZV oder UVM)
|
|
'''3: INITIALLOAD (Nur im Falle einer Initialload-Verarbeitung)
|
|
'''4: Verzeichnis in dem die Initialload-Dateien für die Entsprechende Verarbeitung (vgl. Parameter 2) gespeichert sind$EOL$
|
|
'''(Nur im Falle einer Initialload-Verarbeitung)
|
|
'''</remarks>
|
|
Module Module1
|
|
'Deklarationen
|
|
Dim args As String() = Environment.GetCommandLineArgs()
|
|
Dim initialload As Boolean
|
|
|
|
|
|
Dim hostdata As New edokadb.clsHost_dokument_import()
|
|
Dim zvdata As New edokadb.clsZVBelege_import()
|
|
Dim uvmdata As New edokadb.clsUvm_import()
|
|
Dim bldata As New edokadb.clsEDEX_BL_Hostdokument
|
|
|
|
'1=Host, 2=ZV, 3=UVM
|
|
Dim Verarbeitungsart As Integer = 0
|
|
|
|
|
|
Dim s As String
|
|
Dim zz As Long
|
|
Dim zzz As Long
|
|
Dim zzzz As Long
|
|
Dim log As New clsLog
|
|
Public m_Log As bms.Logging
|
|
Dim Filename As String
|
|
Dim Dokumentid As String
|
|
Dim d1 As DateTime
|
|
Dim d2 As DateTime
|
|
Dim d3 As DateTime
|
|
Dim FileSizeO As Long
|
|
Dim FileSizeD As Long
|
|
Dim TotalImport As Long
|
|
Dim TotalDelete As Long
|
|
Dim TotalDokumente As Long
|
|
Dim TotalDokumenteHost As Long
|
|
Dim TotalDokumenteZV As Long
|
|
Dim TotalDokumenteUVM As Long
|
|
Dim TotalDokumenteBL As Long
|
|
Dim TotalDokumenteAZV As Long
|
|
|
|
Dim InsertCounter As Long = 0
|
|
Dim InsertHost As Integer
|
|
Dim InsertZV As Integer
|
|
Dim InsertUVM As Integer
|
|
Dim InsertBL As Integer
|
|
Dim InsertAZV As Integer
|
|
Dim Ret As String
|
|
Dim db_conn As EDOKA.DB_Connection()
|
|
|
|
Sub Main()
|
|
Try
|
|
Dim m_log1 As New bms.Logging(3, Common.Common.JobType.WatchJob)
|
|
m_Log = m_log1
|
|
m_Log.Start()
|
|
Catch ex As Exception
|
|
WirteLog("BMS-Connection / XML: " + ex.Message, ApplicationPath() + "Error.txt")
|
|
Exit Sub
|
|
End Try
|
|
Try
|
|
If CheckArg() = False Then
|
|
Exit Sub
|
|
End If
|
|
Dim db_conn As New EDOKA.DB_Connection
|
|
Select Case args(2)
|
|
Case "HOST"
|
|
Verarbeitungsart = 1
|
|
log.Startlog(4)
|
|
m_Log.Log("EDKB01: Start COLD-HOST-Import")
|
|
Verarbeiten()
|
|
m_Log.Log("EDKB01: Ende COLD-HOST-Import")
|
|
log.InsertJournale("Ende COLD-HOST-Import")
|
|
log.StopLog(4)
|
|
Case "ZV"
|
|
Verarbeitungsart = 2
|
|
log.Startlog(4)
|
|
m_Log.Log("EDKB01: Start ZV-Import")
|
|
Verarbeiten()
|
|
m_Log.Log("EDKB01: Ende ZV-Import ")
|
|
log.InsertJournale("Ende COLD-ZV-Import")
|
|
log.StopLog(4)
|
|
Case "UVM"
|
|
Verarbeitungsart = 3
|
|
m_Log.Log("EDKB01: Start UVM-Import")
|
|
log.Startlog(4)
|
|
Verarbeiten()
|
|
m_Log.Log("EDKB01: Ende UVM-Import")
|
|
log.InsertJournale("Ende COLD-UVM-Import")
|
|
log.StopLog(4)
|
|
Case "BL"
|
|
Verarbeitungsart = 4
|
|
m_Log.Log("EDKB01: Start Banklagernd-Import")
|
|
log.Startlog(4)
|
|
Verarbeiten()
|
|
m_Log.Log("EDKB01: Ende Banklagernd-Import")
|
|
log.InsertJournale("Ende COLD-Banklagernd-Import")
|
|
log.StopLog(4)
|
|
Case "AZV" 'BUD - 24.07.2006 - Multiwährungsaufträge
|
|
Verarbeitungsart = 5
|
|
m_Log.Log("EDKB01: Start AZV-Import")
|
|
log.Startlog(4)
|
|
Verarbeiten()
|
|
m_Log.Log("EDKB01: Ende AZV-Import")
|
|
log.InsertJournale("Ende AZV-Import")
|
|
log.StopLog(4)
|
|
|
|
'Case "END"
|
|
' log.Startlog(4)
|
|
' m_Log.Log("Start Dateiumbenennen")
|
|
' Ret = Params.Loadparameters
|
|
' Files_Rename(4)
|
|
' m_Log.Log("Ende Dateiumbenennen")
|
|
' log.StopLog(4)
|
|
Case Else
|
|
m_Log.Log("EDKB01: Ungültiger Parameter: " & args(2), Common.Common.JournalEntryType.Error)
|
|
End Select
|
|
m_Log.Ende()
|
|
Catch ex As Exception
|
|
m_Log.Log("EDKB01: Allgemeiner Fehler: " & ex.Message, Common.Common.JournalEntryType.Error)
|
|
m_Log.Ende()
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub korr_zv()
|
|
Console.WriteLine(Now)
|
|
Dim d As New DataTable
|
|
zvdata.cpMainConnectionProvider = conn_zv
|
|
d = korrzv("", "", "", 0, 0)
|
|
Dim zz As Integer = 0
|
|
Dim zzz As Integer = 0
|
|
Dim ii As Integer = 0
|
|
|
|
Dim i As Integer
|
|
i = 100000000
|
|
Dim BETRAG As Double
|
|
For i = 0 To d.Rows.Count - 1
|
|
Try
|
|
zz = zz + 1
|
|
If zz > 9999 Then
|
|
zzz = zzz + 1
|
|
zz = 1
|
|
Console.WriteLine(Trim(Str(ii)) + ": Anzahl: " + Trim(Str(zzz * 10000)) + " " + Now)
|
|
End If
|
|
BETRAG = d.Rows(i).Item("BTBET00") / 100
|
|
korrzv(d.Rows(i).Item("nrdot00"), d.Rows(i).Item("nrdoc00"), d.Rows(i).Item("nrauf00"), BETRAG, 1)
|
|
Catch
|
|
Console.WriteLine("Fehler: " + d.Rows(i).Item("btbet00"))
|
|
m_Log.Log("EDKB01: Fehler: " + d.Rows(i).Item("btbet00"), Common.Common.JournalEntryType.Warning)
|
|
End Try
|
|
Next
|
|
Console.WriteLine(Trim(Str(ii)) + ": " + Now)
|
|
End Sub
|
|
|
|
Private Function korrzv(ByVal nrdot00 As String, ByVal nrdoc00 As String, ByVal nrauf00 As String, ByVal betrag As Double, ByVal fnkt As Integer) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand
|
|
scmCmdToExecute.Connection = conn_zv.scoDBConnection
|
|
scmCmdToExecute.CommandText = "dbo.sp_korr_betrag"
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@nrdot00", SqlDbType.VarChar, 36, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, nrdot00))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@nrdoc00", SqlDbType.VarChar, 36, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, nrdoc00))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@nrauf00", SqlDbType.VarChar, 36, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, nrauf00))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@betrag", SqlDbType.Float, 8, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, betrag))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, fnkt))
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
Dim dtToReturn As DataTable = New DataTable
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.Connection = conn_zv.scoDBConnection
|
|
Try
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
m_Log.Log("EDKB01: Fehler: " & ex.Message, Common.Common.JournalEntryType.Error)
|
|
' Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Return Nothing
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
'''<summary>Die Verarbeitung unterscheidet grundsätzlich zwei Verarbeitungstypen$EOL$
|
|
'''- INITIALLOAD$EOL$
|
|
'''- Tagesbetrieb
|
|
'''</summary>
|
|
'''<remarks>
|
|
'''<b>Initialload</b>$EOL$
|
|
'''Bei der Initialload-Verarbeitung werden Alle Dateien aus dem Verzeichnis, welches als
|
|
'''4-ter Parameter beim Programmaufruf angegeben wurde ausgelesn und verarbeitet.$EOL$$EOL$
|
|
'''<b>Tagesbetrieb</b>$EOL$
|
|
'''Beim Tagesbetrieb werden die gelieferten Dateien ausgelesn und in den entsprechenden
|
|
'''Datenbanken eingefügt.$EOL$
|
|
'''Zusätzlich werden allfällige Dokumente, welche gelöscht werden müssen, aus den
|
|
'''entsprechenden Datenbanken gelöscht. Die zu löschenden Datensätze werden in den
|
|
'''Dateien *.del von AGI-COLD geliefert.
|
|
'''</remarks>
|
|
'''<returns></returns>
|
|
Private Function Verarbeiten() As Boolean
|
|
' Prüfung, ob Initialload
|
|
Try
|
|
If UCase(args(3)) = "INITIALLOAD" Then initialload = True Else initialload = False
|
|
Catch
|
|
End Try
|
|
|
|
'Parameter laden
|
|
Ret = Params.Loadparameters
|
|
If Ret <> "" Then
|
|
m_Log.Log("EDKB01: Fehler: Datei c:\prg\edoka\edkb01\parameters.cfg ist nicht vorhanden oder ungültig" + Ret, Common.Common.JournalEntryType.Error)
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
|
|
'Zähler initialisieren
|
|
zz = 0
|
|
zzz = 0
|
|
zzzz = 0
|
|
|
|
' Initialload durchführen
|
|
If initialload Then
|
|
initialload_verarbeiten(Verarbeitungsart)
|
|
Exit Function
|
|
End If
|
|
|
|
'OK-File überprüfen
|
|
If Not Check_OK_File(Verarbeitungsart) Then
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
Try
|
|
conn_edoka.CloseConnection(True)
|
|
Catch
|
|
End Try
|
|
|
|
Select Case Verarbeitungsart
|
|
Case 1
|
|
'Dokument-Import
|
|
log.InsertJournale("Start Host-Dokumente laden")
|
|
Try
|
|
If Not Daten_Import(Verarbeitungsart) Then
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
Catch ex As Exception
|
|
m_Log.Log("EDKB01: Fehler: Modul1 Verarbeiten: " + ex.Message, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
'Dokumente Löschen
|
|
Try
|
|
If Not Delete_Daten(Verarbeitungsart) Then
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
Catch ex As Exception
|
|
m_Log.Log("EDKB01: Fehler: Modul1 Verarbeiten: " + ex.Message, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
'Bearbeitete Dateien umbenennen
|
|
Files_Rename(Verarbeitungsart)
|
|
Return True
|
|
Case 2
|
|
log.InsertJournale("Start ZV-Dokumente laden")
|
|
'Dokument-Import
|
|
Try
|
|
If Not Daten_Import(Verarbeitungsart) Then
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
Catch ex As Exception
|
|
m_Log.Log("EDKB01: Fehler: Modul1 Verarbeiten: " + ex.Message, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
'Dokumente Löschen
|
|
Try
|
|
If Not Delete_Daten(Verarbeitungsart) Then
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
Catch ex As Exception
|
|
m_Log.Log("EDKB01: Fehler: Modul1 Verarbeiten: " + ex.Message, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
'Bearbeitete Dateien umbenennen
|
|
Files_Rename(Verarbeitungsart)
|
|
Return True
|
|
Case 3
|
|
log.InsertJournale("Start UVM-Dokumente laden")
|
|
'Dokument-Import
|
|
Try
|
|
If Not Daten_Import(Verarbeitungsart) Then
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
Catch ex As Exception
|
|
m_Log.Log("EDKB01: Fehler: Modul1 Verarbeiten: " + ex.Message, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
'Dokumente Löschen
|
|
Try
|
|
If Not Delete_Daten(Verarbeitungsart) Then
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
Catch ex As Exception
|
|
m_Log.Log("EDKB01: Fehler: Modul1 Verarbeiten: " + ex.Message, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
'Bearbeitete Dateien umbenennen
|
|
Files_Rename(Verarbeitungsart)
|
|
Return True
|
|
Case 4
|
|
log.InsertJournale("Start BL-Dokumente laden")
|
|
'Dokument-Import
|
|
Try
|
|
If Not Daten_Import(Verarbeitungsart) Then
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
Catch ex As Exception
|
|
m_Log.Log("EDKB01: Fehler: Modul1 Verarbeiten: " + ex.Message, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
'Dokumente Löschen
|
|
Try
|
|
If Not Delete_Daten(Verarbeitungsart) Then
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
Catch ex As Exception
|
|
m_Log.Log("EDKB01: Fehler: Modul1 Verarbeiten: " + ex.Message, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
'Bearbeitete Dateien umbenennen
|
|
Files_Rename(Verarbeitungsart)
|
|
Return True
|
|
Case 5 'BUD - 24.07.2006
|
|
log.InsertJournale("Start AZV-Dokumente laden")
|
|
'Dokument-Import
|
|
Try
|
|
If Not Daten_Import(Verarbeitungsart) Then
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
Catch ex As Exception
|
|
m_Log.Log("EDKB01: ehler: Modul1 Verarbeiten Case 5: " + ex.Message, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
'Dokumente Löschen
|
|
Try
|
|
If Not Delete_Daten(Verarbeitungsart) Then
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
Catch ex As Exception
|
|
m_Log.Log("EDKB01: ehler: Modul1 Verarbeiten Case 5: " + ex.Message, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
'Bearbeitete Dateien umbenennen
|
|
Files_Rename(Verarbeitungsart)
|
|
Return True
|
|
End Select
|
|
End Function
|
|
|
|
#Region "Plausibilisierungen"
|
|
|
|
'''<summary>Prüfung der Datenanlieferung von AGI-COLD</summary>
|
|
'''<remarks>Abhängig von der Verarbeitungsart (HSOT,ZV, UVM) wird in der Datei
|
|
'''HOSTINDEX.OK folgendes geprüft:$EOL$
|
|
'''Zeile 1: 0 = Datenlieferung OK, ungleich 0 Datenlieferung nicht OK und
|
|
'''Programmabgruch$EOL$
|
|
'''Zeile 2: Anzahl angelieferte Dokumentinformationen für HSOT$EOL$
|
|
'''Zeile 3: Anzahl angelieferte Dokumentinformationen für ZV$EOL$
|
|
'''Zeile 4: Anzahl angelieferte Dokumentinformationen für UVM</remarks>
|
|
'''<param name="verarbeitunsgart">Bestimmt die Verabeitungsart</param>
|
|
'''<set param="verarbeitunsgart" const="" value="HOST">HOST-Verarbeitung</set>
|
|
'''<set param="verarbeitunsgart" const="" value="ZV">ZV-Verarbeitung</set>
|
|
'''<set param="verarbeitunsgart" const="" value="UVM">UVM-Verarbeitung</set>
|
|
'''<returns>True=Prüfung OK$EOL$
|
|
'''False=Prüfung nicht OK</returns>
|
|
Private Function Check_OK_File(ByVal verarbeitunsgart As Integer) As Boolean
|
|
If Not IO.File.Exists(Params.Filepfad + "hostindex.ok") Then
|
|
m_Log.Log("EDKB01: ehler: Datei " + Params.Filepfad + "Hostindex.ok ist nicht vorhanden.", Common.Common.JournalEntryType.Error)
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
Try
|
|
FileOpen(1, Params.Filepfad + "hostindex.ok", OpenMode.Input)
|
|
'Prüfung Returncolde
|
|
s = LineInput(1)
|
|
If s <> "0" Then
|
|
FileClose(1)
|
|
m_Log.Log("EDKB01: ehler: Datei " + Params.Filepfad + "Hostindex.ok beinhaltet einen Wert <> 0", Common.Common.JournalEntryType.Error)
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
'Lesen der zweiten Zeile - Anzahl Dokumente HOST
|
|
Try
|
|
s = LineInput(1)
|
|
TotalDokumenteHost = Val(s)
|
|
Catch
|
|
m_Log.Log("EDKB01: ehler: Datei " + Params.Filepfad + "Hostindex.ok beinhaltet keine Anzahl der gelieferten HOST Dokumente", Common.Common.JournalEntryType.Error)
|
|
Return False
|
|
Exit Function
|
|
End Try
|
|
'Lesen der dritten Zeile - Anzahl Dokumente zv
|
|
Try
|
|
s = LineInput(1)
|
|
TotalDokumenteZV = Val(s)
|
|
Catch
|
|
m_Log.Log("EDKB01: ehler: Datei " + Params.Filepfad + "Hostindex.ok beinhaltet keine Anzahl der gelieferten ZV Dokumente", Common.Common.JournalEntryType.Error)
|
|
Return False
|
|
Exit Function
|
|
End Try
|
|
'Lesen der vierten Zeile - Anzahl Dokumente UVM
|
|
Try
|
|
s = LineInput(1)
|
|
TotalDokumenteUVM = Val(s)
|
|
Catch
|
|
m_Log.Log("EDKB01: ehler: Datei " + Params.Filepfad + "Hostindex.ok beinhaltet keine Anzahl der gelieferten UVM Dokumente", Common.Common.JournalEntryType.Error)
|
|
Return False
|
|
Exit Function
|
|
End Try
|
|
|
|
'Lesen der fünften Zeile - Anzahl Dokumente BL
|
|
Try
|
|
s = LineInput(1)
|
|
TotalDokumenteBL = Val(s)
|
|
Catch
|
|
TotalDokumenteBL = 0
|
|
m_Log.Log("EDKB01: ehler: Datei " + Params.Filepfad + "Hostindex.ok beinhaltet keine Anzahl der gelieferten BL Dokumente", Common.Common.JournalEntryType.Warning)
|
|
End Try
|
|
|
|
'If Verarbeitungsart >= 5 Then
|
|
'Lesen der sechsten Zeile - Anzahl Dokumente azv
|
|
'BUD - 26.07.2006
|
|
Try
|
|
s = LineInput(1)
|
|
TotalDokumenteAZV = Val(s)
|
|
Catch
|
|
If Verarbeitungsart = 5 Then
|
|
m_Log.Log("EDKB01: ehler: Datei " + Params.Filepfad + "Hostindex.ok beinhaltet keine Anzahl der gelieferten AZV Dokumente", Common.Common.JournalEntryType.Error)
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
TotalDokumenteAZV = 0
|
|
m_Log.Log("EDKB01: ehler: Datei " + Params.Filepfad + "Hostindex.ok beinhaltet keine Anzahl der gelieferten AZV Dokumente", Common.Common.JournalEntryType.Warning)
|
|
End Try
|
|
'End If
|
|
|
|
Try 'Sorry - BUD
|
|
FileClose(1)
|
|
Catch
|
|
End Try
|
|
|
|
Catch
|
|
Return False
|
|
Exit Function
|
|
End Try
|
|
Return True
|
|
End Function
|
|
#End Region
|
|
|
|
#Region "Host"
|
|
|
|
'''<summary>Verarbeitung von Initialloads$EOL$
|
|
'''</summary>
|
|
'''<remarks>Je nach Verarbeitungsart wird die entsprechende Datenbankverbindung
|
|
'''geöffnet und anschliessend alle Dateien gem. Kommandozeilen-Parameter 4
|
|
'''sequentiell abgearbeitet.$EOL$
|
|
'''$EOL$
|
|
'''Das Einfügung in die entsprechende Datenbank (HOST, ZV, UVM) wird mit den
|
|
'''Methoden insert_data_host, insert_data_uvm oder insert_data_zv.$EOL$
|
|
'''$EOL$
|
|
'''$EOL$
|
|
'''Nach 10000 verarbeiteten Datensätzen wird ein Journaleintrag über den
|
|
'''Fortschritt der Verarbeitung geschrieben.$EOL$
|
|
'''</remarks>
|
|
'''<param name="verarbeitungsart"></param>
|
|
'''<set param="verarbeitungsart" const="" value="HOST">HOST-Verarbeitung</set>
|
|
'''<set param="verarbeitungsart" const="" value="ZV">ZV-Verarbeitung</set>
|
|
'''<set param="verarbeitungsart" const="" value="UVM">UVM-Verarbeitung</set>
|
|
Private Sub initialload_verarbeiten(ByVal verarbeitungsart As Integer)
|
|
'Initialload-Verarbeitung
|
|
InsertCounter = 0
|
|
d1 = Now
|
|
Dim di As New IO.DirectoryInfo(args(4))
|
|
Dim diar1 As IO.FileInfo() = di.GetFiles()
|
|
Dim dra As IO.FileInfo
|
|
For Each dra In diar1
|
|
Select Case verarbeitungsart
|
|
Case 1
|
|
log.InsertJournale("Start Initialload HOST-Dokumente")
|
|
Globals.conn_edoka.OpenConnection()
|
|
hostdata.cpMainConnectionProvider = Globals.conn_edoka
|
|
Case 2
|
|
log.InsertJournale("Start Initialload ZV-Belege")
|
|
Globals.conn_zv.OpenConnection()
|
|
zvdata.cpMainConnectionProvider = Globals.conn_zv
|
|
Case 3
|
|
log.InsertJournale("Start Initialload UVM-Belege")
|
|
Globals.conn_uvm.OpenConnection()
|
|
uvmdata.cpMainConnectionProvider = Globals.conn_uvm
|
|
Case Else
|
|
End Select
|
|
log.InsertJournale(dra.FullName)
|
|
FileOpen(1, dra.FullName, OpenMode.Input)
|
|
Do While Not EOF(1)
|
|
s = LineInput(1)
|
|
Select Case verarbeitungsart
|
|
Case 1
|
|
insert_data_host(s)
|
|
Case 2
|
|
insert_data_zv(s)
|
|
Case 3
|
|
insert_data_uvm(s)
|
|
End Select
|
|
zz = zz + 1
|
|
If zz > 9999 Then
|
|
zzz = zzz + 1
|
|
zz = 0
|
|
log.InsertJournale(Now + Str(zzz * 10000))
|
|
End If
|
|
Loop
|
|
FileClose(1)
|
|
Select Case verarbeitungsart
|
|
Case 1
|
|
Globals.conn_edoka.CloseConnection(True)
|
|
Case 2
|
|
Globals.conn_zv.CloseConnection(True)
|
|
Case 3
|
|
Globals.conn_uvm.CloseConnection(True)
|
|
End Select
|
|
log.InsertJournale("Ende: " + dra.FullName + ":" + Str(InsertCounter))
|
|
InsertCounter = 0
|
|
log.InsertJournale("Ende " + dra.FullName + ":" + Str((zzz * 10000) + zz))
|
|
zzzz = zzzz + ((zzz * 10000) + zz)
|
|
log.InsertJournale("Total Dokumente:" + Str(zzzz))
|
|
d2 = Now
|
|
log.InsertJournale("Zeit in Minuten: " + Str(DateDiff(DateInterval.Minute, d1, d2)))
|
|
log.InsertJournale("--------------")
|
|
zz = 0
|
|
zzz = 0
|
|
Next
|
|
log.InsertJournale("Ende Initialload - Anzahl Dokumente: " + Str(zzzz))
|
|
d2 = Now
|
|
log.InsertJournale("Zeit in Minuten: " + Str(DateDiff(DateInterval.Minute, d1, d2)))
|
|
Exit Sub
|
|
End Sub
|
|
|
|
'''<summary>Angelieferte Daten verarbeiten$EOL$
|
|
'''</summary>
|
|
'''<remarks>Je nach Verarbeitungsart wird die entsprechende Datenbankverbindung
|
|
'''geöffnet und anschliessend die Dateien abhängig von der Verarbeitungsart
|
|
'''abgearbeitet:$EOL$
|
|
'''$EOL$
|
|
'''Die Input-Dateien sind:$EOL$
|
|
'''HOST: Hostindex.txt$EOL$
|
|
'''ZV. ZVIndex.txt$EOL$
|
|
'''UVM: UVMIndex.txt$EOL$
|
|
'''$EOL$
|
|
'''Das Einfügung in die entsprechende Datenbank (HOST, ZV, UVM) wird mit den
|
|
'''Methoden insert_data_host, insert_data_uvm oder insert_data_zv.$EOL$
|
|
'''$EOL$
|
|
'''$EOL$
|
|
'''Nach 10000 verarbeiteten Datensätzen wird ein Journaleintrag über den
|
|
'''Fortschritt der Verarbeitung geschrieben.$EOL$
|
|
'''</remarks>
|
|
'''<param name="verarbeitungsart"></param>
|
|
'''<set param="verarbeitungsart" const="" value="HOST">HOST-Verarbeitung</set>
|
|
'''<set param="verarbeitungsart" const="" value="ZV">ZV-Verarbeitung</set>
|
|
'''<set param="verarbeitungsart" const="" value="UVM">UVM-Verarbeitung</set>
|
|
Private Function Daten_Import(ByVal verarbeitungsart As Integer) As Boolean
|
|
InsertCounter = 0
|
|
'Prüfung, ob txt-Datei mit HOST-Dokumenten vorhanden ist
|
|
Dim Filename As String = ""
|
|
Select Case verarbeitungsart
|
|
Case 1
|
|
Filename = Params.Filepfad + "Hostindex.txt"
|
|
TotalDokumente = TotalDokumenteHost
|
|
Case 2
|
|
Filename = Params.Filepfad + "ZVindex.txt"
|
|
TotalDokumente = TotalDokumenteZV
|
|
Case 3
|
|
Filename = Params.Filepfad + "UVMindex.txt"
|
|
TotalDokumente = TotalDokumenteUVM
|
|
Case 4
|
|
Filename = Params.Filepfad + "BLindex.txt"
|
|
TotalDokumente = TotalDokumenteBL
|
|
Case 5 'BUD - 24.07.2006
|
|
Filename = Params.Filepfad + "AZVindex.txt"
|
|
TotalDokumente = TotalDokumenteAZV
|
|
End Select
|
|
|
|
If Not IO.File.Exists(Filename) Then
|
|
m_Log.Log("EDKB01: ehler: Datei " + Filename + " ist nicht vorhanden", Common.Common.JournalEntryType.Error)
|
|
Return False
|
|
Exit Function
|
|
End If
|
|
|
|
Select Case verarbeitungsart
|
|
Case 1
|
|
Globals.conn_edoka.OpenConnection()
|
|
hostdata.cpMainConnectionProvider = Globals.conn_edoka
|
|
Case 2
|
|
Globals.conn_zv.OpenConnection()
|
|
zvdata.cpMainConnectionProvider = Globals.conn_zv
|
|
Case 3
|
|
Globals.conn_uvm.OpenConnection()
|
|
uvmdata.cpMainConnectionProvider = Globals.conn_uvm
|
|
Case 4
|
|
Globals.conn_bl.OpenConnection()
|
|
bldata.cpMainConnectionProvider = Globals.conn_bl
|
|
Case 5 'BUD - 24.07.2006
|
|
Globals.conn_zv.OpenConnection()
|
|
zvdata.cpMainConnectionProvider = Globals.conn_zv
|
|
Case Else
|
|
End Select
|
|
|
|
|
|
'Verarbeitung Host-Dokument-Import
|
|
Try
|
|
FileOpen(1, Filename, OpenMode.Input)
|
|
Dim pFile As New System.IO.FileInfo(Filename)
|
|
FileSizeO = pFile.Length
|
|
FileSizeD = 0
|
|
TotalImport = 0
|
|
|
|
Do While Not EOF(1)
|
|
s = LineInput(1)
|
|
FileSizeD = FileSizeD + Len(s) + 2
|
|
Select Case verarbeitungsart
|
|
Case 1
|
|
insert_data_host(s)
|
|
Case 2
|
|
insert_data_zv(s)
|
|
Case 3
|
|
insert_data_uvm(s)
|
|
Case 4
|
|
insert_data_bl(s)
|
|
Case 5 'BUD - 24.07.2006
|
|
insert_data_zv(s)
|
|
End Select
|
|
TotalImport = TotalImport + 1
|
|
zz = zz + 1
|
|
If zz > 9999 Then
|
|
zzz = zzz + 1
|
|
zz = 0
|
|
Console.WriteLine(Now + Str(zzz * 10000))
|
|
m_Log.Log(Now + Str(zzz * 10000), Common.Common.JournalEntryType.Information)
|
|
End If
|
|
Loop
|
|
FileClose(1)
|
|
|
|
Select Case verarbeitungsart
|
|
Case 1
|
|
s = "HOST'"
|
|
InsertHost = InsertCounter
|
|
Case 2
|
|
s = "ZV"
|
|
InsertZV = InsertCounter
|
|
Case 3
|
|
s = "UVM"
|
|
InsertUVM = InsertCounter
|
|
Case 4
|
|
s = "BL"
|
|
InsertBL = InsertCounter
|
|
Case 5 'BUD - 24.07.2006
|
|
s = "AZV"
|
|
InsertAZV = InsertCounter
|
|
End Select
|
|
|
|
Dim Message As String
|
|
If FileSizeO <> FileSizeD Then
|
|
Message = "1: " + s + "-Dateiimport beendet - Anzahl Dokumente: " + Str(TotalImport) + " Anzahl Bytes Original: " + Str(FileSizeO) + " Anzahl Bytes verarbeitet: " + Str(FileSizeD)
|
|
m_Log.Log(Message, Common.Common.JournalEntryType.Error)
|
|
log.InsertJournale(Message)
|
|
Return False
|
|
Else
|
|
If InsertCounter <> TotalDokumente Then
|
|
m_Log.Log("Anzahl Dokumente eingelesen: " + Str(InsertCounter) + vbCrLf + "Anzahl von COLD gemeldet : " + Str(TotalDokumente), Common.Common.JournalEntryType.Information)
|
|
MEssage = "1: " + s + "-Dateiimport fehlerhaft beendet - Anzahl Dokumente: " + Str(InsertCounter) + " Anzahl Bytes Original: " + Str(FileSizeO) + " Anzahl von COLD gemeldet: " + Str(TotalDokumente)
|
|
log.InsertJournale(Message)
|
|
m_Log.Log(Message, Common.Common.JournalEntryType.Error)
|
|
Return False
|
|
End If
|
|
Message = "0: " + s + "-Dateiimport beendet - Anzahl Dokumente: " + Str(TotalImport) + " Verarbeitete Bytes: Input:" + Str(FileSizeO) + " Output:" + Str(FileSizeD)
|
|
log.InsertJournale(Message)
|
|
m_Log.Log(Message, Common.Common.JournalEntryType.Information)
|
|
'Sendmail(Params.MailAdresseOK, 0)
|
|
End If
|
|
Return True
|
|
Catch ex As Exception
|
|
m_Log.Log("Verarbeitung abgebrochen. Fehler bei Import: " + Get_ApplName(verarbeitungsart) + " Originalfile: " + Str(FileSizeO) + " verarbeitet: " + Str(FileSizeD) + vbNewLine + ex.Message + ex.StackTrace, Common.Common.JournalEntryType.Error)
|
|
Return False
|
|
Finally
|
|
End Try
|
|
End Function
|
|
|
|
Private Function Get_ApplName(ByVal verarbeitungsart As Integer) As String
|
|
Select Case verarbeitungsart
|
|
Case 1
|
|
Get_ApplName = "HOST"
|
|
Case 2
|
|
Get_ApplName = "ZV"
|
|
Case 3
|
|
Get_ApplName = "UVM"
|
|
Case 4
|
|
Get_ApplName = "BL"
|
|
Case 5
|
|
Get_ApplName = "AZV"
|
|
Case Else
|
|
Get_ApplName = "-kein ApplName-"
|
|
End Select
|
|
End Function
|
|
|
|
'''<summary>Daten aus den Datenbanken löschen$EOL$
|
|
'''</summary>
|
|
'''<remarks>Je nach Verarbeitungsart wird die entsprechende Datenbankverbindung
|
|
'''geöffnet und anschliessend die Dateien abhängig von der Verarbeitungsart
|
|
'''abgearbeitet:$EOL$
|
|
'''$EOL$
|
|
'''Die Input-Dateien sind:$EOL$
|
|
'''HOST: Hostindex.del$EOL$
|
|
'''ZV. ZVIndex.del$EOL$
|
|
'''UVM: UVMIndex.del$EOL$
|
|
'''$EOL$
|
|
'''Das löschen der Daten erfolgt mittels den Methoden$EOL$
|
|
'''delete_data_host, delete_data_zv oder delete_data_uvm</remarks>
|
|
'''<param name="verarbeitungsart"></param>
|
|
'''<set param="verarbeitungsart" const="" value="HOST">HOST-Verarbeitung</set>
|
|
'''<set param="verarbeitungsart" const="" value="ZV">ZV-Verarbeitung</set>
|
|
'''<set param="verarbeitungsart" const="" value="UVM">UVM-Verarbeitung</set>
|
|
Private Function Delete_Daten(ByVal verarbeitungsart As Integer) As Boolean
|
|
Select Case verarbeitungsart
|
|
Case 1
|
|
log.InsertJournale("Start gelöschte Host-Dokumente")
|
|
Case 2
|
|
log.InsertJournale("Start gelöschte ZV-Dokumente")
|
|
Case 3
|
|
log.InsertJournale("Start gelöschte UVM-Dokumente")
|
|
End Select
|
|
'Prüfung, ob del-Datei mit HOST-Dokumenten vorhanden ist
|
|
TotalDelete = 0
|
|
Dim Filename As String = ""
|
|
Select Case verarbeitungsart
|
|
Case 1
|
|
Filename = Params.Filepfad + "Hostindex.del"
|
|
Case 2
|
|
Filename = Params.Filepfad + "ZVindex.del"
|
|
Case 3
|
|
Filename = Params.Filepfad + "UVMindex.del"
|
|
End Select
|
|
If Not IO.File.Exists(Filename) Then
|
|
Return True
|
|
Exit Function
|
|
log.InsertJournale("Löschen beendet: " & Str(TotalDelete) & " Dokumente gelöscht")
|
|
End If
|
|
Try
|
|
zz = 0
|
|
FileOpen(1, Filename, OpenMode.Input)
|
|
Do While Not EOF(1)
|
|
s = LineInput(1)
|
|
TotalDelete = TotalDelete + 1
|
|
Select Case verarbeitungsart
|
|
Case 1
|
|
delete_data_host(s)
|
|
Case 2
|
|
delete_data_zv(s)
|
|
Case 3
|
|
delete_data_uvm(s)
|
|
End Select
|
|
delete_data_host(s)
|
|
zz = zz + 1
|
|
If zz > 9999 Then
|
|
zzz = zzz + 1
|
|
zz = 0
|
|
Console.WriteLine(Now + Str(zzz * 10000))
|
|
End If
|
|
Loop
|
|
FileClose(1)
|
|
log.InsertJournale("Löschen beendet: " & Str(TotalDelete) & " Dokumente gelöscht")
|
|
m_Log.Log("Löschen beendet: " & Str(TotalDelete) & " Dokumente gelöscht", Common.Common.JournalEntryType.Information)
|
|
Return True
|
|
Catch
|
|
m_Log.Log("EDKB01: ehler Anzahl Dateien eingelesen und gelöscht: " + Str(TotalDelete), Common.Common.JournalEntryType.Error)
|
|
Return False
|
|
End Try
|
|
End Function
|
|
|
|
#Region "Host"
|
|
'''<summary>Daten in die Tabelle EDOKA_HOST.dbo.host_dokument_Import
|
|
'''einfügen</summary>
|
|
'''<remarks>Die zu verarbeitende Zeile (Parameter s) wird mittels Trennzeichen "}"
|
|
'''aufgesplittet, damit die einzelnen Attributwerte ausgelesen werden können.$EOL$
|
|
'''$EOL$
|
|
'''Anschliessend werden die Werte den einzelenen Datenbankfeldern zugewiesen und
|
|
'''der Datensatz in die Datenbank eingefügt.</remarks>
|
|
'''<param name="s"></param>
|
|
Private Sub insert_data_host(ByVal s As String)
|
|
'Daten der Text-Datei aufsplitten und in die Datenbank einfügen
|
|
Dim splits() As String
|
|
splits = Split(s, "{", -1, CompareMethod.Text)
|
|
|
|
|
|
'|************************************************************************************************************************************
|
|
'| Neues Index-File
|
|
|
|
Try
|
|
hostdata.sMailingProduct = New SqlString(Trim(CType(sstring(splits(1)), String))) ' => Neu (Mapping)
|
|
hostdata.sMailingProductBezeichnung = New SqlString(Trim(CType(sstring(splits(2)), String))) ' => Neu
|
|
hostdata.sPartnernr_inhaber = New SqlString(Trim(CType(sstring(splits(3)), String)))
|
|
hostdata.sPartnernr_zusteller = New SqlString(Trim(CType(sstring(splits(4)), String)))
|
|
hostdata.sVvextern1 = New SqlString(Trim(CType(sstring(splits(5)), String)))
|
|
hostdata.sVvextern2 = New SqlString(Trim(CType(sstring(splits(6)), String)))
|
|
hostdata.sPartnername_inhaber = New SqlString(Trim(CType(sstring(splits(7)), String)))
|
|
hostdata.sPartnername_zusteller = New SqlString(Trim(CType(sstring(splits(8)), String)))
|
|
' Valutadatum = Erstellungsdatum
|
|
hostdata.sValutadatum = New SqlString(CType(Format(CDate(Trim(sstring(splits(9)))), "yyyyMMdd"), String))
|
|
' Valutadatum1 = Valutadatum
|
|
hostdata.sValutadatum1 = New SqlString(CType(Format(CDate(Trim(sstring(splits(10)))), "yyyyMMdd"), String))
|
|
hostdata.sValorennr = New SqlString(Trim(CType(sstring(splits(11)), String)))
|
|
hostdata.sEx = New SqlString(Trim(CType(sstring(splits(12)), String)))
|
|
hostdata.sDokumentid = New SqlString(Trim(CType(sstring(splits(13)), String)))
|
|
hostdata.sAnzahlseiten = New SqlString(Trim(CType(sstring(splits(14)), String)))
|
|
hostdata.sNachvollziehbarkeit = New SqlString(Trim(CType(sstring(splits(15)), String)))
|
|
hostdata.sMetatype = New SqlString(Trim(CType(sstring(splits(16)), String))) ' => Neu
|
|
hostdata.sOrdertype1 = New SqlString(Trim(CType(sstring(splits(17)), String))) ' => Neu
|
|
hostdata.sTransactnr = New SqlString(Trim(CType(sstring(splits(18)), String))) ' => Neu
|
|
hostdata.sManr = New SqlString(Trim(CType(sstring(splits(19)), String))) ' => Neu
|
|
hostdata.sBetreffzeile = New SqlString(Trim(CType(sstring(splits(20)), String))) ' => Wurde bis jetzt nicht angezeit in EDOKA
|
|
hostdata.sXomaDocID = New SqlString(Trim(CType(sstring(splits(21)), String))) ' => Neu
|
|
hostdata.sArchivdatum = New SqlString(Trim(CType(sstring(splits(22)), String)))
|
|
hostdata.sLoadid = New SqlString(Trim(CType(sstring(splits(23)), String)))
|
|
|
|
'Alte Felder nicht mehr im neuen Index-File...
|
|
hostdata.sReferenzzeile1 = New SqlString("")
|
|
hostdata.sReferenzzeile2 = New SqlString("")
|
|
hostdata.sStandamdatum = New SqlString("")
|
|
|
|
|
|
hostdata.sDokumenttypnr = hostdata.sMailingProduct
|
|
|
|
Catch ex As Exception
|
|
|
|
m_Log.Log(ex.Message, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
'| Ende neues Index-File
|
|
'|************************************************************************************************************************************
|
|
|
|
'hostdata.sDokumenttypnr = New SqlString(CType(sstring(splits(1)), String))
|
|
'hostdata.sPartnernr_inhaber = New SqlString(CType(sstring(splits(3)), String))
|
|
'hostdata.sPartnernr_zusteller = New SqlString(CType(sstring(splits(4)), String))
|
|
'hostdata.sVvextern1 = New SqlString(CType(sstring(splits(5)), String))
|
|
'hostdata.sVvextern2 = New SqlString(CType(sstring(splits(6)), String))
|
|
'hostdata.sPartnername_inhaber = New SqlString(CType(sstring(splits(7)), String))
|
|
'hostdata.sPartnername_zusteller = New SqlString(CType(sstring(splits(8)), String))
|
|
'hostdata.sReferenzzeile1 = New SqlString(CType(sstring(splits(9)), String))
|
|
'hostdata.sReferenzzeile2 = New SqlString(CType(sstring(splits(10)), String))
|
|
'hostdata.sValutadatum = New SqlString(CType(sstring(splits(11)), String))
|
|
'hostdata.sValutadatum1 = New SqlString(CType(sstring(splits(12)), String))
|
|
'hostdata.sStandamdatum = New SqlString(CType(sstring(splits(13)), String))
|
|
|
|
Try
|
|
Dim tmpvalor As String = ""
|
|
Dim xvalor As String = ""
|
|
Dim xisin As String = ""
|
|
Dim x As String = ""
|
|
hostdata.sValorennr = New SqlString(CType("", String))
|
|
hostdata.sIsinnr = New SqlString(CType("", String))
|
|
tmpvalor = sstring(splits(11))
|
|
If tmpvalor.Length < 12 Then
|
|
hostdata.sValorennr = New SqlString(CType(tmpvalor, String))
|
|
Else
|
|
xvalor = Left(tmpvalor, Len(tmpvalor) - 12)
|
|
xisin = Right(tmpvalor, 12)
|
|
x = Left(xisin, 1)
|
|
If x <> "1" And x <> "2" And x <> "3" And x <> "4" And x <> "5" And x <> "6" And x <> "7" And x <> "8" And x <> "9" And x <> "0" Then
|
|
hostdata.sValorennr = New SqlString(CType(xvalor, String))
|
|
hostdata.sIsinnr = New SqlString(CType(xisin, String))
|
|
Else
|
|
hostdata.sValorennr = New SqlString(CType(tmpvalor, String))
|
|
End If
|
|
End If
|
|
Catch
|
|
hostdata.sValorennr = New SqlString(CType(sstring(splits(11)), String))
|
|
End Try
|
|
|
|
|
|
|
|
hostdata.daInserttimestamp = New SqlDateTime(CType(Now, DateTime))
|
|
Dokumentid = hostdata.sDokumentid.Value & " Partner: " & hostdata.sPartnername_inhaber.Value
|
|
|
|
Try
|
|
hostdata.Insert()
|
|
InsertCounter = InsertCounter + 1
|
|
update_hostdokument()
|
|
Catch ex As Exception
|
|
m_Log.Log("HOST Import: " & ex.Message, Common.Common.JournalEntryType.Error)
|
|
m_Log.Log("HOST_Import: " & ex.Message & " Dokumentid: " & Dokumentid, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
'Console.WriteLine(hostdata.sValorennr.Value + " " + hostdata.sIsinnr.Value)
|
|
End Sub
|
|
|
|
'''<summary>Nachführen der Tabelle EDOKA_HOST.dbo._HOSTdokument</summary>
|
|
'''<remarks>Diese Funktion ergänzt die Tabelle EDOKA_HOST.dbo._HOSTDokument mit den
|
|
'''zuvor eingefügten Daten.$EOL$
|
|
'''$EOL$
|
|
'''Ist in der Tabelle bereits ein Datensatz vorhanden (Partnernr_Inhaber,
|
|
'''Dokumenttypnr), werden nunr die Datumsfelder (Valuta-Min/Max und
|
|
'''Archivdatum-Min/Max) ergänzt.$EOL$
|
|
'''$EOL$
|
|
'''Ist noch kein Datensatz für den Partner und Dokumenttyp vorhanden, wird ein
|
|
'''neuer Datensatz erstellt.</remarks>
|
|
Private Sub update_hostdokument()
|
|
Dim hs As New edokadb.cls_host_dokument
|
|
Dim ts As DataTable
|
|
Dim upd As Boolean = False
|
|
hs.cpMainConnectionProvider = Globals.conn_edoka
|
|
hs.sPartnernr_inhaber = New SqlString(CType(hostdata.sPartnernr_inhaber.Value, String))
|
|
hs.sDokumenttypnr = New SqlString(CType(hostdata.sDokumenttypnr.Value, String))
|
|
ts = hs.SelectOne
|
|
If ts.Rows.Count > 0 Then
|
|
If hs.sDatumbis.Value < hostdata.sValutadatum.Value Then
|
|
hs.sDatumbis = New SqlString(CType(hostdata.sValutadatum1.Value, String))
|
|
upd = True
|
|
End If
|
|
If hs.sDatumvon.Value > hostdata.sValutadatum.Value Then
|
|
hs.sDatumvon = New SqlString(CType(hostdata.sValutadatum.Value, String))
|
|
upd = True
|
|
End If
|
|
If hs.sDatumbis1.Value < hostdata.sValutadatum1.Value Then
|
|
hs.sDatumbis1 = New SqlString(CType(hostdata.sValutadatum1.Value, String))
|
|
upd = True
|
|
End If
|
|
If hs.sDatumvon1.Value > hostdata.sValutadatum1.Value Then
|
|
hs.sDatumvon1 = New SqlString(CType(hostdata.sValutadatum1.Value, String))
|
|
upd = True
|
|
End If
|
|
If upd Then
|
|
hs.Update()
|
|
End If
|
|
Else
|
|
hs.sPartnernr_inhaber = New SqlString(CType(hostdata.sPartnernr_inhaber.Value, String))
|
|
hs.sDokumenttypnr = New SqlString(CType(hostdata.sDokumenttypnr.Value, String))
|
|
hs.sDatumbis = New SqlString(CType(hostdata.sValutadatum.Value, String))
|
|
hs.sDatumvon = New SqlString(CType(hostdata.sValutadatum.Value, String))
|
|
hs.sDatumbis1 = New SqlString(CType(hostdata.sValutadatum1.Value, String))
|
|
hs.sDatumvon1 = New SqlString(CType(hostdata.sValutadatum1.Value, String))
|
|
hs.Insert()
|
|
End If
|
|
End Sub
|
|
|
|
'''<summary>Löschen eines Datensatzes aus der Tabelle
|
|
'''EODKA_HOST.dbo.Host_Dokument_Data</summary>
|
|
'''<remarks>Diese Methode löscht einen Datensatz aus dem
|
|
'''HOST-Datenbestand.</remarks>
|
|
'''<param name="s"></param>
|
|
'''<set param="s" const="" value="S">Dokumentid</set>
|
|
Private Sub delete_data_host(ByVal s As String)
|
|
'Löschen von Host-Dokumenten
|
|
Try
|
|
hostdata.sDokumentid = New SqlString(s)
|
|
hostdata.SelectOne()
|
|
hostdata.Delete()
|
|
Catch
|
|
End Try
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "ZV"
|
|
'''<summary>Daten in die Tabelle EDOKA_ZV.dbo.ZVBelege_Import einfügen</summary>
|
|
'''<remarks>Die zu verarbeitende Zeile (Parameter s) wird mittels Trennzeichen "}"
|
|
'''aufgesplittet, damit die einzelnen Attributwerte ausgelesen werden können.$EOL$
|
|
'''$EOL$
|
|
'''Anschliessend werden die Werte den einzelenen Datenbankfeldern zugewiesen und
|
|
'''der Datensatz in die Datenbank eingefügt.</remarks>
|
|
'''<param name="s"></param>
|
|
Private Sub insert_data_zv(ByVal s As String)
|
|
Dim splits() As String
|
|
splits = Split(s, "{", -1, CompareMethod.Text)
|
|
zvdata.sNRDOT00 = New SqlString(CType(sstring(splits(1)), String))
|
|
zvdata.sBEEAD00 = New SqlString(CType(sstring(splits(2)), String))
|
|
zvdata.sCDVARC00 = New SqlString(CType(sstring(splits(3)), String))
|
|
zvdata.sNRREF00 = New SqlString(CType(sstring(splits(4)), String))
|
|
zvdata.sCDZAH00 = New SqlString(CType(sstring(splits(5)), String))
|
|
zvdata.sNRPCK00 = New SqlString(CType(sstring(splits(6)), String))
|
|
zvdata.sNRBCL00 = New SqlString(CType(sstring(splits(7)), String))
|
|
zvdata.sNEVVG01 = New SqlString(CType(sstring(splits(8)), String))
|
|
zvdata.sNRDOC00 = New SqlString(CType(sstring(splits(9)), String))
|
|
zvdata.sBESAD00 = New SqlString(CType(sstring(splits(10)), String))
|
|
zvdata.sDMVAL00 = New SqlString(CType(sstring(splits(11)), String))
|
|
zvdata.sCDWAEAI = New SqlString(CType(sstring(splits(12)), String))
|
|
zvdata.sBTBET00 = New SqlString(CType(sstring(splits(13)), String))
|
|
'Hutter 20040927
|
|
If sstring(splits(13)) = "" Then
|
|
zvdata.fBetrag = New SqlDouble(CType(0.0, Double))
|
|
Else
|
|
Dim x As Double
|
|
Try
|
|
x = Val(sstring(splits(13)))
|
|
x = x / 100
|
|
zvdata.fBetrag = New SqlDouble(CType(x, Double))
|
|
Catch
|
|
x = 0.0
|
|
zvdata.fBetrag = New SqlDouble(CType(x, Double))
|
|
End Try
|
|
End If
|
|
|
|
If sstring(splits(11)) = "" Then
|
|
zvdata.daValdat = New SqlDateTime(CType(sstring(splits(19)), DateTime))
|
|
Else
|
|
zvdata.daValdat = New SqlDateTime(CType(sstring(splits(11)), DateTime))
|
|
End If
|
|
|
|
'zvdata.sNRPAR00 = New SqlString(CType(get_nrpar00_from_vv(sstring(splits(16))), String))
|
|
|
|
'Anpassungen MNK - START
|
|
Dim tmpPartnerNr As String
|
|
tmpPartnerNr = sstring(splits(14))
|
|
While Len(tmpPartnerNr) < 9
|
|
tmpPartnerNr = "0" + tmpPartnerNr
|
|
End While
|
|
zvdata.sNRPAR00 = New SqlString(CType(tmpPartnerNr, String))
|
|
'Anpassungen MNK - ENDE
|
|
|
|
zvdata.sNEVVG02 = New SqlString(CType(sstring(splits(15)), String))
|
|
zvdata.sNEVVG00 = New SqlString(CType(sstring(splits(16)), String))
|
|
zvdata.sNRPOS00 = New SqlString(CType(sstring(splits(17)), String))
|
|
zvdata.sNRAUF00 = New SqlString(CType(sstring(splits(18)), String))
|
|
zvdata.sDMARC00 = New SqlString(CType(sstring(splits(19)), String))
|
|
zvdata.daInsertTimestamp = New SqlDateTime(CType(Now, DateTime))
|
|
Try
|
|
zvdata.Insert()
|
|
InsertCounter = InsertCounter + 1
|
|
Catch ex As Exception
|
|
log.InsertJournale("insert_data_zv: " & ex.Message & " Dokumentid: " & Dokumentid)
|
|
End Try
|
|
End Sub
|
|
|
|
'''<summary>Partnernr für ZV-Belege aus dem EDOKA-Bestand auslesen</summary>
|
|
'''<remarks>Im angelieferten ZV-Bestand sind keine Partnernr-vorhanden. Dazu muss
|
|
'''mit der angelieferten VVNr auf die Tabelle EDOKA.dbo.vv zugegriffen werden,
|
|
'''damit die Partnernr ausgelesen und dem Dokument zugewiesen werden kann.$EOL$
|
|
'''$EOL$
|
|
'''</remarks>
|
|
'''<param name="vvnr"></param>
|
|
'''<set param="vvnr" const="" value="VV-Nr">VVNr des Datensatzes</set>
|
|
Private Function get_nrpar00_from_vv(ByVal vvnr As String) As String
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand
|
|
scmCmdToExecute.CommandText = "dbo.sp_get_nrpar00"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@nevvg00", SqlDbType.VarChar, 16, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, vvnr))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@nrpar00", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
scmCmdToExecute.Connection = Globals.conn_zv.scoDBConnection
|
|
'Try
|
|
' conn_edoka.OpenConnection()
|
|
'Catch
|
|
'End Try
|
|
Try
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
s = scmCmdToExecute.Parameters("@nrpar00").Value
|
|
s = Trim(s)
|
|
If s = "0" Then
|
|
Return ""
|
|
Else
|
|
'While Len(s) < 8
|
|
'Korrektur MNK -> Anzeige in Trefferliste klappt nicht mehr
|
|
While Len(s) < 9
|
|
s = "0" + s
|
|
End While
|
|
Return s
|
|
End If
|
|
Catch ex As Exception
|
|
Return ""
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
'conn_edoka.CloseConnection(True)
|
|
End Try
|
|
End Function
|
|
|
|
'''<summary>Löschen eines Datensatzes aus der Tabelle
|
|
'''EODKA_ZV.dbo.zvbelege_data</summary>
|
|
'''<remarks>Diese Methode löscht einen Datensatz aus dem ZV-Bestand</remarks>
|
|
'''<param name="s"></param>
|
|
'''<set param="s" const="" value="S">Dokumentid</set>
|
|
Private Sub delete_data_zv(ByVal s As String)
|
|
'Löschen von Host-Dokumenten
|
|
Try
|
|
zvdata.sNRDOC00 = New SqlString(s)
|
|
zvdata.SelectOne()
|
|
zvdata.Delete()
|
|
Catch
|
|
End Try
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "UVM"
|
|
'''<summary>Daten in die Tabelle EDOKA_UVM.dbo.UVMBelege_Import einfügen</summary>
|
|
'''<remarks>Die zu verarbeitende Zeile (Parameter s) wird mittels Trennzeichen "}"
|
|
'''aufgesplittet, damit die einzelnen Attributwerte ausgelesen werden können.$EOL$
|
|
'''$EOL$
|
|
'''Anschliessend werden die Werte den einzelenen Datenbankfeldern zugewiesen und
|
|
'''der Datensatz in die Datenbank eingefügt.</remarks>
|
|
'''<param name="s"></param>
|
|
Private Sub insert_data_uvm(ByVal s As String)
|
|
Dim splits() As String
|
|
splits = Split(s, "{", -1, CompareMethod.Text)
|
|
uvmdata.sNRDOT00 = New SqlString(CType(sstring(splits(1)), String))
|
|
uvmdata.sNRDOC00 = New SqlString(CType(sstring(splits(2)), String))
|
|
uvmdata.sNRPAR00 = New SqlString(CType(sstring(splits(3)), String))
|
|
uvmdata.sNRAUF00 = New SqlString(CType(sstring(splits(4)), String))
|
|
uvmdata.sDMERS00 = New SqlString(CType(sstring(splits(5)), String))
|
|
uvmdata.sDMARC00 = New SqlString(CType(sstring(splits(6)), String))
|
|
uvmdata.daInserttimestamp = New SqlDateTime(CType(Now, DateTime))
|
|
Try
|
|
uvmdata.Insert()
|
|
InsertCounter = InsertCounter + 1
|
|
Catch ex As Exception
|
|
log.InsertJournale("UVM_Import: " & ex.Message & " Dokumentid: " & Dokumentid)
|
|
End Try
|
|
End Sub
|
|
|
|
'''<summary>Löschen eines Datensatzes aus der Tabelle
|
|
'''EODKA_UVM.dbo.uvmbelege_data</summary>
|
|
'''<remarks>Diese Methode löscht einen Datensatz aus dem UVM-Bestand</remarks>
|
|
'''<param name="s"></param>
|
|
'''<set param="s" const="" value="S">Dokumentid</set>
|
|
Private Sub delete_data_uvm(ByVal s As String)
|
|
'Löschen von Host-Dokumenten
|
|
Try
|
|
uvmdata.sNRDOC00 = New SqlString(s)
|
|
zvdata.SelectOne()
|
|
zvdata.Delete()
|
|
Catch
|
|
End Try
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
|
|
#Region "BL"
|
|
Private Sub insert_data_bl(ByVal s As String)
|
|
'Daten der Text-Datei aufsplitten und in die Datenbank einfügen
|
|
Dim splits() As String
|
|
splits = Split(s, "{", -1, CompareMethod.Text)
|
|
'bldata.sPartnernr_inhaber = New SqlString(CType(sstring(splits(1)), String))
|
|
'bldata.sPartnername_inhaber = New SqlString(CType(sstring(splits(2)), String))
|
|
''DOKUMENBEZEICHNUNG EDOKA 3
|
|
'bldata.sDokumentid = New SqlString(CType(sstring(splits(4)), String))
|
|
''ARCHIVDATUM 5
|
|
'' Erstellungsdatum 6
|
|
'bldata.sDokumenttypnr = New SqlString(CType(sstring(splits(7)), String))
|
|
'' MailingProdukt Bezeichnung 8
|
|
'' MailingID 9
|
|
'' MetaTyp 10 (NEU)
|
|
'' OrderType 11 (Neu)
|
|
''Transactnr 12 (Neu)
|
|
''Dokumentstatus 13 (NEU)
|
|
|
|
''bldata.sStandamdatum = New SqlString(CType(sstring(splits(1)), String))
|
|
''bldata.sValutadatum = New SqlString(CType(sstring(splits(1)), String))
|
|
|
|
'bldata.sLoadid = New SqlString(CType(sstring(splits(8)), String))
|
|
bldata.sValutadatum = New SqlString(CType(Format(CDate(Trim(sstring(splits(1)))), "yyyyMMdd"), String))
|
|
bldata.sStandamdatum = New SqlString(CType(Format(CDate(Trim(sstring(splits(1)))), "yyyyMMdd"), String))
|
|
bldata.sPartnernr_inhaber = New SqlString(CType(Trim(sstring(splits(2))), String))
|
|
bldata.sPartnername_inhaber = New SqlString(CType(Trim(sstring(splits(3))), String))
|
|
bldata.sMailingProductID = New SqlString(CType(Trim(sstring(splits(4))), String))
|
|
bldata.sMailingProductBezeichnung = New SqlString(CType(Trim(sstring(splits(5))), String))
|
|
bldata.sDokumentid = New SqlString(CType(Trim(sstring(splits(6))), String))
|
|
bldata.sMetaType = New SqlString(CType(Trim(sstring(splits(7))), String))
|
|
bldata.sOrderType = New SqlString(CType(Trim(sstring(splits(8))), String))
|
|
bldata.sTransactnr = New SqlString(CType(Trim(sstring(splits(9))), String))
|
|
|
|
bldata.iBl_status = New SqlInt32(CType(0, Int32))
|
|
bldata.sLoadid = New SqlString(CType(Trim(sstring(splits(11))), String))
|
|
bldata.daInserttimestamp = New SqlDateTime(CType(Now, DateTime))
|
|
Try
|
|
bldata.Insert()
|
|
'check VI
|
|
Dim manr As Integer
|
|
manr = check_Vi(bldata.sPartnernr_inhaber.Value)
|
|
If manr > 0 Then
|
|
Send_KubeMail(manr, bldata.sDokumentid.Value)
|
|
End If
|
|
InsertCounter = InsertCounter + 1
|
|
Catch ex As Exception
|
|
log.InsertJournale("BL-Import: " & ex.Message & " Dokumentid: " & Dokumentid)
|
|
Console.WriteLine("BL-Import: " & ex.Message & " Dokumentid: " & Dokumentid)
|
|
End Try 'Console.WriteLine(hostdata.sValorennr.Value + " " + hostdata.sIsinnr.Value)
|
|
End Sub
|
|
|
|
Private Function check_Vi(ByVal nrpar00 As Integer) As Integer
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand
|
|
scmCmdToExecute.Connection = conn_bl.scoDBConnection
|
|
scmCmdToExecute.CommandText = "dbo.sp_edex_bl_check_vipartner"
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@nrPAR00", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, nrpar00))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@OK", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@MANR", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
Dim dtToReturn As DataTable = New DataTable
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
Try
|
|
sdaAdapter.Fill(dtToReturn)
|
|
If scmCmdToExecute.Parameters("@ok").Value = 0 Then
|
|
Return scmCmdToExecute.Parameters("@manr").Value
|
|
Else
|
|
Return 0
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message)
|
|
' Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Return 0
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Private Function Send_KubeMail(ByVal empf As Integer, ByVal dokumentid As String) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand
|
|
scmCmdToExecute.CommandText = "dbo.SP_edex_bl_hdmail"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
Dim dtToReturn As DataTable = New DataTable
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.Connection = Globals.conn_bl.scoDBConnection
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@empfaenger", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, empf))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
' // some error occured. Bubble it to caller and encapsulate Exception object
|
|
Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
|
|
|
|
#End Region
|
|
|
|
|
|
#Region "Tools"
|
|
|
|
Public Sub renamefile(ByVal filename As String, ByVal NEWFILENAME As String)
|
|
'Verarbeitete Datein umbenennen
|
|
Try
|
|
FileSystem.Rename(filename, NEWFILENAME)
|
|
log.InsertJournale("EDOKA-Host-Dokumente: File umbenannt: " & filename & " - " & NEWFILENAME)
|
|
|
|
Catch ex As Exception
|
|
m_Log.Log("EDKB01: ehler: " & ex.Message, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Function sstring(ByVal s As String) As String
|
|
'String auseinander nehmen
|
|
Dim x As String
|
|
x = s
|
|
If Left(x, 1) = """" Then x = Right(s, Len(x) - 1)
|
|
While Right(x, 1) <> "}"
|
|
x = Left(x, Len(x) - 1)
|
|
End While
|
|
x = Left(x, Len(x) - 1)
|
|
If Right(x, 1) = """" Then x = Left(x, Len(x) - 1)
|
|
sstring = Trim(x)
|
|
End Function
|
|
|
|
Private Function sstring1(ByVal s As String) As String
|
|
'String auseinander nehmen
|
|
Dim x As String
|
|
x = s
|
|
If Left(x, 1) = """" Then x = Right(s, Len(x) - 1)
|
|
While Right(x, 1) <> "}"
|
|
x = Left(x, Len(x) - 1)
|
|
End While
|
|
x = Left(x, Len(x) - 1)
|
|
If Right(x, 1) = """" Then x = Left(x, Len(x) - 1)
|
|
sstring1 = Trim(x)
|
|
|
|
End Function
|
|
|
|
Private Sub Files_Rename(ByVal verArbeitungsArtNr As Integer)
|
|
Dim X As String
|
|
X = Format(Now, "yyyyMMddHHmmss")
|
|
Select Case verArbeitungsArtNr
|
|
Case 1
|
|
Try
|
|
renamefile(Params.Filepfad + "hostindex.txt", Params.Filepfad + X + "_hostindex.txt")
|
|
Catch
|
|
End Try
|
|
Case 2
|
|
Try
|
|
renamefile(Params.Filepfad + "zvindex.txt", Params.Filepfad + X + "_zvindex.txt")
|
|
Catch
|
|
End Try
|
|
Case 3
|
|
Try
|
|
renamefile(Params.Filepfad + "uvmindex.txt", Params.Filepfad + X + "_uvmindex.txt")
|
|
Catch
|
|
End Try
|
|
Case 4
|
|
Try
|
|
renamefile(Params.Filepfad + "BLindex.txt", Params.Filepfad + X + "_blindex.txt")
|
|
Catch
|
|
End Try
|
|
Case 5
|
|
Try
|
|
renamefile(Params.Filepfad + "azvindex.txt", Params.Filepfad + X + "_azvindex.txt")
|
|
Catch
|
|
End Try
|
|
Case 6
|
|
Try
|
|
renamefile(Params.Filepfad + "hostindex.ok", Params.Filepfad + X + "_hostindex.ok")
|
|
Catch
|
|
End Try
|
|
End Select
|
|
End Sub
|
|
|
|
Public Function Sendmail(ByVal email As String, ByVal msg As Integer) As Boolean
|
|
'Mails im Fehler- bzw. im OK-Fall versenden
|
|
Dim meldung As String = ""
|
|
Dim betreff As String = ""
|
|
Dim m_common As New Common.Common
|
|
Select Case msg
|
|
Case 0
|
|
betreff = "EDKB01 - Return 0: Verarbeitung ordnungsgemäss durchgeführt - " + Format(Now, "yyyyMMddHHmmss")
|
|
meldung = "Anzahl Dateien eingelesen und verarbeitet: " + Str(TotalImport) + vbCrLf + _
|
|
"Anzahl Dateien eingelesen und gelöscht : " + Str(TotalDelete) + vbCrLf + vbCrLf + _
|
|
"Dieses Mail wurde durch den Hob EDKB01 ausgelöst" + vbCrLf + _
|
|
"------------------------------------------------"
|
|
End Select
|
|
m_Log.Log("Mail: " + betreff, Common.Common.JournalEntryType.Information)
|
|
m_Log.Log("Mail: " + meldung, Common.Common.JournalEntryType.Information)
|
|
Try
|
|
m_common.SendMail(email, betreff, meldung)
|
|
Sendmail = True
|
|
Catch ex As Exception
|
|
Sendmail = False
|
|
m_Log.Log("EDKB01: ehler: Sendmail: " + ex.Message, Common.Common.JournalEntryType.Error)
|
|
End Try
|
|
End Function
|
|
|
|
'Public Function Sendmail(ByVal email As String, ByVal msg As Integer) As Boolean
|
|
' 'Mails im Fehler- bzw. im OK-Fall versenden
|
|
' Dim meldung As String
|
|
' Dim betreff As String
|
|
' Select Case msg
|
|
' Case -1
|
|
' betreff = "EDKB01 - Return 16: Fehler Datei parameters.cfg ist nicht vorhanden oder fehlerhaft / " + Format(Now, "yyyyMMddHHmmss")
|
|
' meldung = "Die Verarbeitung EDKB01 wurde nicht ordnungsgemäss durchgeführt:" + vbCrLf + vbCrLf + _
|
|
' "Fehler: Datei c:\prg\edoka\edkb01\parameters.cfg ist nicht vorhanden oder ungültig" + vbCrLf + vbCrLf + _
|
|
' "Dieses Mail wurde durch den Job EDKB01 ausgelöst" + vbCrLf + _
|
|
' "------------------------------------------------"
|
|
' Case 0
|
|
' betreff = "EDKB01 - Return 16: Fehler Datei HostIndex.ok - nîcht vorhanden / " + Format(Now, "yyyyMMddHHmmss")
|
|
' meldung = "Die Verarbeitung EDKB01 wurde nicht ordnungsgemäss durchgeführt:" + vbCrLf + vbCrLf + _
|
|
' "Fehler: Datei " + Params.Filepfad + "Hostindex.ok ist nicht vorhanden." + vbCrLf + vbCrLf + _
|
|
' "Dieses Mail wurde durch den Job EDKB01 ausgelöst" + vbCrLf + _
|
|
' "------------------------------------------------"
|
|
|
|
' Case 1
|
|
' betreff = "EDKB01 - Return 16: Fehler Datei HostIndex.ok - Wert <> 0 / " + Format(Now, "yyyyMMddHHmmss")
|
|
' meldung = "Die Verarbeitung EDKB01 wurde nicht ordnungsgemäss durchgeführt:" + vbCrLf + vbCrLf + _
|
|
' "Fehler: Datei " + Params.Filepfad + "Hostindex.ok beinhaltet einen Wert <> 0" + vbCrLf + vbCrLf + _
|
|
' "Dieses Mail wurde durch den Job EDKB01 ausgelöst" + vbCrLf + _
|
|
' "------------------------------------------------"
|
|
' Case 2
|
|
' betreff = "EEDKB01 - Return 16: Fehler Datei HostIndex.txt - Datei nicht vorhanen / " + Format(Now, "yyyyMMddHHmmss")
|
|
' meldung = "Die Verarbeitung EDKB01 wurde nicht ordnungsgemäss durchgeführt" + vbCrLf + vbCrLf + _
|
|
' "Fehler: Datei " + Params.Filepfad + "Hostindex.txt ist nicht vorhanden" + vbCrLf + vbCrLf + _
|
|
' "Dieses Mail wurde durch den Hob EDKB01 ausgelöst" + vbCrLf + _
|
|
' "------------------------------------------------"
|
|
|
|
' Case 3
|
|
' betreff = "EDKB01 - Return 16: Fehler Anzahl verarbeitete Bytes stimmt nicht - " + Format(Now, "yyyyMMddHHmmss")
|
|
' meldung = "Anzahl Dateien eingelesen und verarbeitet: " + Str(TotalImport) + vbCrLf + vbCrLf + _
|
|
' "Originalfile: " + Str(FileSizeO) + " verarbeitet: " + Str(FileSizeD) + vbCrLf + vbCrLf + _
|
|
' "Dieses Mail wurde durch den Hob EDKB01 ausgelöst" + vbCrLf + _
|
|
' "------------------------------------------------"
|
|
' Case 4
|
|
' betreff = "EDKB01 - Return 16: Undefinierter Fehler Datei HostIndex.txt - Log konsultieren - " + Format(Now, "yyyyMMddHHmmss")
|
|
' meldung = "Anzahl Dateien eingelesen und verarbeitet: " + Str(TotalImport) + vbCrLf + vbCrLf + _
|
|
' "Originalfile: " + Str(FileSizeO) + " verarbeitet: " + Str(FileSizeD) + vbCrLf + vbCrLf + _
|
|
' "Dieses Mail wurde durch den Hob EDKB01 ausgelöst" + vbCrLf + _
|
|
' "------------------------------------------------"
|
|
' Case 5
|
|
' betreff = "EDKB01 - Return 16: Undefinierter Fehler Datei HostIndex.del - Log konsultieren - " + Format(Now, "yyyyMMddHHmmss")
|
|
' meldung = "Anzahl Dateien eingelesen und gelöscht: " + Str(TotalDelete) + vbCrLf + vbCrLf + _
|
|
' "Dieses Mail wurde durch den Hob EDKB01 ausgelöst" + vbCrLf + _
|
|
' "------------------------------------------------"
|
|
' Case 6
|
|
' betreff = "EDKB01 - Return 16: Fehler beim Dateien umbenennen - " + Format(Now, "yyyyMMddHHmmss")
|
|
' meldung = "Anzahl Dateien eingelesen und verarbeitet: " + Str(TotalImport) + vbCrLf + _
|
|
' "Anzahl Dateien eingelesen und gelöscht : " + Str(TotalDelete) + vbCrLf + vbCrLf + _
|
|
' "Dieses Mail wurde durch den Hob EDKB01 ausgelöst" + vbCrLf + _
|
|
' "------------------------------------------------"
|
|
' Case 7
|
|
' betreff = "EDKB01 - Return 0: Verarbeitung ordnungsgemäss durchgeführt - " + Format(Now, "yyyyMMddHHmmss")
|
|
' meldung = "Anzahl Dateien eingelesen und verarbeitet: " + Str(TotalImport) + vbCrLf + _
|
|
' "Anzahl Dateien eingelesen und gelöscht : " + Str(TotalDelete) + vbCrLf + vbCrLf + _
|
|
' "Dieses Mail wurde durch den Hob EDKB01 ausgelöst" + vbCrLf + _
|
|
' "------------------------------------------------"
|
|
' Case 8
|
|
' betreff = "EDKB01 - Return 16: Fehler Datei HostIndex.ok - Anzahl gelieferter Dokumente fehlt / " + Format(Now, "yyyyMMddHHmmss")
|
|
' meldung = "Die Verarbeitung EDKB01 wurde nicht ordnungsgemäss durchgeführt:" + vbCrLf + vbCrLf + _
|
|
' "Fehler: Datei " + Params.Filepfad + "Hostindex.ok beinhaltet keine Anzahl der gelieferten Dokumente" + vbCrLf + vbCrLf + _
|
|
' "Dieses Mail wurde durch den Job EDKB01 ausgelöst" + vbCrLf + _
|
|
' "------------------------------------------------"
|
|
|
|
' Case 9
|
|
' betreff = "EDKB01 - Return 16: Anzahl Dokumente nicht korrekt - " + Format(Now, "yyyyMMddHHmmss")
|
|
' meldung = "Anzahl eingelesene Dokumente stimmt nicht mit der gemeldeten Anzahl überein:" + vbCrLf + vbCrLf + _
|
|
' "Anzahl Dokumente eingelesen: " + Str(InsertCounter) + vbCrLf + _
|
|
' "Anzahl von COLD gemeldet : " + Str(TotalDokumente) + vbCrLf + vbCrLf + _
|
|
' "Dieses Mail wurde durch den Hob EDKB01 ausgelöst" + vbCrLf + _
|
|
' "------------------------------------------------"
|
|
' End Select
|
|
' log.InsertJournale(betreff)
|
|
' log.InsertJournale(meldung)
|
|
' Dim scmCmdToExecute As SqlCommand = New SqlCommand
|
|
' scmCmdToExecute.CommandText = "dbo.SP_SendMail"
|
|
' scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
' Dim dtToReturn As DataTable = New DataTable
|
|
' scmCmdToExecute.Parameters.Add(New SqlParameter("@email", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, email))
|
|
' scmCmdToExecute.Parameters.Add(New SqlParameter("@betreff", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, betreff))
|
|
' scmCmdToExecute.Parameters.Add(New SqlParameter("@meldung", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, meldung))
|
|
' scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
' Try
|
|
' conn_edoka.OpenConnection()
|
|
' Catch
|
|
' End Try
|
|
' Sendmail = True
|
|
' Try
|
|
' scmCmdToExecute.ExecuteNonQuery()
|
|
' Catch ex As Exception
|
|
' Sendmail = False
|
|
' Finally
|
|
' scmCmdToExecute.Dispose()
|
|
' conn_edoka.CloseConnection(True)
|
|
' End Try
|
|
'End Function
|
|
|
|
'Private Function edkb01_status(ByVal fnkt As Integer, ByVal verarbeitungsart As Integer, ByVal status As Integer) As Integer
|
|
' Try
|
|
' Dim scmCmdToExecute As SqlCommand = New SqlCommand
|
|
' scmCmdToExecute.CommandText = "dbo.sp_edkb01_status"
|
|
' scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
' scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, fnkt))
|
|
' scmCmdToExecute.Parameters.Add(New SqlParameter("@verarbeitungsart", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, verarbeitungsart))
|
|
' scmCmdToExecute.Parameters.Add(New SqlParameter("@setstatus", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, status))
|
|
' scmCmdToExecute.Parameters.Add(New SqlParameter("@status", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
' scmCmdToExecute.Connection = Globals.conn_journale.scoDBConnection
|
|
' conn_journale.OpenConnection()
|
|
' Try
|
|
' scmCmdToExecute.ExecuteNonQuery()
|
|
' Return scmCmdToExecute.Parameters("@status").Value
|
|
' Catch ex As Exception
|
|
' m_Log.Log("EDKB01: ehler in Funktion edkb01_status (1): " & ex.Message, Common.Common.JournalEntryType.Error)
|
|
' Return 1
|
|
' Finally
|
|
|
|
' scmCmdToExecute.Dispose()
|
|
' conn_journale.CloseConnection(True)
|
|
' End Try
|
|
' Catch ex As Exception
|
|
' m_Log.Log("EDKB01: ehler in Funktion edkb01_status (2): " & ex.Message, Common.Common.JournalEntryType.Error)
|
|
' End Try
|
|
'End Function
|
|
|
|
|
|
#End Region
|
|
|
|
#Region "Start Tools"
|
|
|
|
Private Sub WirteLog(ByVal stext As String, ByVal sPfad As String)
|
|
Try
|
|
Dim FiStr As FileStream = New FileStream(sPfad, FileMode.Append)
|
|
Dim StrWr As StreamWriter = New StreamWriter(FiStr)
|
|
StrWr.WriteLine("Fehler: " + Now())
|
|
StrWr.WriteLine("Fehlertext:" + stext)
|
|
StrWr.Close()
|
|
Catch ex As Exception
|
|
End Try
|
|
End Sub
|
|
|
|
Public Function ApplicationPath() As String
|
|
'Return Path.GetDirectoryName([Assembly].GetExecutingAssembly().Location)
|
|
Return Path.GetDirectoryName([Assembly].GetEntryAssembly().Location) + "\"
|
|
End Function
|
|
|
|
Private Function CheckArg() As Boolean
|
|
Try
|
|
If IsNothing(args(1)) Then
|
|
m_Log.Log("Pfad zu Config Dateien nicht übergeben.", Common.Common.JournalEntryType.Error)
|
|
m_Log.Ende()
|
|
End If
|
|
CheckArg = True
|
|
Catch ex As Exception
|
|
m_Log.Log("Pfad zu Config Dateien nicht übergeben.", Common.Common.JournalEntryType.Error)
|
|
m_Log.Ende()
|
|
CheckArg = False
|
|
End Try
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
End Module
|