MS
This commit is contained in:
@@ -8,9 +8,10 @@ Imports WINDREAMLib.WMSearchRelation
|
||||
Imports WMOBRWSLib
|
||||
Imports WMOSRCHLib
|
||||
Imports System.IO
|
||||
Imports DigitalData.Modules.Logging
|
||||
|
||||
Public Class clsWindream_allgemein
|
||||
Private Shared Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger
|
||||
Dim Logger As Logger
|
||||
#Region "+++++ Konstanten +++++"
|
||||
Const DEBUG = AUS
|
||||
Const AUS = 0
|
||||
@@ -32,7 +33,8 @@ Public Class clsWindream_allgemein
|
||||
''' Konstruktor für die windream-Klasse
|
||||
''' </summary>
|
||||
''' <remarks></remarks>
|
||||
Sub New()
|
||||
Sub New(MyLogger As LogConfig)
|
||||
Logger = MyLogger.GetLogger()
|
||||
' wenn ein Fehler bei der Initialisierung auftrat
|
||||
If Not Init() Then
|
||||
' Nachricht ausgeben
|
||||
@@ -71,7 +73,7 @@ Public Class clsWindream_allgemein
|
||||
|
||||
' setzt die minimal erwartete windream-Version
|
||||
oConnect.MinReqVersion = "3"
|
||||
' Logger.Info("Personifizierung'")
|
||||
' Logger.Debug("Personifizierung'")
|
||||
|
||||
' -- Impersonifizierung nur möglich mit registry-eintrag --
|
||||
'oConnect.UserName = "\digitaldata\SchreiberM"
|
||||
@@ -79,8 +81,8 @@ Public Class clsWindream_allgemein
|
||||
|
||||
' Verbindung mit Session-Objekt (und dem ausgewählten Server) aufbauen
|
||||
oConnect.LoginSession(oSession)
|
||||
Logger.Info("windream-Server: '" & GetCurrentServer() & "'")
|
||||
Logger.Info("windream-UserName: '" & oConnect.UserName & "'")
|
||||
Logger.Debug("windream-Server: '" & GetCurrentServer() & "'")
|
||||
Logger.Debug("windream-UserName: '" & oConnect.UserName & "'")
|
||||
|
||||
If oSession.aLoggedin = False Then
|
||||
Logger.Warn("Es konnte keine Verbindung mit dem windream-Server hergestellt werden")
|
||||
@@ -114,7 +116,7 @@ Public Class clsWindream_allgemein
|
||||
End Try
|
||||
End If
|
||||
|
||||
Logger.Info("Alles OK - Erfolgreich angemeldet und Session aufgebaut")
|
||||
Logger.Debug("Alles OK - Erfolgreich angemeldet und Session aufgebaut")
|
||||
Return True
|
||||
|
||||
Catch ex As Exception
|
||||
@@ -299,9 +301,9 @@ Public Class clsWindream_allgemein
|
||||
''' </summary>
|
||||
''' <returns>Servername als String</returns>
|
||||
''' <remarks></remarks>
|
||||
Public Shared Function GetCurrentServer() As String
|
||||
Public Function GetCurrentServer() As String
|
||||
Try
|
||||
Logger.Info(oBrowser.GetCurrentServer.ToString)
|
||||
Logger.Debug(oBrowser.GetCurrentServer.ToString)
|
||||
Return oBrowser.GetCurrentServer 'ClassWindream.oBrowser.GetCurrentServer
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
@@ -349,7 +351,7 @@ Public Class clsWindream_allgemein
|
||||
''' <param name="indexname">Name des zu überprüfenden Indexfeldes</param>
|
||||
''' <returns>Liefert eine Zahl, die einen Typen beschreibt</returns>
|
||||
''' <remarks></remarks>
|
||||
Public Function GetTypeOfIndexAsIntByName(ByVal indexname As String) As Integer
|
||||
Public Shared Function GetTypeOfIndexAsIntByName(ByVal indexname As String) As Integer
|
||||
Try
|
||||
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
|
||||
Dim vType = oAttribute.getVariableValue("dwAttrType")
|
||||
@@ -393,14 +395,14 @@ Public Class clsWindream_allgemein
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function WDObject_exists(wdobj_location As String)
|
||||
Public Function WDObject_exists(wdobj_location As String)
|
||||
Dim WDObject As WMObject
|
||||
Try
|
||||
WDObject = oSession.GetWMObjectByPath(WINDREAMLib.WMEntity.WMEntityDocument, wdobj_location.Substring(2))
|
||||
If WDObject Is Nothing Then
|
||||
Return False
|
||||
Else
|
||||
Logger.Info("WDObject exists")
|
||||
Logger.Debug("WDObject exists")
|
||||
Return True
|
||||
|
||||
End If
|
||||
@@ -410,17 +412,17 @@ Public Class clsWindream_allgemein
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function GetSearchDocuments(ByVal wdfLocation As String)
|
||||
Public Function GetSearchDocuments(ByVal wdfLocation As String)
|
||||
'wdfLocation = 'W:\System\Suchen\WDRH\TestPDF.wdf'
|
||||
Try
|
||||
Dim SearchName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
|
||||
Dim SearchPath = wdfLocation.Substring(0, wdfLocation.Length - SearchName.Length)
|
||||
Logger.Warn("WMSearch: " & wdfLocation.ToLower)
|
||||
Logger.Debug("WMSearch: " & wdfLocation.ToLower)
|
||||
If System.IO.File.Exists(wdfLocation.ToLower) Then
|
||||
Logger.Info("Search exists")
|
||||
Logger.Debug("Search exists")
|
||||
End If
|
||||
oController.CheckSearchProfile(wdfLocation.ToLower) 'wdfLocation.ToLower)
|
||||
Logger.Info("oController erzeugt")
|
||||
Logger.Debug("oController erzeugt")
|
||||
Dim suchTyp = oController.SearchProfileTargetProgID
|
||||
Dim ExSettings As Object
|
||||
Dim oSearch As Object
|
||||
@@ -430,8 +432,8 @@ Public Class clsWindream_allgemein
|
||||
Dim srchQuick As WMOSRCHLib.WMQuickSearch = CreateObject("WMOSrch.WMQuickSearch")
|
||||
Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch")
|
||||
Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch")
|
||||
Logger.Info("WD Objekte in GetSearchDocuments erzeugt")
|
||||
Logger.Info(suchTyp.ToString.ToUpper)
|
||||
Logger.Debug("WD Objekte in GetSearchDocuments erzeugt")
|
||||
Logger.Debug(suchTyp.ToString.ToUpper)
|
||||
'' Der öffentliche Member CheckSearchProfile für den Typ IWMQuickSearch7 wurde nicht gefunden. [Microsoft.VisualBasic] => GetSearchDocuments()
|
||||
Select Case suchTyp.ToString.ToUpper
|
||||
Case "WMOSRCH.WMQUICKSEARCH"
|
||||
@@ -444,15 +446,15 @@ Public Class clsWindream_allgemein
|
||||
|
||||
Case "WMOSRCH.WMINDEXSEARCH"
|
||||
srchIndex.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
||||
Logger.Info("Session created...")
|
||||
Logger.Debug("Session created...")
|
||||
oConnect.LoginSession(srchIndex.WMSession)
|
||||
Logger.Info("LoginSession...")
|
||||
Logger.Debug("LoginSession...")
|
||||
srchIndex.SearchProfilePath = SearchPath
|
||||
Logger.Info("SearchPath...")
|
||||
Logger.Debug("SearchPath...")
|
||||
srchIndex.LoadSearchProfile(SearchName)
|
||||
Logger.Info("LoadSearchProfile...")
|
||||
Logger.Debug("LoadSearchProfile...")
|
||||
oSearch = srchIndex.GetSearch()
|
||||
Logger.Info("GetSearch...")
|
||||
Logger.Debug("GetSearch...")
|
||||
Case "WMOSRCH.WMOBJECTTYPESEARCH"
|
||||
srchObjectType.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
||||
oConnect.LoginSession(srchObjectType.WMSession)
|
||||
@@ -468,15 +470,110 @@ Public Class clsWindream_allgemein
|
||||
End Select
|
||||
Dim WMObjects As Object
|
||||
WMObjects = oSearch.Execute
|
||||
Logger.Info("WD Objekte werden zurückgegeben")
|
||||
Logger.Debug("WD Objekte werden zurückgegeben")
|
||||
Return oSearch.execute
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Return Nothing
|
||||
End Try
|
||||
|
||||
End Function
|
||||
Public Function GetSearchDocumentsDT(ByVal wdfLocation As String, NameIndexDocID As String, NameIndexCreated As String) As DataTable
|
||||
Dim dtresult As New DataTable
|
||||
dtresult.Columns.Add("DOC_ID", GetType(Integer))
|
||||
dtresult.Columns.Add("PATH", GetType(String))
|
||||
dtresult.Columns.Add("CREATED", GetType(DateAndTime))
|
||||
Logger.Debug($"Executing WMSearch: {wdfLocation}...")
|
||||
Try
|
||||
Dim SearchName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
|
||||
Dim SearchPath = wdfLocation.Substring(0, wdfLocation.Length - SearchName.Length)
|
||||
Dim oWMSZPath = wdfLocation.Substring(2).ToLower
|
||||
|
||||
Logger.Debug("oWMSZPath: " & oWMSZPath)
|
||||
Try
|
||||
oController.CheckSearchProfile(oWMSZPath) 'wdfLocation.ToLower)
|
||||
Catch ex As Exception
|
||||
Dim msg As String = ex.Message
|
||||
Try
|
||||
Logger.Debug("Unexpected Error in Creating oController: " & msg)
|
||||
Logger.Debug("...NOW trying to implement \\windream\Objects ...")
|
||||
Dim WmSearch_wmobject = "\\windream\Objects" & oWMSZPath
|
||||
WmSearch_wmobject = WmSearch_wmobject.ToLower
|
||||
oController.CheckSearchProfile(WmSearch_wmobject) 'wdfLocation.ToLower)
|
||||
Catch ex1 As Exception
|
||||
Logger.Warn("UnexpectedError im CreateController: " & msg)
|
||||
Logger.Error(ex1)
|
||||
Return dtresult
|
||||
End Try
|
||||
|
||||
End Try
|
||||
|
||||
Logger.Debug("oController erzeugt")
|
||||
Dim suchTyp = oController.SearchProfileTargetProgID
|
||||
Dim ExSettings As Object
|
||||
Dim oSearch As Object
|
||||
ExSettings = oController.SearchProfileExSettings
|
||||
If ExSettings = 0 Then ExSettings = 7
|
||||
|
||||
Dim srchQuick As WMOSRCHLib.WMQuickSearch = CreateObject("WMOSrch.WMQuickSearch")
|
||||
Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch")
|
||||
Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch")
|
||||
Logger.Debug("WMObjekte in GetSearchDocumentsDT erzeugt")
|
||||
Logger.Debug(suchTyp.ToString.ToUpper)
|
||||
|
||||
Select Case suchTyp.ToString.ToUpper
|
||||
Case "WMOSRCH.WMQUICKSEARCH"
|
||||
srchQuick.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
||||
oConnect.LoginSession(srchQuick.WMSession)
|
||||
srchQuick.ClearSearch()
|
||||
srchQuick.SearchProfilePath = SearchPath
|
||||
srchQuick.LoadSearchProfile(SearchName)
|
||||
oSearch = srchQuick.GetSearch()
|
||||
|
||||
Case "WMOSRCH.WMINDEXSEARCH"
|
||||
srchIndex.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
||||
Logger.Debug("Session created...")
|
||||
oConnect.LoginSession(srchIndex.WMSession)
|
||||
Logger.Debug("LoginSession...")
|
||||
srchIndex.SearchProfilePath = SearchPath
|
||||
Logger.Debug("SearchPath...")
|
||||
srchIndex.LoadSearchProfile(SearchName)
|
||||
Logger.Debug("LoadSearchProfile...")
|
||||
oSearch = srchIndex.GetSearch()
|
||||
Logger.Debug("GetSearch...")
|
||||
Case "WMOSRCH.WMOBJECTTYPESEARCH"
|
||||
srchObjectType.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
|
||||
oConnect.LoginSession(srchObjectType.WMSession)
|
||||
srchObjectType.ClearSearch()
|
||||
srchObjectType.SearchProfilePath = SearchPath
|
||||
srchObjectType.LoadSearchProfile(SearchName)
|
||||
oSearch = srchObjectType.GetSearch()
|
||||
|
||||
Case Else
|
||||
Logger.Warn("KEIN GÜLTIGER WINDREAM-SUCHTYP")
|
||||
Return Nothing
|
||||
End Select
|
||||
Dim WMObjects As Object
|
||||
WMObjects = oSearch.Execute
|
||||
'If returnDT = True Then
|
||||
If WMObjects.Count > 0 Then
|
||||
|
||||
For Each dok As WMObject In WMObjects
|
||||
Dim path As String = dok.aPath
|
||||
Dim DOC_ID = dok.GetVariableValue(NameIndexDocID)
|
||||
Logger.Debug("Adding DocInfo for DocID: " & DOC_ID.ToString)
|
||||
dtresult.Rows.Add(DOC_ID, path, dok.GetVariableValue(NameIndexCreated))
|
||||
Next
|
||||
dtresult.AcceptChanges()
|
||||
Else
|
||||
Logger.Info($"No results for WMSearch: {wdfLocation}!!")
|
||||
End If
|
||||
Return dtresult
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Return dtresult
|
||||
End Try
|
||||
End Function
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
Reference in New Issue
Block a user