Imports System.IO Public Class ClassDOC_SEARCH Private Shared DT_RESULTLIST_OPTIONS As DataTable Private Shared DT_RESULTLIST_SEL_VALUES As DataTable Private Shared ENTITY_ID As Integer Private Shared RECORD_ID As Integer Private Shared Function GET_DOCSEARCH_DATATABLE(Type As String) Try Dim OPTION1 Dim OPTION2 Dim OPTION3 Dim OPTION4 Dim OPTION5 Dim VALUE_CONF1 Dim VALUE_CONF2 Dim VALUE_CONF3 Dim VALUE_CONF4 If DT_RESULTLIST_OPTIONS.Rows.Count = 0 Then OPTION1 = 0 OPTION2 = 0 OPTION3 = 0 OPTION4 = 0 OPTION5 = 0 Else OPTION1 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION1_CTRL") OPTION2 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION2_CTRL") OPTION3 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION3_CTRL") OPTION4 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION4_CTRL") OPTION5 = DT_RESULTLIST_OPTIONS.Rows(0).Item("OPTION5_CTRL") End If If DT_RESULTLIST_SEL_VALUES.Rows.Count = 0 Then VALUE_CONF1 = 0 VALUE_CONF2 = 0 VALUE_CONF3 = 0 VALUE_CONF4 = 0 Else VALUE_CONF1 = DT_RESULTLIST_SEL_VALUES.Rows(0).Item("GUID") Try VALUE_CONF2 = DT_RESULTLIST_SEL_VALUES.Rows(1).Item("GUID") Catch ex As Exception VALUE_CONF2 = 0 End Try Try VALUE_CONF3 = DT_RESULTLIST_SEL_VALUES.Rows(2).Item("GUID") Catch ex As Exception VALUE_CONF3 = 0 End Try Try VALUE_CONF4 = DT_RESULTLIST_SEL_VALUES.Rows(3).Item("GUID") Catch ex As Exception VALUE_CONF4 = 0 End Try End If Dim SQL_DOC_SEARCH If Type = "ENTITY" Then SQL_DOC_SEARCH = String.Format("SELECT T.* ," & vbNewLine & _ "ISNULL(T1.VALUE,'') AS OPTION1," & vbNewLine & _ "ISNULL(T2.VALUE,'') AS OPTION2," & vbNewLine & _ "ISNULL(T3.VALUE,'') AS OPTION3," & vbNewLine & _ "ISNULL(T4.VALUE,'') AS OPTION4," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{1},'DROPDOWN1','{7}') AS DROPDOWN1," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{1},'DROPDOWN2','{7}') AS DROPDOWN2," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{1},'DROPDOWN3','{7}') AS DROPDOWN3," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{1},'DROPDOWN4','{7}') AS DROPDOWN4," & vbNewLine & _ "(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC.GUID) AS VALUE1," & vbNewLine & _ "(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC1.GUID) AS VALUE2," & vbNewLine & _ "(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC2.GUID) AS VALUE3," & vbNewLine & _ "(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC3.GUID) AS VALUE4" & vbNewLine & _ "FROM " & vbNewLine & _ "VWPMO_WD_DOC_SEARCH T " & vbNewLine & _ "LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC ON T.ENTITY_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = '{7}' AND TRC.GUID = {8}" & vbNewLine & _ "LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 ON T.ENTITY_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = '{7}' AND TRC1.GUID = {9}" & vbNewLine & _ "LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 ON T.ENTITY_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = '{7}' AND TRC2.GUID = {10}" & vbNewLine & _ "LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 ON T.ENTITY_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = '{7}' AND TRC3.GUID = {11}" & vbNewLine & _ "LEFT JOIN TBPMO_CONTROL_VALUE T1 ON T.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = {2} " & vbNewLine & _ "LEFT JOIN TBPMO_CONTROL_VALUE T2 ON T.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = {3} " & vbNewLine & _ "LEFT JOIN TBPMO_CONTROL_VALUE T3 ON T.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = {4} " & vbNewLine & _ "LEFT JOIN TBPMO_CONTROL_VALUE T4 ON T.RECORD_ID = T4.RECORD_ID AND T4.CONTROL_ID = {5} " & vbNewLine & _ "WHERE T.ENTITY_ID = {1} AND T.DocID = (SELECT dwObjectID FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {6} AND dwObjectID = T.DocID)", RECORD_ID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4, USERID_FK_INT_ECM, USER_LANGUAGE, VALUE_CONF1, VALUE_CONF2, VALUE_CONF3, VALUE_CONF4) If CURRENT_ENTITYSQL.ToUpper.Contains("WHERE") Then Dim where = CURRENT_ENTITYSQL.ToUpper.Replace("SELECT T.*", "SELECT '#' + CONVERT(VARCHAR(10),T.[Record-ID]) + '#'") SQL_DOC_SEARCH = SQL_DOC_SEARCH & String.Format(" AND RECORD_ID IN ({0})", where) End If Else SQL_DOC_SEARCH = String.Format("SELECT T.* ," & vbNewLine & _ "ISNULL(T1.VALUE,'') AS OPTION1," & vbNewLine & _ "ISNULL(T2.VALUE,'') AS OPTION2," & vbNewLine & _ "ISNULL(T3.VALUE,'') AS OPTION3," & vbNewLine & _ "ISNULL(T4.VALUE,'') AS OPTION4," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX1') AS DOCIDX1," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX2') AS DOCIDX2," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX3') AS DOCIDX3," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_IDX] (T.DocID,{1},'DOCIDX4') AS DOCIDX4," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{1},'DROPDOWN1','{7}') AS DROPDOWN1," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{1},'DROPDOWN2','{7}') AS DROPDOWN2," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{1},'DROPDOWN3','{7}') AS DROPDOWN3," & vbNewLine & _ "[dbo].[FNPMO_DOC_GET_DROPDOWN] (T.DocID,{1},'DROPDOWN4','{7}') AS DROPDOWN4," & vbNewLine & _ "(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC.GUID) AS VALUE1," & vbNewLine & _ "(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC1.GUID) AS VALUE2," & vbNewLine & _ "(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC2.GUID) AS VALUE3," & vbNewLine & _ "(SELECT VALUE FROM TBPMO_DOC_VALUES WHERE DocID = T.DocID AND CONFIG_ID = TRC3.GUID) AS VALUE4" & vbNewLine & _ "FROM " & vbNewLine & _ "VWPMO_WD_DOC_SEARCH T " & vbNewLine & _ "LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC ON T.ENTITY_ID = TRC.ENTITY_ID AND TRC.LANGUAGE = '{7}' AND TRC.GUID = {8}" & vbNewLine & _ "LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC1 ON T.ENTITY_ID = TRC1.ENTITY_ID AND TRC1.LANGUAGE = '{7}' AND TRC1.GUID = {9}" & vbNewLine & _ "LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC2 ON T.ENTITY_ID = TRC2.ENTITY_ID AND TRC2.LANGUAGE = '{7}' AND TRC2.GUID = {10}" & vbNewLine & _ "LEFT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG TRC3 ON T.ENTITY_ID = TRC3.ENTITY_ID AND TRC3.LANGUAGE = '{7}' AND TRC3.GUID = {11}" & vbNewLine & _ "LEFT JOIN TBPMO_CONTROL_VALUE T1 ON T.RECORD_ID = T1.RECORD_ID AND T1.CONTROL_ID = {2} " & vbNewLine & _ "LEFT JOIN TBPMO_CONTROL_VALUE T2 ON T.RECORD_ID = T2.RECORD_ID AND T2.CONTROL_ID = {3} " & vbNewLine & _ "LEFT JOIN TBPMO_CONTROL_VALUE T3 ON T.RECORD_ID = T3.RECORD_ID AND T3.CONTROL_ID = {4} " & vbNewLine & _ "LEFT JOIN TBPMO_CONTROL_VALUE T4 ON T.RECORD_ID = T4.RECORD_ID AND T4.CONTROL_ID = {5} " & vbNewLine & _ "WHERE T.RECORD_ID = {0} AND T.ENTITY_ID = {1} AND T.DocID = (SELECT dwObjectID FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {6} AND dwObjectID = T.DocID)", RECORD_ID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4, USERID_FK_INT_ECM, USER_LANGUAGE, VALUE_CONF1, VALUE_CONF2, VALUE_CONF3, VALUE_CONF4) ' SQL_DOC_SEARCH = String.Format("SELECT * ," & _ ' "(CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}) " & _ ' "WHEN {1} THEN " & _ ' " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {2} AND RECORD_ID = {0}) " & _ ' "ELSE '' END) AS OPTION1," & _ ' "CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}) " & _ ' "WHEN {1} THEN " & _ ' " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {3} AND RECORD_ID = {0}) " & _ ' "ELSE '' END AS OPTION2," & _ ' "CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}) " & _ ' "WHEN {1} THEN " & _ ' " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {4} AND RECORD_ID = {0}) " & _ ' "ELSE '' END AS OPTION3," & _ ' "CASE (SELECT FORM_ID FROM TBPMO_RECORD WHERE GUID = {0}) " & _ ' "WHEN {1} THEN " & _ ' " (SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {5} AND RECORD_ID = {0}) " & _ ' "ELSE '' END AS OPTION4 " & _ ' ",(SELECT [dbo].[FNPMO_DOC_GET_IDX] (DocID,{1},'DOCIDX1')) AS DOCIDX1 " & _ ' ",(SELECT [dbo].[FNPMO_DOC_GET_IDX] (DocID,{1},'DOCIDX2')) AS DOCIDX2 " & _ ' ",(SELECT [dbo].[FNPMO_DOC_GET_IDX] (DocID,{1},'DOCIDX3')) AS DOCIDX3 " & _ ' ",(SELECT [dbo].[FNPMO_DOC_GET_IDX] (DocID,{1},'DOCIDX4')) AS DOCIDX4 " & _ ' ",(SELECT [dbo].[FNPMO_DOC_GET_DROPDOWN] (DocID,{1},'DROPDOWN1','{7}')) AS DROPDOWN1 " & _ ' ",(SELECT [dbo].[FNPMO_DOC_GET_DROPDOWN] (DocID,{1},'DROPDOWN2','{7}')) AS DROPDOWN2 " & _ ' ",(SELECT [dbo].[FNPMO_DOC_GET_DROPDOWN] (DocID,{1},'DROPDOWN3','{7}')) AS DROPDOWN3 " & _ ' ",(SELECT [dbo].[FNPMO_DOC_GET_DROPDOWN] (DocID,{1},'DROPDOWN4','{7}')) AS DROPDOWN4 " & _ '"FROM VWPMO_WD_DOC_SEARCH WHERE RECORD_ID = {0} AND ENTITY_ID = {1} AND DocID = (SELECT dwObjectID FROM VWPMO_WD_OBJECT_RIGHTS WHERE dwUserOrGroupID = {6} AND dwObjectID = DocID)", RECORD_ID, ENTITY_ID, OPTION1, OPTION2, OPTION3, OPTION4, USERID_FK_INT_ECM, USER_LANGUAGE) End If If LogErrorsOnly = False Then ClassLogger.Add(" >> SQL_DOC_SEARCH: " & SQL_DOC_SEARCH, False) Return ClassDatabase.Return_Datatable_Connection(SQL_DOC_SEARCH, 1) Catch ex As Exception ClassLogger.Add("Unexpected Error in GET_DOCSEARCH_DATATABLE: " & ex.Message, True) Return Nothing End Try End Function Public Shared Function Get_DOC_RESULTTABLE(vDT_RESULTLIST_OPTIONS As DataTable, vDT_RESULTLIST_SELVALUES As DataTable, DT_WINDREAM_RESULTLIST As DataTable, ENT_ID As Integer, REC_ID As Integer, vType As String) Dim COL_ARRAY_RESULTLIST As List(Of String) ENTITY_ID = ENT_ID DT_RESULTLIST_OPTIONS = vDT_RESULTLIST_OPTIONS DT_RESULTLIST_SEL_VALUES = vDT_RESULTLIST_SELVALUES RECORD_ID = REC_ID Try Dim sw As New Stopwatch sw.Start() Dim elapsed As Double Dim DT_FILE_RESULT As DataTable = GET_DOCSEARCH_DATATABLE(vType) CURRENT_DOC_RESULTS = DT_FILE_RESULT If IsNothing(DT_FILE_RESULT) Then ClassLogger.Add(">> ATTENTION: GET_DOCSEARCH_DATATABLE IS NOTHING!!", False) Return Nothing End If elapsed = sw.Elapsed.TotalSeconds sw.Stop() sw.Reset() Console.WriteLine(">> GET_DOCSEARCH_DATATABLE took " & Format(elapsed, "0.000000000") & " seconds") If LogErrorsOnly = False Then ClassLogger.Add(" >> Run GET_DOCSEARCH_DATATABLE took " & Format(elapsed, "0.000000000") & " seconds", False) sw.Start() Dim DTGrid As New DataTable Dim ColArrayDEFINITION As New List(Of String) Try 'Die Icon Colum erstellen und konfigurieren Dim colIcon As New System.Data.DataColumn() colIcon.DataType = GetType(Image) colIcon.ColumnName = "ICON" colIcon.Caption = "" DTGrid.Columns.Add(colIcon) ' Dim colPath As New System.Data.DataColumn() colPath.DataType = GetType(String) colPath.ColumnName = "FULLPATH" colPath.Caption = "Fullpath" DTGrid.Columns.Add(colPath) Dim colOtype As New System.Data.DataColumn() colOtype.DataType = GetType(String) colOtype.ColumnName = "OBJECTTYPE" colOtype.Caption = "Objecttype" DTGrid.Columns.Add(colOtype) Dim colDocID As New System.Data.DataColumn() colDocID.DataType = GetType(String) colDocID.ColumnName = "DocID" colDocID.Caption = "DocID" DTGrid.Columns.Add(colDocID) If Not DT_WINDREAM_RESULTLIST Is Nothing And DT_WINDREAM_RESULTLIST.Rows.Count >= 1 Then Dim ColCount As Integer = 1 For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows Dim ColumnName = rw.Item("HEADER_CAPTION") Dim Width = rw.Item("WIDTH") If IsNothing(Width) Or IsDBNull(Width) Then Width = 200 End If 'Die Spalte definieren DTGrid.Columns.Add(ColumnName) ColCount += 1 Next 'Jetzt das Array zusammenbauen um die Spaltenwerte zu erhalten For Each rw As DataRow In DT_WINDREAM_RESULTLIST.Rows ColArrayDEFINITION.Add(rw.Item("COLUMN_VIEW")) Next End If Catch ex As Exception MsgBox("Unexpected Error in Construct Datatable for GridResult: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) End Try elapsed = sw.Elapsed.TotalSeconds sw.Stop() sw.Reset() Console.WriteLine(">> DTGrid-Definition took " & Format(elapsed, "0.000000000") & " seconds") If LogErrorsOnly = False Then ClassLogger.Add(" >> DTGrid-Definition took " & Format(elapsed, "0.000000000") & " seconds", False) sw.Start() COL_ARRAY_RESULTLIST = ColArrayDEFINITION For Each FILE_ROW As DataRow In DT_FILE_RESULT.Rows Dim fullpath = FILE_ROW.Item("FULL_FILENAME") Dim objecttype = FILE_ROW.Item("OBJECTTYPE") Dim DocID = FILE_ROW.Item("DocID") 'Dim Folderpath = Path.GetDirectoryName(fullpath) Dim filename = Path.GetFileName(fullpath) Dim extension = Path.GetExtension(fullpath) ' Try Dim NewRow As DataRow NewRow = DTGrid.NewRow() 'Icon zuweisen Select Case extension.ToUpper Case ".csv".ToUpper NewRow.Item(0) = My.Resources.doc_excel_csv Case ".txt".ToUpper NewRow.Item(0) = My.Resources.text Case ".pdf".ToUpper NewRow.Item(0) = My.Resources.pdf Case ".doc".ToUpper NewRow.Item(0) = My.Resources.doc Case ".docx".ToUpper NewRow.Item(0) = My.Resources.doc Case ".xls".ToUpper NewRow.Item(0) = My.Resources.xls Case ".xlsx".ToUpper NewRow.Item(0) = My.Resources.xls Case ".ppt".ToUpper NewRow.Item(0) = My.Resources.ppt Case ".pptx".ToUpper NewRow.Item(0) = My.Resources.ppt Case ".dwg".ToUpper NewRow.Item(0) = My.Resources.dwg Case Else NewRow.Item(0) = My.Resources._blank End Select 'Den Filepath mitgeben NewRow.Item(1) = fullpath NewRow.Item(2) = objecttype NewRow.Item(3) = DocID Dim i = 4 'Fängt bei 2 an, um die definierten Spalten zu überspringen For Each Colname As String In ColArrayDEFINITION Dim rowvalue Try rowvalue = FILE_ROW.Item(Colname) If LogErrorsOnly = False Then ClassLogger.Add(" >> rowvalue for Colname '" & Colname & "': '" & rowvalue.ToString & "'", False) Catch ex As Exception ClassLogger.Add("Unexpected Error in GetVariableValue for Column '" & Colname & "'- Error: " & ex.Message) If Colname.ToString.StartsWith("doct") Or Colname.ToString.StartsWith("Dokum") Then rowvalue = "" Else rowvalue = "Error getting rowvalue" End If End Try NewRow.Item(i) = rowvalue.ToString i += 1 Next DTGrid.Rows.Add(NewRow) ' Catch ex As Exception ' ClassLogger.Add("Unexpected Error in CreateRow for doc '" & filename & "- Error: " & ex.Message) ' End Try Next Return DTGrid elapsed = sw.Elapsed.TotalSeconds sw.Stop() sw.Reset() If LogErrorsOnly = False Then ClassLogger.Add(" >> Run Get_DOC_RESULTTABLE took " & Format(elapsed, "0.000000000") & " seconds", False) Catch ex As Exception MsgBox("Unexpected Error in Get_DOC_RESULTTABLE: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return Nothing End Try End Function Public Shared Function REFRESH_DOC_TABLE_RESULTS() Try Dim execute = "EXEC[dbo].[PRPMO_DOCRESULT_CHANGE]" Return ClassDatabase.Execute_non_Query_withConn(execute, 1) Catch ex As Exception MsgBox("Unexpected Error in REFRESH_TABLE_RESULTS: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return False End Try End Function Public Shared Function SET_RECORD_DOCID_LINK(DOC_ID As Integer, RECORD_ID As Integer) Try Dim ins = String.Format("INSERT INTO TBPMO_DOC_RECORD_LINK (DOC_ID, RECORD_ID,ADDED_WHO) VALUES ({0},{1},'{2}')", DOC_ID, RECORD_ID, Environment.UserName) Return ClassDatabase.Execute_non_Query(ins) Catch ex As Exception MsgBox("Unexpected Error in SET_RECORD_DOCID_LINK: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return False End Try End Function Public Shared Function SET_WD_RIGHTS(ByVal RESULT_DOCID, ByVal RESULT_DOC_PATH, ByVal ENTITY_ID) Try If CURRENT_RECORD_ID = 0 Then MsgBox("No Record selected - Please select one!", MsgBoxStyle.Exclamation) Return False End If DD_Rights.clsLogger.Init(Application.UserAppDataPath() & "\Log", Environment.UserName) If DD_Rights.clsDatabase.Init(MyConnectionString) = True Then If DD_Rights.ClassRights.Init(ENTITY_ID, LogErrorsOnly) = True Then If DD_Rights.ClassRights.Collect_Users(CURRENT_RECORD_ID, ENTITY_ID) = True Then If DD_Rights.ClassRights.TransferRights2Service(RESULT_DOCID, RESULT_DOC_PATH, False) Then Dim sql_select = String.Format("SELECT * FROM VWPMO_RIGHTS_2B_WORKED WHERE DOC_ID = {0}", RESULT_DOCID) Dim DT_RIGHTS2B_CHANGED As DataTable = ClassDatabase.Return_Datatable(sql_select) If Not IsNothing(DT_RIGHTS2B_CHANGED) Then If DT_RIGHTS2B_CHANGED.Rows.Count > 0 Then Try For Each rightRow As DataRow In DT_RIGHTS2B_CHANGED.Rows Dim GUID = rightRow.Item("GUID") Dim USER_ID = rightRow.Item("USER_ID") Dim USERNAME = rightRow.Item("USERNAME").ToString.ToUpper Dim TYPE = rightRow.Item("RIGHT_MODIFY") Dim FILE_RIGHT = rightRow.Item("FILE_RIGHT_ID") Dim upd Dim Result As Boolean Select Case TYPE Case "ADD RIGHT" Result = DD_Rights.ClassRights.SetRightExplicit(RESULT_DOCID, RESULT_DOC_PATH, USERNAME, FILE_RIGHT, ClassWindream.oSession) End Select 'upd = String.Format("UPDATE TBPMO_RIGHTS_WORK_SERVICE SET WORKING = 0 WHERE GUID = {0}", GUID) 'If clsDatabase.Execute_non_Query(upd) = True Then If Result = True Then upd = String.Format("UPDATE TBPMO_RIGHTS_WORK_SERVICE SET WORKED = 1 WHERE GUID = {0}", GUID) ClassDatabase.Execute_non_Query(upd) Dim msg = DD_Rights.ClassRights.MSG_RESULT ClassLogger.Add(msg, False) If DD_Rights.ClassRights.DeleteRightExplicit(RESULT_DOCID, RESULT_DOC_PATH, WD_GROUP1, ClassWindream.oSession) = False Then msg = DD_Rights.ClassRights.MSG_RESULT ClassLogger.Add(msg, False) Else Return True End If Else Dim msg = String.Format("ERROR: {0} ", DD_Rights.ClassRights.MSG_RESULT) ClassLogger.Add(msg, True) End If 'End If Next Catch ex As Exception ClassLogger.Add("Unexpected Error : " & ex.Message, True) End Try End If End If End If 'If DD_Rights.ClassRights.File_DeleteAndSetRight(RESULT_DOCID, RESULT_DOC_PATH, True) Then ' If DD_Rights.ClassRights.MSG_RESULT <> "" Then ' Dim msg = "Achtung: einige Rechte konnten nicht gesetzt werden: " & vbNewLine & DD_Rights.ClassRights.MSG_RESULT ' If USER_LANGUAGE <> "de-DE" Then ' msg = "Attention: some rights could not be set: " & vbNewLine & DD_Rights.ClassRights.MSG_RESULT ' End If ' MsgBox(msg, MsgBoxStyle.Exclamation) ' Return True ' Else ' Return True ' End If 'Else ' Return False 'End If Else Return False End If Else Return False End If Else Return False End If Catch ex As Exception MsgBox("Unexpected Error in SET_WD_RIGHTS: " & vbNewLine & ex.Message, MsgBoxStyle.Critical) Return False End Try End Function End Class