MS_13.10.2015

This commit is contained in:
SchreiberM
2015-10-13 15:42:01 +02:00
parent b050f2d543
commit c74e5434b9
30 changed files with 6236 additions and 922 deletions

View File

@@ -1,13 +1,22 @@
Public Class ClassImport_Windream
Imports System.IO
Public Class ClassImport_Windream
Public Shared Function Import_File(QuellDatei_Path As String, DOCTYPE_ID As Integer)
Try
Dim err As Boolean = False
CURRENT_FILENAME = QuellDatei_Path
Dim DT_DOCTYPE As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBDD_DOKUMENTART WHERE GUID = " & DOCTYPE_ID)
If Not IsNothing(DT_DOCTYPE) Then
Dim Targetpath As String = DT_DOCTYPE.Rows(0).Item("ZIEL_PFAD")
Dim Dokart As String = DT_DOCTYPE.Rows(0).Item("BEZEICHNUNG")
ClassWindream._WDObjekttyp = DT_DOCTYPE.Rows(0).Item("OBJEKTTYP")
'Den Namen der Dokumentart generieren
If ClassImport_Windream.Name_Generieren(DOCTYPE_ID) = False Then
err = True
Return False
End If
'Die Datei nach windream importieren
Dim streamresult = ClassWindream.Stream_File(QuellDatei_Path, Targetpath)
If streamresult = True Then
@@ -80,11 +89,184 @@
End If
Catch ex As Exception
MsgBox("Unexpected error in Import_File ClassImport_windream: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Return False
End Try
End Function
Public Shared Function Name_Generieren(DocTypeID As Integer)
Try
Dim FILE_DELIMITER, VERSION_DELIMITER, _WDOBJECTTYPE, _NewFileString As String
Dim sql As String = "select VERSION_DELIMITER, FILE_DELIMITER FROM TBDD_MODULES where UPPER(NAME) = UPPER('Global-Indexer')"
Dim DT1 As DataTable = ClassDatabase.Return_Datatable(sql)
FILE_DELIMITER = DT1.Rows(0).Item("FILE_DELIMITER")
VERSION_DELIMITER = DT1.Rows(0).Item("VERSION_DELIMITER")
Dim err As Boolean = False
Dim folder_Created As Boolean = False
Dim Zielordner As String
Dim extension As String = Path.GetExtension(CURRENT_FILENAME)
Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBDD_DOKUMENTART WHERE GUID = " & DocTypeID)
'sql_history_INSERT_INTO = "INSERT INTO TBGI_HISTORY (FILENAME_ORIGINAL,FILENAME_NEW"
'sql_history_Index_Values = ""
Dim AnzahlIndexe As Integer = 1
_WDOBJECTTYPE = DT.Rows(0).Item("OBJEKTTYP")
If folder_Created = False Then
' Den Zielordner erstellen
Zielordner = DT.Rows(0).Item("ZIEL_PFAD")
If Directory.Exists(Zielordner) = False Then
'Try to create the directory.
Directory.CreateDirectory(Zielordner)
End If
folder_Created = True
End If
'####
' Regulären Ausdruck zum Auslesen der Indexe definieren
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
If IsDBNull(DT.Rows(0).Item("NAMENKONVENTION")) Then
DT.Rows(0).Item("NAMENKONVENTION") = Path.GetFileNameWithoutExtension(CURRENT_FILENAME)
ElseIf DT.Rows(0).Item("NAMENKONVENTION") = String.Empty Then
DT.Rows(0).Item("NAMENKONVENTION") = Path.GetFileNameWithoutExtension(CURRENT_FILENAME)
End If
'schonmal den gesamten Pfad laden
Dim DATEINAME As String = Zielordner & "\" & DT.Rows(0).Item("NAMENKONVENTION")
' einen Regulären Ausdruck laden
Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
' die Vorkommen im SQL-String auslesen
Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(DATEINAME)
'####
' alle Vorkommen innerhalbd er Namenkonvention durchlaufen
For Each element As System.Text.RegularExpressions.Match In elemente
Select Case element.Value.Substring(2, 1).ToUpper
''Manueller Indexwert
'Case "M"
' If LogErrorsOnly = False Then ClassLogger.Add(" >>Manueller Index wird geprüft...", False)
' Dim Indexname = element.Value.Substring(3, element.Value.Length - 4)
' Dim value As String = GetManIndex_Value(element.Value.Substring(3, element.Value.Length - 4), "FILE")
' If value <> String.Empty Then
' DATEINAME = DATEINAME.Replace(element.Value, value)
' _NewFileString = DATEINAME
' sql_history_INSERT_INTO = sql_history_INSERT_INTO & ", INDEX" & AnzahlIndexe.ToString
' AnzahlIndexe += 1
' sql_history_Index_Values = sql_history_Index_Values & ", '" & value & "'"
' Else
' Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & FW_DOCTYPE_IDTextBox.Text & " AND UPPER(NAME) = UPPER('" & Indexname & "')", True)
' If optional_index = True Then
' Dim result As MsgBoxResult
' result = MessageBox.Show("Achtung der optionale Index ist leer, wird aber für die Benennung der Datei benutzt." & vbNewLine & "Wollen Sie stattdessen den Originaldateinamen verwenden?", "Bestätigung erforderlich:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
' If result = MsgBoxResult.Yes Then
' DATEINAME = DATEINAME.Replace(element.Value, Path.GetFileNameWithoutExtension(CURRENT_FILENAME))
' _NewFileString = DATEINAME
' sql_history_INSERT_INTO = sql_history_INSERT_INTO & ", INDEX" & AnzahlIndexe.ToString
' AnzahlIndexe += 1
' sql_history_Index_Values = sql_history_Index_Values & ", '" & Path.GetFileNameWithoutExtension(CURRENT_FILENAME) & "'"
' Else
' DATEINAME = DATEINAME.Replace(element.Value, value)
' _NewFileString = DATEINAME
' sql_history_INSERT_INTO = sql_history_INSERT_INTO & ", INDEX" & AnzahlIndexe.ToString
' AnzahlIndexe += 1
' sql_history_Index_Values = sql_history_Index_Values & ", '" & value & "'"
' End If
' Else
' ClassLogger.Add(" >> Der Indexvalue für Index '" & Indexname & "' ist String.Empty", False)
' err = True
' End If
' End If
Case "A"
Dim APattern = element.Value.Substring(3, element.Value.Length - 4)
Dim value As String
Select Case APattern
Case "RECORD_ID"
value = CURRENT_RECORD_ID
Case "DOKART"
value = CURRENT_DOKARTSTRING
End Select
If value <> String.Empty Then
DATEINAME = DATEINAME.Replace(element.Value, value)
_NewFileString = DATEINAME
' sql_history_INSERT_INTO = sql_history_INSERT_INTO & ", INDEX" & AnzahlIndexe.ToString
AnzahlIndexe += 1
' sql_history_Index_Values = sql_history_Index_Values & ", '" & value & "'"
Else
err = True
End If
Case "V"
Dim datetemp As String
Dim _Month As String = My.Computer.Clock.LocalTime.Month
If _Month.Length = 1 Then
_Month = "0" & _Month
End If
Dim _day As String = My.Computer.Clock.LocalTime.Day
If _day.Length = 1 Then
_day = "0" & _day
End If
Dim type = element.Value '.ToUpper.Replace("[v%", "")
type = type.Replace("[%v", "")
type = type.Replace("]", "")
Select Case type
Case "YY_MM_DD"
datetemp = My.Computer.Clock.LocalTime.Year.ToString.Substring(2) & "_" & _Month & "_" & _day
Case "YYYY_MM_DD"
datetemp = My.Computer.Clock.LocalTime.Year & "_" & _Month & "_" & _day
Case "DD_MM_YY"
datetemp = _day & "_" & _Month & "_" & My.Computer.Clock.LocalTime.Year.ToString.Substring(2)
Case "DD_MM_YYYY"
datetemp = _day & "_" & _Month & "_" & My.Computer.Clock.LocalTime.Year
Case "OFilename"
DATEINAME = DATEINAME.Replace(element.Value, Path.GetFileNameWithoutExtension(CURRENT_FILENAME))
End Select
If datetemp <> "" Then
DATEINAME = DATEINAME.Replace(element.Value, datetemp)
End If
_NewFileString = DATEINAME
Case Else
ClassLogger.Add(" - Achtung - in der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper)
MsgBox("Achtung - in der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper, MsgBoxStyle.Exclamation, "Fehler bei Name generieren:")
End Select
Next
Try
Dim version As Integer = 1
Dim Stammname As String = DATEINAME.Replace(VERSION_DELIMITER, "")
Dim _neuername As String = DATEINAME.Replace(VERSION_DELIMITER, "")
'Dim MoveFilename As String = DATEINAME.Replace(element.Value, "")
'Überprüfen ob File existiert
If File.Exists(_neuername & extension) = False Then
_NewFileString = _neuername
Else
Do While File.Exists(_neuername & extension)
version = version + 1
_neuername = Stammname & VERSION_DELIMITER & version
_NewFileString = _neuername
Loop
End If
Catch ex As Exception
ClassLogger.Add(" - Fehler bei Versionieren der Datei - Fehler: " & vbNewLine & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei Umbenennnen der Datei:")
err = True
End Try
CURRENT_NEWFILENAME = _NewFileString & extension
'False oder True zurückgeben
If err = False Then
Return True
Else
MsgBox("Fehler während der Dateinamengenerierung. Bitte überprüfen Sie das Log", MsgBoxStyle.Exclamation)
Return False
End If
Catch ex As Exception
ClassLogger.Add(" - Unvorhergesehener Fehler bei Name_Generieren - Fehler: " & vbNewLine & ex.Message)
MsgBox(ex.Message, MsgBoxStyle.Critical, "Allgemeiner Fehler bei Name_Generieren:")
Return False
End Try
End Function
End Class