MS2501
This commit is contained in:
@@ -42,7 +42,6 @@ Public Class ClassWindream
|
||||
Public Shared oBrowser As New WMOBRWSLib.ServerBrowser
|
||||
Public Shared oDokumentTypen As WINDREAMLib.WMObjects
|
||||
Private oController As New WMOSearchController
|
||||
Public Shared _DateiinWindream As String
|
||||
Public Shared _WDObjekttyp As String
|
||||
Private Shared aktWMObject As WINDREAMLib.WMObject
|
||||
#End Region
|
||||
@@ -573,17 +572,17 @@ Public Class ClassWindream
|
||||
Const STREAM_BinaryObject = "BinaryObject"
|
||||
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...Stream_File wurde gestartet", False)
|
||||
Dim endgültigerDateiname As String = ""
|
||||
Dim windreamFilename As String = ""
|
||||
' Objekt für Datei und Zielverzeichnis anlegen
|
||||
Dim Quelldatei_Name As String = Path.GetFileName(filenameQuelle)
|
||||
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...Quelldatei gelesen", False)
|
||||
'"Version-KZ entfernen
|
||||
newfilename = newfilename.Replace("\\", "\")
|
||||
endgültigerDateiname = newfilename.Substring(2)
|
||||
If endgültigerDateiname.Contains("[%Version]") Then
|
||||
endgültigerDateiname = endgültigerDateiname.Replace("[%Version]", "")
|
||||
newfilename = endgültigerDateiname
|
||||
windreamFilename = newfilename.Substring(2)
|
||||
If windreamFilename.Contains("[%Version]") Then
|
||||
windreamFilename = windreamFilename.Replace("[%Version]", "")
|
||||
newfilename = windreamFilename
|
||||
End If
|
||||
|
||||
If My.Computer.FileSystem.DirectoryExists(Zielverzeichnis) Then
|
||||
@@ -640,6 +639,7 @@ Public Class ClassWindream
|
||||
ClassLogger.Add(" >> Login on dms-Server failed", False)
|
||||
' MsgBox("Login failed. ")
|
||||
End If
|
||||
oSession = Session
|
||||
Const WMCOMEventWMSessionNeedIndex = 1
|
||||
|
||||
'windream Objekte erstellen ohne Indexierungs-Event
|
||||
@@ -647,10 +647,10 @@ Public Class ClassWindream
|
||||
'==================================================================
|
||||
' check if files exist
|
||||
'==================================================================
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...ÜBERPRÜFTER DATEINAME => " & endgültigerDateiname, False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...ÜBERPRÜFTER DATEINAME => " & windreamFilename, False)
|
||||
Dim wdFilexists As Boolean
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...Versuch auf die Datei in W: zuzugreifen und zu sperren...", False)
|
||||
wdFilexists = Session.WMObjectExists(WMEntityDocument, endgültigerDateiname, 0, 0)
|
||||
wdFilexists = Session.WMObjectExists(WMEntityDocument, windreamFilename, 0, 0)
|
||||
Err.Clear()
|
||||
If wdFilexists = False Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...Datei ist NICHT vorhanden, kann also einfach neu angelegt werden", False)
|
||||
@@ -658,47 +658,53 @@ Public Class ClassWindream
|
||||
'==================================================================
|
||||
' create an object
|
||||
'==================================================================
|
||||
WMObject = Session.GetNewWMObjectFS(WMEntityDocument, endgültigerDateiname, WMObjectEditModeObject)
|
||||
WMObject = Session.GetNewWMObjectFS(WMEntityDocument, windreamFilename, WMObjectEditModeObject)
|
||||
If Err.Number > 0 Then
|
||||
ClassLogger.Add(" FEHLER: WMObject konnte nicht erzeugt werden - Error: '" & Err.Description & "'")
|
||||
'MsgBox(Err.Description)
|
||||
End If
|
||||
' MsgBox("Created file: " + endgültigerDateiname)
|
||||
' MsgBox("Created file: " + windreamFilename)
|
||||
Else
|
||||
'endgültigerDateiname = \Brainpool - Geschäftsprozess\GI\DAGI_Digital Data[%Version].jpg
|
||||
' wenn auf die Datei zugeriffen werden konnte ist sie bereits vorhanden -> Datum anhängen
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...Es konnte zugegriffen werden -> DATEI IST BEREITS VORHANDEN", False)
|
||||
'### Automatische Versionierung ###
|
||||
Dim version As Integer = 2
|
||||
Dim extension As String = Path.GetExtension(newfilename)
|
||||
Dim Stammname As String = newfilename.Substring(0, newfilename.LastIndexOf(".")).Substring(3)
|
||||
Dim neuername As String = newfilename.Substring(0, newfilename.LastIndexOf(".")).Substring(3)
|
||||
|
||||
Do While File.Exists(vWLaufwerk & ":\" & neuername & extension) = True
|
||||
ClassLogger.Add(" >> Datei " & vWLaufwerk & ":\" & neuername & extension & " ist vorhanden - Versionieren....", False)
|
||||
neuername = Stammname & VERSION_DELIMITER & version
|
||||
endgültigerDateiname = "\" & neuername & extension
|
||||
version = version + 1
|
||||
Loop
|
||||
WMObject = Session.GetNewWMObjectFS(WMEntityDocument, endgültigerDateiname, WMObjectEditModeObject)
|
||||
If CURRENT_DOKART_DUPLICATE_HANDLING = "Default" Or CURRENT_DOKART_DUPLICATE_HANDLING = "Question" Then
|
||||
''##########
|
||||
Dim msg = String.Format("Eine Datei mit identischem Namen " & vbNewLine & "'{0}'" & vbNewLine & "existiert bereits!" & vbNewLine & "Wollen Sie die bestehende Datei ersetzen?", newfilename)
|
||||
If USER_LANGUAGE <> "de-DE" Then
|
||||
msg = "There is already a file with the same name! Would You like to replace the file?"
|
||||
End If
|
||||
Dim result As MsgBoxResult
|
||||
result = MessageBox.Show(msg, "File alredy exists:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
If result = MsgBoxResult.No Then
|
||||
windreamFilename = ClassFilehandle.Versionierung_Datei(newfilename).ToString.Substring(2)
|
||||
Else
|
||||
If Delete_WDFile(windreamFilename) = False Then
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
ElseIf CURRENT_DOKART_DUPLICATE_HANDLING = "New version" Then
|
||||
windreamFilename = ClassFilehandle.Versionierung_Datei(newfilename).ToString.Substring(2)
|
||||
End If
|
||||
WMObject = Session.GetNewWMObjectFS(WMEntityDocument, windreamFilename, WMObjectEditModeObject)
|
||||
If Err.Number > 0 Then
|
||||
ClassLogger.Add(" FEHLER: Neues WMObject (Kopie) konnte nicht erzeugt werden - Error: '" & Err.Description & "'")
|
||||
'MsgBox(Err.Description)
|
||||
End If
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...WMObject zugewiesen", False)
|
||||
End If
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...ENDGÜLTIGER DATEINAME => " & endgültigerDateiname, False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...ENDGÜLTIGER DATEINAME => " & windreamFilename, False)
|
||||
If WMObject IsNot Nothing Then
|
||||
newfilename = vWLaufwerk & ":" & windreamFilename
|
||||
' lock object for file system access (to change the file itself)
|
||||
WMObject.lock()
|
||||
' set fileIO the local source file
|
||||
aFileIO.bstrOriginalFileName = filenameQuelle
|
||||
If Err.Number > 0 Then
|
||||
'MsgBox(Err.Number.ToString)
|
||||
ClassLogger.Add(" FEHLER: fileIO konnte nicht gesetzt werden - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
|
||||
ClassLogger.Add(" HINWEIS: Überprüfen Sie den Verweis auf die Bibliotheken 'WMOTool.WMFileIO' UND 'WMOTOOLLib.WMFileIO' und ändern diese in den Anwendungseinstellungen (DLL_WMOTOOL)'", False)
|
||||
WMObject.Unlock()
|
||||
System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Delete_WDFile(windreamFilename)
|
||||
|
||||
Return False
|
||||
' MsgBox(Err.Description)
|
||||
End If
|
||||
@@ -707,7 +713,7 @@ Public Class ClassWindream
|
||||
If Err.Number > 0 Then
|
||||
ClassLogger.Add(" Unexpected error in OpenStream - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
|
||||
WMObject.Unlock()
|
||||
System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Delete_WDFile(windreamFilename)
|
||||
Return False
|
||||
'MsgBox(Err.Description)
|
||||
End If
|
||||
@@ -717,7 +723,7 @@ Public Class ClassWindream
|
||||
If Err.Number > 0 Then
|
||||
ClassLogger.Add(" Unexpected error in Zuweisen aWMStream zu aFileIO - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
|
||||
WMObject.Unlock()
|
||||
System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Delete_WDFile(windreamFilename)
|
||||
Return False
|
||||
'MsgBox(Err.Description)
|
||||
End If
|
||||
@@ -726,7 +732,7 @@ Public Class ClassWindream
|
||||
If Err.Number > 0 Then
|
||||
ClassLogger.Add(" Unexpected error in FileIO.ImportOriginal(True) - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
|
||||
WMObject.Unlock()
|
||||
System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Delete_WDFile(windreamFilename)
|
||||
Return False
|
||||
' MsgBox(Err.Description)
|
||||
End If
|
||||
@@ -736,7 +742,7 @@ Public Class ClassWindream
|
||||
If Err.Number > 0 Then
|
||||
ClassLogger.Add(" Unexpected error in aWMStream.Close() - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
|
||||
WMObject.Unlock()
|
||||
System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Delete_WDFile(windreamFilename)
|
||||
Return False
|
||||
'MsgBox(Err.Description)
|
||||
End If
|
||||
@@ -745,7 +751,7 @@ Public Class ClassWindream
|
||||
If Err.Number > 0 Then
|
||||
ClassLogger.Add(" Unexpected error in WMObject.save - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
|
||||
WMObject.Unlock()
|
||||
System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Delete_WDFile(windreamFilename)
|
||||
Return False
|
||||
'MsgBox(Err.Description)
|
||||
End If
|
||||
@@ -755,37 +761,37 @@ Public Class ClassWindream
|
||||
If Err.Number > 0 Then
|
||||
ClassLogger.Add(" Unexpected error in WMObject.unlock - Datei wird wieder gelöscht - Error: '" & Err.Description & "'")
|
||||
WMObject.Unlock()
|
||||
System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Delete_WDFile(windreamFilename)
|
||||
Return False
|
||||
'MsgBox(Err.Description)
|
||||
End If
|
||||
'DATEI GRÖSSE ERMITTELN - MANCHMAL KOMMT ES VOR DAS DATEIGRÖße 0 ist
|
||||
Dim info2 As New FileInfo(vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Dim info2 As New FileInfo(newfilename)
|
||||
Dim length1 As Long = info2.Length
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" ...Length der Zieldatei: " & length1.ToString, False)
|
||||
If length1 > 0 And Err.Number = 0 Then
|
||||
If length > 0 And Err.Number = 0 Then
|
||||
Dim p As String
|
||||
If endgültigerDateiname.StartsWith("\") Then
|
||||
If endgültigerDateiname.StartsWith("\\") Then
|
||||
p = endgültigerDateiname.Replace("\\", "\")
|
||||
If windreamFilename.StartsWith("\") Then
|
||||
If windreamFilename.StartsWith("\\") Then
|
||||
p = windreamFilename.Replace("\\", "\")
|
||||
Else
|
||||
p = endgültigerDateiname
|
||||
p = windreamFilename
|
||||
End If
|
||||
Else
|
||||
p = "\" & endgültigerDateiname
|
||||
p = "\" & windreamFilename
|
||||
End If
|
||||
_DateiinWindream = vWLaufwerk & ":" & p
|
||||
ClassLogger.Add(" >> Datei '" & _DateiinWindream & "' wurde erfolgreich importiert!", False)
|
||||
CURRENT_NEWFILENAME = vWLaufwerk & ":" & p
|
||||
ClassLogger.Add(" >> Datei '" & CURRENT_NEWFILENAME & "' wurde erfolgreich importiert!", False)
|
||||
aktWMObject = WMObject
|
||||
|
||||
CURRENT_NEWFILENAME = _DateiinWindream
|
||||
Return True
|
||||
Else
|
||||
System.IO.File.Delete(vWLaufwerk & ":\" & endgültigerDateiname)
|
||||
Delete_WDFile(windreamFilename)
|
||||
Console.WriteLine(Err.Number.ToString)
|
||||
ClassLogger.Add(" Unexpected error in Datei-Übertragen - FileLength ist 0, Übertragene Datei wurde gelöscht")
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
ClassLogger.Add(" Could not create a WMObject for file:'" & windreamFilename & "'")
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
@@ -794,6 +800,28 @@ Public Class ClassWindream
|
||||
End If
|
||||
|
||||
End Function
|
||||
Public Shared Function Delete_WDFile(ByVal WD_File As String)
|
||||
Try
|
||||
If Not WD_File.StartsWith("\") Then
|
||||
WD_File = WD_File.Substring(2)
|
||||
End If
|
||||
Dim WMObject As WINDREAMLib.WMObject '= CreateObject("WINDREAMLib.WMObject") 'New WINDREAMLib.WMObject
|
||||
Try
|
||||
WMObject = oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, WD_File) 'WINDREAMLib.WMEntity.WMEntityDocument
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(">> Could not create WMObject for file '" & WD_File & "' - so it is not existing", False)
|
||||
Return False
|
||||
End Try
|
||||
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Deleting started - Object created", False)
|
||||
WMObject.Delete()
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in Delete_WDFile: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
ClassLogger.Add("Unexpected Error in Delete_WDFile: " & ex.Message, False)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
''' <summary>
|
||||
''' Übergibt einer in windream gespeicherten Datei Indexwerte
|
||||
''' </summary>
|
||||
|
||||
Reference in New Issue
Block a user