EDMIService: WIP
This commit is contained in:
parent
6be8b1bdb5
commit
2a6fd3555b
@ -116,7 +116,7 @@
|
||||
<userSettings>
|
||||
<DigitalData.GUIs.ZooFlow.Settings>
|
||||
<setting name="IDBOBJID" serializeAs="String">
|
||||
<value>17255</value>
|
||||
<value />
|
||||
</setting>
|
||||
</DigitalData.GUIs.ZooFlow.Settings>
|
||||
</userSettings>
|
||||
|
||||
4
GUIs.ZooFlow/ClassStrings.vb
Normal file
4
GUIs.ZooFlow/ClassStrings.vb
Normal file
@ -0,0 +1,4 @@
|
||||
Public Class ClassStrings
|
||||
Public Const TEXT_MISSING_INPUT = "Bitte vervollständigen Sie die Eingaben!"
|
||||
Public Const TITLE_MISSING_INPUT = "Fehlende Eingaben"
|
||||
End Class
|
||||
137
GUIs.ZooFlow/Globix/ClassValidator.vb
Normal file
137
GUIs.ZooFlow/Globix/ClassValidator.vb
Normal file
@ -0,0 +1,137 @@
|
||||
Imports DigitalData.Controls.LookupGrid
|
||||
Imports DigitalData.GUIs.ZooFlow.Base
|
||||
Imports DigitalData.GUIs.ZooFlow.frmGlobix_Index
|
||||
Imports DigitalData.Modules.EDMI.API
|
||||
Imports DigitalData.Modules.Logging
|
||||
|
||||
Public Class ClassValidator
|
||||
Inherits BaseClass
|
||||
|
||||
Private ReadOnly Client As Client
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pClient As Client)
|
||||
MyBase.New(pLogConfig)
|
||||
Client = pClient
|
||||
End Sub
|
||||
|
||||
Private Function TestIsIndexOptional(pDocType As DocType, pIndexName As String) As Boolean
|
||||
Dim oIsOptional As Boolean = My.Helpers.GetValueFromDatatable(
|
||||
My.Application.Globix.CURR_DT_MAN_INDEXE,
|
||||
$"DOK_ID = {pDocType.Guid} AND INDEXNAME = '{pIndexName}'", "OPTIONAL", "")
|
||||
|
||||
Return oIsOptional
|
||||
End Function
|
||||
|
||||
Private Sub ShowValidationMessage()
|
||||
MsgBox(ClassStrings.TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, ClassStrings.TITLE_MISSING_INPUT)
|
||||
End Sub
|
||||
|
||||
Function ValidateControls(pControls As ControlCollection, pDocType As DocType) As Boolean
|
||||
Try
|
||||
Logger.Debug("Starting [ValidateControls]")
|
||||
Dim result As Boolean = True
|
||||
|
||||
For Each oControl As Control In pControls
|
||||
|
||||
' ========================= TEXT BOX =========================
|
||||
If oControl.Name.StartsWith("txt") Then
|
||||
Dim oTextBox As DevExpress.XtraEditors.TextEdit = oControl
|
||||
If oTextBox.Text = "" Then
|
||||
Dim oIndexName = Replace(oTextBox.Name, "txt", "")
|
||||
Dim oOptional = TestIsIndexOptional(pDocType, oIndexName)
|
||||
|
||||
If oOptional = False Then
|
||||
ShowValidationMessage()
|
||||
oTextBox.Focus()
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
' ========================= LOOKUP =========================
|
||||
If oControl.Name.StartsWith("cmbMulti") Then
|
||||
Dim oLookup = DirectCast(oControl, LookupControl3)
|
||||
Dim oValues As List(Of String) = oLookup.Properties.SelectedValues
|
||||
|
||||
If oValues.Count = 0 Then
|
||||
Dim oIndexName = Replace(oLookup.Name, "cmbMulti", "")
|
||||
Dim oOptional = TestIsIndexOptional(pDocType, oIndexName)
|
||||
|
||||
If oOptional = False Then
|
||||
ShowValidationMessage()
|
||||
oLookup.Focus()
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
' ========================= COMBO BOX =========================
|
||||
If oControl.Name.StartsWith("cmbSingle") Then
|
||||
Dim cmbSingle As TextBox = oControl
|
||||
|
||||
If cmbSingle.Text = "" Then
|
||||
Dim oIndexName = Replace(cmbSingle.Name, "cmbSingle", "")
|
||||
Dim oOptional = TestIsIndexOptional(pDocType, oIndexName)
|
||||
|
||||
If oOptional = False Then
|
||||
ShowValidationMessage()
|
||||
cmbSingle.Focus()
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
If oControl.Name.StartsWith("cmb") Then
|
||||
Dim cmb As ComboBox = oControl
|
||||
If cmb.Text = "" Then
|
||||
Dim oIndexName = Replace(cmb.Name, "cmb", "")
|
||||
Dim oOptional = TestIsIndexOptional(pDocType, oIndexName)
|
||||
|
||||
If oOptional = False Then
|
||||
ShowValidationMessage()
|
||||
cmb.Focus()
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
' ========================= DATE PICKER =========================
|
||||
If oControl.Name.StartsWith("dtp") Then
|
||||
Dim dtp As DevExpress.XtraEditors.DateEdit = oControl
|
||||
Dim oIndexName As String = Replace(dtp.Name, "dtp", "")
|
||||
|
||||
If dtp.Text = String.Empty Then
|
||||
Dim oOptional = TestIsIndexOptional(pDocType, oIndexName)
|
||||
|
||||
If oOptional = False Then
|
||||
ShowValidationMessage()
|
||||
dtp.Focus()
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
' ========================= CHECK BOX =========================
|
||||
If oControl.Name.StartsWith("chk") Then
|
||||
Dim chk As CheckBox = oControl
|
||||
'result = True
|
||||
End If
|
||||
|
||||
'If TypeOf (oControl) Is Button Then
|
||||
' Continue For
|
||||
'End If
|
||||
|
||||
'If oControl.Name.StartsWith("lbl") = False And result = False Then
|
||||
' Logger.Info("Die Überprüfung der manuellen Indices ist fehlerhaft. Bitte informieren Sie den Systembetreuer")
|
||||
' Return False
|
||||
'End If
|
||||
Next
|
||||
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Unvorhergesehener Fehler in ValidateControls")
|
||||
Logger.Error(ex.Message)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
End Class
|
||||
54
GUIs.ZooFlow/Globix/frmGlobix_Index.Designer.vb
generated
54
GUIs.ZooFlow/Globix/frmGlobix_Index.Designer.vb
generated
@ -52,9 +52,10 @@ Partial Class frmGlobix_Index
|
||||
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
|
||||
Me.pnlIndex = New System.Windows.Forms.Panel()
|
||||
Me.Panel3 = New System.Windows.Forms.Panel()
|
||||
Me.Button1 = New System.Windows.Forms.Button()
|
||||
Me.btnAblageFlow = New System.Windows.Forms.Button()
|
||||
Me.Panel1 = New System.Windows.Forms.Panel()
|
||||
Me.ComboBoxEdit1 = New DevExpress.XtraEditors.ComboBoxEdit()
|
||||
Me.cmbDocType = New DevExpress.XtraEditors.ComboBoxEdit()
|
||||
Me.DocumentViewer1 = New DigitalData.Controls.DocumentViewer.DocumentViewer()
|
||||
Me.GlobixDataset = New DigitalData.GUIs.ZooFlow.GlobixDataset()
|
||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
@ -62,7 +63,7 @@ Partial Class frmGlobix_Index
|
||||
Me.SplitContainerControl1.SuspendLayout()
|
||||
Me.Panel3.SuspendLayout()
|
||||
Me.Panel1.SuspendLayout()
|
||||
CType(Me.ComboBoxEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.cmbDocType.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.GlobixDataset, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
@ -263,6 +264,7 @@ Partial Class frmGlobix_Index
|
||||
'
|
||||
'Panel3
|
||||
'
|
||||
Me.Panel3.Controls.Add(Me.Button1)
|
||||
Me.Panel3.Controls.Add(Me.btnAblageFlow)
|
||||
Me.Panel3.Dock = System.Windows.Forms.DockStyle.Bottom
|
||||
Me.Panel3.Location = New System.Drawing.Point(0, 433)
|
||||
@ -270,24 +272,35 @@ Partial Class frmGlobix_Index
|
||||
Me.Panel3.Size = New System.Drawing.Size(522, 75)
|
||||
Me.Panel3.TabIndex = 2
|
||||
'
|
||||
'Button1
|
||||
'
|
||||
Me.Button1.Font = New System.Drawing.Font("Tahoma", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.Button1.ImageAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
Me.Button1.Location = New System.Drawing.Point(317, 15)
|
||||
Me.Button1.Name = "Button1"
|
||||
Me.Button1.Size = New System.Drawing.Size(186, 44)
|
||||
Me.Button1.TabIndex = 1
|
||||
Me.Button1.Text = "Starte Ablage (Neu)"
|
||||
Me.Button1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||
Me.Button1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'btnAblageFlow
|
||||
'
|
||||
Me.btnAblageFlow.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.btnAblageFlow.Font = New System.Drawing.Font("Tahoma", 15.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.btnAblageFlow.Font = New System.Drawing.Font("Tahoma", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.btnAblageFlow.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.ZooFlow_g_64___Kopie
|
||||
Me.btnAblageFlow.ImageAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
Me.btnAblageFlow.Location = New System.Drawing.Point(0, 0)
|
||||
Me.btnAblageFlow.Location = New System.Drawing.Point(12, 6)
|
||||
Me.btnAblageFlow.Name = "btnAblageFlow"
|
||||
Me.btnAblageFlow.Size = New System.Drawing.Size(522, 75)
|
||||
Me.btnAblageFlow.Size = New System.Drawing.Size(185, 63)
|
||||
Me.btnAblageFlow.TabIndex = 1
|
||||
Me.btnAblageFlow.Text = "Starte Ablage"
|
||||
Me.btnAblageFlow.Text = "Starte Ablage (Alt)"
|
||||
Me.btnAblageFlow.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||
Me.btnAblageFlow.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Panel1
|
||||
'
|
||||
Me.Panel1.BackColor = System.Drawing.Color.Silver
|
||||
Me.Panel1.Controls.Add(Me.ComboBoxEdit1)
|
||||
Me.Panel1.Controls.Add(Me.cmbDocType)
|
||||
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top
|
||||
Me.Panel1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.Panel1.Name = "Panel1"
|
||||
@ -296,18 +309,18 @@ Partial Class frmGlobix_Index
|
||||
'
|
||||
'ComboBoxEdit1
|
||||
'
|
||||
Me.ComboBoxEdit1.Dock = System.Windows.Forms.DockStyle.Top
|
||||
Me.ComboBoxEdit1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.ComboBoxEdit1.MenuManager = Me.RibbonControl1
|
||||
Me.ComboBoxEdit1.Name = "ComboBoxEdit1"
|
||||
Me.cmbDocType.Dock = System.Windows.Forms.DockStyle.Top
|
||||
Me.cmbDocType.Location = New System.Drawing.Point(0, 0)
|
||||
Me.cmbDocType.MenuManager = Me.RibbonControl1
|
||||
Me.cmbDocType.Name = "ComboBoxEdit1"
|
||||
SerializableAppearanceObject1.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(214, Byte), Integer), CType(CType(49, Byte), Integer))
|
||||
SerializableAppearanceObject1.Options.UseBackColor = True
|
||||
Me.ComboBoxEdit1.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo, "", 20, True, True, False, EditorButtonImageOptions1, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject1, SerializableAppearanceObject2, SerializableAppearanceObject3, SerializableAppearanceObject4, "", Nothing, Nothing, DevExpress.Utils.ToolTipAnchor.[Default])})
|
||||
Me.ComboBoxEdit1.Properties.ButtonsStyle = DevExpress.XtraEditors.Controls.BorderStyles.UltraFlat
|
||||
Me.ComboBoxEdit1.Properties.NullText = "Bitte wählen Sie ein Profil"
|
||||
Me.ComboBoxEdit1.Properties.Padding = New System.Windows.Forms.Padding(5)
|
||||
Me.ComboBoxEdit1.Size = New System.Drawing.Size(522, 30)
|
||||
Me.ComboBoxEdit1.TabIndex = 4
|
||||
Me.cmbDocType.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo, "", 20, True, True, False, EditorButtonImageOptions1, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject1, SerializableAppearanceObject2, SerializableAppearanceObject3, SerializableAppearanceObject4, "", Nothing, Nothing, DevExpress.Utils.ToolTipAnchor.[Default])})
|
||||
Me.cmbDocType.Properties.ButtonsStyle = DevExpress.XtraEditors.Controls.BorderStyles.UltraFlat
|
||||
Me.cmbDocType.Properties.NullText = "Bitte wählen Sie ein Profil"
|
||||
Me.cmbDocType.Properties.Padding = New System.Windows.Forms.Padding(5)
|
||||
Me.cmbDocType.Size = New System.Drawing.Size(522, 30)
|
||||
Me.cmbDocType.TabIndex = 4
|
||||
'
|
||||
'DocumentViewer1
|
||||
'
|
||||
@ -342,7 +355,7 @@ Partial Class frmGlobix_Index
|
||||
Me.SplitContainerControl1.ResumeLayout(False)
|
||||
Me.Panel3.ResumeLayout(False)
|
||||
Me.Panel1.ResumeLayout(False)
|
||||
CType(Me.ComboBoxEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.cmbDocType.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.GlobixDataset, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
@ -376,6 +389,7 @@ Partial Class frmGlobix_Index
|
||||
Friend WithEvents pnlIndex As Panel
|
||||
Friend WithEvents Panel3 As Panel
|
||||
Friend WithEvents GlobixDataset As GlobixDataset
|
||||
Friend WithEvents ComboBoxEdit1 As DevExpress.XtraEditors.ComboBoxEdit
|
||||
Friend WithEvents cmbDocType As DevExpress.XtraEditors.ComboBoxEdit
|
||||
Friend WithEvents btnAblageFlow As Button
|
||||
Friend WithEvents Button1 As Button
|
||||
End Class
|
||||
|
||||
@ -11,6 +11,7 @@ Imports DigitalData.Modules.Language.Utils
|
||||
Imports DigitalData.Controls.LookupGrid
|
||||
Imports Independentsoft
|
||||
Imports DevExpress.XtraEditors.Controls
|
||||
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
|
||||
|
||||
Public Class frmGlobix_Index
|
||||
#Region "+++++ Variablen ++++++"
|
||||
@ -51,11 +52,13 @@ Public Class frmGlobix_Index
|
||||
Return Name
|
||||
End Function
|
||||
End Class
|
||||
|
||||
Public Class ControlMeta
|
||||
Public Property IndexName As String
|
||||
Public Property IndexType As String
|
||||
Public Property MultipleValues As Boolean = False
|
||||
End Class
|
||||
|
||||
#End Region
|
||||
Public Sub New(LogConfig As LogConfig)
|
||||
|
||||
@ -260,12 +263,12 @@ Public Class frmGlobix_Index
|
||||
checkItemPreselection.Checked = True
|
||||
|
||||
If My.Application.Globix.CURRENT_LASTDOCTYPE <> "" Then
|
||||
Dim oFoundDocType = ComboBoxEdit1.Properties.Items.
|
||||
Dim oFoundDocType = cmbDocType.Properties.Items.
|
||||
Cast(Of DocType)().
|
||||
Where(Function(dt) dt.Name = My.Application.Globix.CURRENT_LASTDOCTYPE).
|
||||
FirstOrDefault()
|
||||
If oFoundDocType IsNot Nothing Then
|
||||
ComboBoxEdit1.SelectedItem = oFoundDocType
|
||||
cmbDocType.SelectedItem = oFoundDocType
|
||||
End If
|
||||
|
||||
|
||||
@ -278,13 +281,13 @@ Public Class frmGlobix_Index
|
||||
|
||||
_Logger.Debug("There is a match on REGEX_DOCTYPE: [{0}]", oRoW.Item("DOCTYPE"))
|
||||
_Logger.Debug("Regex: [{0}], FileName: [{1}]", oRoW.Item("Regex"), oOnlyFilename)
|
||||
Dim oFoundDocType = ComboBoxEdit1.Properties.Items.
|
||||
Dim oFoundDocType = cmbDocType.Properties.Items.
|
||||
Cast(Of DocType)().
|
||||
Where(Function(dt) dt.Name = My.Application.Globix.CURRENT_LASTDOCTYPE).
|
||||
FirstOrDefault()
|
||||
|
||||
If oFoundDocType IsNot Nothing Then
|
||||
ComboBoxEdit1.SelectedItem = oFoundDocType
|
||||
cmbDocType.SelectedItem = oFoundDocType
|
||||
End If
|
||||
Exit For
|
||||
End If
|
||||
@ -307,7 +310,7 @@ Public Class frmGlobix_Index
|
||||
DT_VWGI_DOCTYPE = _DataASorDB.GetDatatable("DD_ECM", oSql, "VWGI_DOCTYPE", oFilter, "SEQUENCE")
|
||||
|
||||
For Each oRow As DataRow In DT_VWGI_DOCTYPE.Rows
|
||||
ComboBoxEdit1.Properties.Items.Add(New DocType With {
|
||||
cmbDocType.Properties.Items.Add(New DocType With {
|
||||
.Guid = oRow.Item("DOCTYPE_ID"),
|
||||
.Name = oRow.Item("DOCTYPE")
|
||||
})
|
||||
@ -319,9 +322,9 @@ Public Class frmGlobix_Index
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub ComboBoxEdit1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBoxEdit1.SelectedIndexChanged
|
||||
If ComboBoxEdit1.SelectedIndex <> -1 And FormLoaded = True Then
|
||||
Dim oSelectedItem As DocType = ComboBoxEdit1.SelectedItem
|
||||
Private Sub ComboBoxEdit1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbDocType.SelectedIndexChanged
|
||||
If cmbDocType.SelectedIndex <> -1 And FormLoaded = True Then
|
||||
Dim oSelectedItem As DocType = cmbDocType.SelectedItem
|
||||
|
||||
My.Application.Globix.CURRENT_DOCTYPE_ID = oSelectedItem.Guid
|
||||
|
||||
@ -393,8 +396,8 @@ Public Class frmGlobix_Index
|
||||
|
||||
_Controls = oControls
|
||||
If DT_INDEXEMAN.Rows.Count = 0 Then
|
||||
ShowError("Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & ComboBoxEdit1.Text & " definiert")
|
||||
_Logger.Info(" - Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & ComboBoxEdit1.Text & " definiert")
|
||||
ShowError("Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & cmbDocType.Text & " definiert")
|
||||
_Logger.Info(" - Keine Manuellen Indizes für die " & vbNewLine & "Dokumentart " & cmbDocType.Text & " definiert")
|
||||
End If
|
||||
|
||||
For Each oRow As DataRow In DT_INDEXEMAN.Rows
|
||||
@ -778,13 +781,15 @@ Public Class frmGlobix_Index
|
||||
Private Sub GlobixFlow()
|
||||
ClearError()
|
||||
ClearNotice()
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
Cursor = Cursors.WaitCursor
|
||||
Refresh_RegexTable()
|
||||
|
||||
For Each rowregex As DataRow In My.Application.Globix.DT_FUNCTION_REGEX.Rows
|
||||
If rowregex.Item("FUNCTION_NAME") = "CLEAN_FILENAME" Then
|
||||
My.Application.Globix.REGEX_CLEAN_FILENAME = rowregex.Item("REGEX")
|
||||
End If
|
||||
Next
|
||||
|
||||
If chkMultiindexing.Visibility = DevExpress.XtraBars.BarItemVisibility.Always And chkMultiindexing.Checked = True Then
|
||||
'Die erste Datei indexieren
|
||||
If WORK_FILE() = True Then
|
||||
@ -854,7 +859,7 @@ Public Class frmGlobix_Index
|
||||
_Logger.Debug("Manuelle Indexe geladen")
|
||||
|
||||
If My.Application.Globix.CURR_DT_MAN_INDEXE.Rows.Count > 0 Then
|
||||
Dim oDokart As DocType = ComboBoxEdit1.SelectedItem
|
||||
Dim oDokart As DocType = cmbDocType.SelectedItem
|
||||
My.Application.Globix.CURRENT_DOCTYPE_ID = oDokart.Guid
|
||||
|
||||
If CheckWrite_IndexeMan(oDokart.Guid) = True Then
|
||||
@ -2404,11 +2409,48 @@ Public Class frmGlobix_Index
|
||||
|
||||
End Function
|
||||
|
||||
Private Sub PictureEdit1_EditValueChanged(sender As Object, e As EventArgs)
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub btnAblageFlow_Click(sender As Object, e As EventArgs) Handles btnAblageFlow.Click
|
||||
GlobixFlow()
|
||||
End Sub
|
||||
|
||||
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
|
||||
Dim oDokart As DocType = cmbDocType.SelectedItem
|
||||
Await GlobixFlowNew(oDokart)
|
||||
End Sub
|
||||
|
||||
Private Async Function GlobixFlowNew(pDocType As DocType) As Threading.Tasks.Task(Of Boolean)
|
||||
Try
|
||||
ClearError()
|
||||
ClearNotice()
|
||||
Cursor = Cursors.WaitCursor
|
||||
|
||||
Dim oValidator As New ClassValidator(My.LogConfig, My.Application.Service.Client)
|
||||
If oValidator.ValidateControls(pnlIndex.Controls, pDocType) = False Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
'TODO: Globix File Import
|
||||
|
||||
Dim oFileName As String
|
||||
Dim oObjectStore As String
|
||||
Dim oObjectKind As String
|
||||
Dim oBusinessENtity As String
|
||||
Dim oProfileId As Integer
|
||||
Dim oAttributes As List(Of UserAttributeValue)
|
||||
Dim oOptions As New Modules.EDMI.API.Options.ImportFileOptions
|
||||
|
||||
Await My.Application.Service.Client.ImportFileAsync(oFileName, oProfileId, oAttributes, oObjectStore, oObjectKind, oBusinessENtity, oOptions)
|
||||
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
_Logger.Error(ex)
|
||||
MsgBox("Indexierung fehlgeschlagen!", MsgBoxStyle.Critical, Text)
|
||||
|
||||
Finally
|
||||
Cursor = Cursors.Default
|
||||
|
||||
End Try
|
||||
End Function
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
4
GUIs.ZooFlow/My Project/Settings.Designer.vb
generated
4
GUIs.ZooFlow/My Project/Settings.Designer.vb
generated
@ -14,7 +14,7 @@ Option Explicit On
|
||||
|
||||
|
||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0"), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0"), _
|
||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Partial Friend NotInheritable Class Settings
|
||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
||||
@ -97,7 +97,7 @@ Partial Friend NotInheritable Class Settings
|
||||
|
||||
<Global.System.Configuration.UserScopedSettingAttribute(), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Configuration.DefaultSettingValueAttribute("17255")> _
|
||||
Global.System.Configuration.DefaultSettingValueAttribute("")> _
|
||||
Public Property IDBOBJID() As String
|
||||
Get
|
||||
Return CType(Me("IDBOBJID"),String)
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
<Value Profile="(Default)">Data Source=SDD-VMP04-SQL17\DD_DEVELOP01;Initial Catalog=DD_ECM;Persist Security Info=True;User ID=sa;Password=dd</Value>
|
||||
</Setting>
|
||||
<Setting Name="IDBOBJID" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">17255</Value>
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -200,6 +200,7 @@
|
||||
<Compile Include="ApplicationEvents.vb" />
|
||||
<Compile Include="Base\BaseClass.vb" />
|
||||
<Compile Include="ClassDragDrop.vb" />
|
||||
<Compile Include="ClassStrings.vb" />
|
||||
<Compile Include="ClipboardWatcher\ClassProfileLoader.vb" />
|
||||
<Compile Include="ClipboardWatcher\Watcher.vb" />
|
||||
<Compile Include="ClassCommandlineArgs.vb" />
|
||||
@ -235,6 +236,7 @@
|
||||
</Compile>
|
||||
<Compile Include="Globix\ClassExclusions.vb" />
|
||||
<Compile Include="ClassHelpers.vb" />
|
||||
<Compile Include="Globix\ClassValidator.vb" />
|
||||
<Compile Include="Globix\frmGlobixNameconvention.Designer.vb">
|
||||
<DependentUpon>frmGlobixNameconvention.vb</DependentUpon>
|
||||
</Compile>
|
||||
|
||||
199
GUIs.ZooFlow/frmtest.Designer.vb
generated
199
GUIs.ZooFlow/frmtest.Designer.vb
generated
@ -23,28 +23,19 @@ Partial Class frmtest
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.Label2 = New System.Windows.Forms.Label()
|
||||
Me.txtIDB_OBJ_ID = New System.Windows.Forms.TextBox()
|
||||
Me.txtFile2Import = New System.Windows.Forms.TextBox()
|
||||
Me.Button4 = New System.Windows.Forms.Button()
|
||||
Me.Button5 = New System.Windows.Forms.Button()
|
||||
Me.CheckBoxKeepExtension = New System.Windows.Forms.CheckBox()
|
||||
Me.Button6 = New System.Windows.Forms.Button()
|
||||
Me.btnOpenFile = New System.Windows.Forms.Button()
|
||||
Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
|
||||
Me.Button7 = New System.Windows.Forms.Button()
|
||||
Me.Button8 = New System.Windows.Forms.Button()
|
||||
Me.btnNewFile = New System.Windows.Forms.Button()
|
||||
Me.Label4 = New System.Windows.Forms.Label()
|
||||
Me.Label5 = New System.Windows.Forms.Label()
|
||||
Me.cmbObjectStoreType = New System.Windows.Forms.ComboBox()
|
||||
Me.DateTimePicker1 = New System.Windows.Forms.DateTimePicker()
|
||||
Me.Label6 = New System.Windows.Forms.Label()
|
||||
Me.TextBox1 = New System.Windows.Forms.TextBox()
|
||||
Me.btnImportFile = New System.Windows.Forms.Button()
|
||||
Me.Label1 = New System.Windows.Forms.Label()
|
||||
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
|
||||
Me.ListBox1 = New System.Windows.Forms.ListBox()
|
||||
Me.txtAttributeName = New System.Windows.Forms.TextBox()
|
||||
Me.Button2 = New System.Windows.Forms.Button()
|
||||
Me.txtAttibuteValue = New System.Windows.Forms.TextBox()
|
||||
Me.GroupBox1.SuspendLayout()
|
||||
Me.txtProfileId = New System.Windows.Forms.TextBox()
|
||||
Me.txtIDB_OBJ_ID = New System.Windows.Forms.TextBox()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'Label2
|
||||
@ -56,15 +47,6 @@ Partial Class frmtest
|
||||
Me.Label2.TabIndex = 6
|
||||
Me.Label2.Text = "FileStoreType"
|
||||
'
|
||||
'txtIDB_OBJ_ID
|
||||
'
|
||||
Me.txtIDB_OBJ_ID.DataBindings.Add(New System.Windows.Forms.Binding("Text", Global.DigitalData.GUIs.ZooFlow.Settings.Default, "IDBOBJID", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged))
|
||||
Me.txtIDB_OBJ_ID.Location = New System.Drawing.Point(137, 38)
|
||||
Me.txtIDB_OBJ_ID.Name = "txtIDB_OBJ_ID"
|
||||
Me.txtIDB_OBJ_ID.Size = New System.Drawing.Size(100, 20)
|
||||
Me.txtIDB_OBJ_ID.TabIndex = 9
|
||||
Me.txtIDB_OBJ_ID.Text = Global.DigitalData.GUIs.ZooFlow.Settings.Default.IDBOBJID
|
||||
'
|
||||
'txtFile2Import
|
||||
'
|
||||
Me.txtFile2Import.Location = New System.Drawing.Point(137, 12)
|
||||
@ -72,66 +54,27 @@ Partial Class frmtest
|
||||
Me.txtFile2Import.Size = New System.Drawing.Size(426, 20)
|
||||
Me.txtFile2Import.TabIndex = 11
|
||||
'
|
||||
'Button4
|
||||
'btnOpenFile
|
||||
'
|
||||
Me.Button4.Location = New System.Drawing.Point(16, 345)
|
||||
Me.Button4.Name = "Button4"
|
||||
Me.Button4.Size = New System.Drawing.Size(286, 23)
|
||||
Me.Button4.TabIndex = 13
|
||||
Me.Button4.Text = "4A. Reopen from AppServ"
|
||||
Me.Button4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button5
|
||||
'
|
||||
Me.Button5.Location = New System.Drawing.Point(16, 374)
|
||||
Me.Button5.Name = "Button5"
|
||||
Me.Button5.Size = New System.Drawing.Size(286, 23)
|
||||
Me.Button5.TabIndex = 14
|
||||
Me.Button5.Text = "4B. Alternative stream/append"
|
||||
Me.Button5.UseVisualStyleBackColor = True
|
||||
'
|
||||
'CheckBoxKeepExtension
|
||||
'
|
||||
Me.CheckBoxKeepExtension.AutoSize = True
|
||||
Me.CheckBoxKeepExtension.Checked = True
|
||||
Me.CheckBoxKeepExtension.CheckState = System.Windows.Forms.CheckState.Checked
|
||||
Me.CheckBoxKeepExtension.Location = New System.Drawing.Point(16, 19)
|
||||
Me.CheckBoxKeepExtension.Name = "CheckBoxKeepExtension"
|
||||
Me.CheckBoxKeepExtension.Size = New System.Drawing.Size(100, 17)
|
||||
Me.CheckBoxKeepExtension.TabIndex = 15
|
||||
Me.CheckBoxKeepExtension.Text = "Keep Extension"
|
||||
Me.CheckBoxKeepExtension.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button6
|
||||
'
|
||||
Me.Button6.Location = New System.Drawing.Point(569, 9)
|
||||
Me.Button6.Name = "Button6"
|
||||
Me.Button6.Size = New System.Drawing.Size(75, 23)
|
||||
Me.Button6.TabIndex = 16
|
||||
Me.Button6.Text = "Select File"
|
||||
Me.Button6.UseVisualStyleBackColor = True
|
||||
Me.btnOpenFile.Location = New System.Drawing.Point(569, 9)
|
||||
Me.btnOpenFile.Name = "btnOpenFile"
|
||||
Me.btnOpenFile.Size = New System.Drawing.Size(75, 23)
|
||||
Me.btnOpenFile.TabIndex = 16
|
||||
Me.btnOpenFile.Text = "Select File"
|
||||
Me.btnOpenFile.UseVisualStyleBackColor = True
|
||||
'
|
||||
'OpenFileDialog1
|
||||
'
|
||||
Me.OpenFileDialog1.FileName = "OpenFileDialog1"
|
||||
'
|
||||
'Button7
|
||||
'btnNewFile
|
||||
'
|
||||
Me.Button7.Location = New System.Drawing.Point(16, 403)
|
||||
Me.Button7.Name = "Button7"
|
||||
Me.Button7.Size = New System.Drawing.Size(286, 23)
|
||||
Me.Button7.TabIndex = 14
|
||||
Me.Button7.Text = "4C. Alternative"
|
||||
Me.Button7.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button8
|
||||
'
|
||||
Me.Button8.Location = New System.Drawing.Point(12, 142)
|
||||
Me.Button8.Name = "Button8"
|
||||
Me.Button8.Size = New System.Drawing.Size(187, 23)
|
||||
Me.Button8.TabIndex = 17
|
||||
Me.Button8.Text = "Import File"
|
||||
Me.Button8.UseVisualStyleBackColor = True
|
||||
Me.btnNewFile.Location = New System.Drawing.Point(12, 142)
|
||||
Me.btnNewFile.Name = "btnNewFile"
|
||||
Me.btnNewFile.Size = New System.Drawing.Size(187, 23)
|
||||
Me.btnNewFile.TabIndex = 17
|
||||
Me.btnNewFile.Text = "NewFile"
|
||||
Me.btnNewFile.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label4
|
||||
'
|
||||
@ -177,93 +120,61 @@ Partial Class frmtest
|
||||
Me.Label6.TabIndex = 6
|
||||
Me.Label6.Text = "Date"
|
||||
'
|
||||
'TextBox1
|
||||
'btnImportFile
|
||||
'
|
||||
Me.TextBox1.Location = New System.Drawing.Point(137, 183)
|
||||
Me.TextBox1.Name = "TextBox1"
|
||||
Me.TextBox1.Size = New System.Drawing.Size(426, 20)
|
||||
Me.TextBox1.TabIndex = 21
|
||||
Me.btnImportFile.Location = New System.Drawing.Point(205, 142)
|
||||
Me.btnImportFile.Name = "btnImportFile"
|
||||
Me.btnImportFile.Size = New System.Drawing.Size(187, 23)
|
||||
Me.btnImportFile.TabIndex = 17
|
||||
Me.btnImportFile.Text = "ImportFile (GLOBIX)"
|
||||
Me.btnImportFile.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label1
|
||||
'
|
||||
Me.Label1.AutoSize = True
|
||||
Me.Label1.Location = New System.Drawing.Point(9, 186)
|
||||
Me.Label1.Location = New System.Drawing.Point(410, 44)
|
||||
Me.Label1.Name = "Label1"
|
||||
Me.Label1.Size = New System.Drawing.Size(98, 13)
|
||||
Me.Label1.Size = New System.Drawing.Size(45, 13)
|
||||
Me.Label1.TabIndex = 18
|
||||
Me.Label1.Text = "File Path (Imported)"
|
||||
Me.Label1.Text = "ProfileId"
|
||||
'
|
||||
'GroupBox1
|
||||
'txtProfileId
|
||||
'
|
||||
Me.GroupBox1.Controls.Add(Me.CheckBoxKeepExtension)
|
||||
Me.GroupBox1.Location = New System.Drawing.Point(653, 12)
|
||||
Me.GroupBox1.Name = "GroupBox1"
|
||||
Me.GroupBox1.Size = New System.Drawing.Size(200, 100)
|
||||
Me.GroupBox1.TabIndex = 22
|
||||
Me.GroupBox1.TabStop = False
|
||||
Me.GroupBox1.Text = "Import Options"
|
||||
Me.txtProfileId.Location = New System.Drawing.Point(461, 41)
|
||||
Me.txtProfileId.Name = "txtProfileId"
|
||||
Me.txtProfileId.Size = New System.Drawing.Size(100, 20)
|
||||
Me.txtProfileId.TabIndex = 21
|
||||
Me.txtProfileId.Text = "1"
|
||||
'
|
||||
'ListBox1
|
||||
'txtIDB_OBJ_ID
|
||||
'
|
||||
Me.ListBox1.FormattingEnabled = True
|
||||
Me.ListBox1.Location = New System.Drawing.Point(653, 118)
|
||||
Me.ListBox1.Name = "ListBox1"
|
||||
Me.ListBox1.Size = New System.Drawing.Size(200, 329)
|
||||
Me.ListBox1.TabIndex = 23
|
||||
'
|
||||
'txtAttributeName
|
||||
'
|
||||
Me.txtAttributeName.Location = New System.Drawing.Point(205, 236)
|
||||
Me.txtAttributeName.Name = "txtAttributeName"
|
||||
Me.txtAttributeName.Size = New System.Drawing.Size(115, 20)
|
||||
Me.txtAttributeName.TabIndex = 24
|
||||
Me.txtAttributeName.Text = "InvoiceNr"
|
||||
'
|
||||
'Button2
|
||||
'
|
||||
Me.Button2.Location = New System.Drawing.Point(12, 234)
|
||||
Me.Button2.Name = "Button2"
|
||||
Me.Button2.Size = New System.Drawing.Size(187, 23)
|
||||
Me.Button2.TabIndex = 17
|
||||
Me.Button2.Text = "GetAttribute"
|
||||
Me.Button2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'txtAttibuteValue
|
||||
'
|
||||
Me.txtAttibuteValue.Location = New System.Drawing.Point(326, 236)
|
||||
Me.txtAttibuteValue.Name = "txtAttibuteValue"
|
||||
Me.txtAttibuteValue.Size = New System.Drawing.Size(100, 20)
|
||||
Me.txtAttibuteValue.TabIndex = 25
|
||||
Me.txtIDB_OBJ_ID.DataBindings.Add(New System.Windows.Forms.Binding("Text", Global.DigitalData.GUIs.ZooFlow.Settings.Default, "IDBOBJID", True, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged))
|
||||
Me.txtIDB_OBJ_ID.Location = New System.Drawing.Point(137, 38)
|
||||
Me.txtIDB_OBJ_ID.Name = "txtIDB_OBJ_ID"
|
||||
Me.txtIDB_OBJ_ID.Size = New System.Drawing.Size(100, 20)
|
||||
Me.txtIDB_OBJ_ID.TabIndex = 9
|
||||
Me.txtIDB_OBJ_ID.Text = Global.DigitalData.GUIs.ZooFlow.Settings.Default.IDBOBJID
|
||||
'
|
||||
'frmtest
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(865, 450)
|
||||
Me.Controls.Add(Me.txtAttibuteValue)
|
||||
Me.Controls.Add(Me.txtAttributeName)
|
||||
Me.Controls.Add(Me.ListBox1)
|
||||
Me.Controls.Add(Me.GroupBox1)
|
||||
Me.Controls.Add(Me.TextBox1)
|
||||
Me.Controls.Add(Me.txtProfileId)
|
||||
Me.Controls.Add(Me.DateTimePicker1)
|
||||
Me.Controls.Add(Me.cmbObjectStoreType)
|
||||
Me.Controls.Add(Me.Label5)
|
||||
Me.Controls.Add(Me.Label1)
|
||||
Me.Controls.Add(Me.Label5)
|
||||
Me.Controls.Add(Me.Label4)
|
||||
Me.Controls.Add(Me.Button2)
|
||||
Me.Controls.Add(Me.Button8)
|
||||
Me.Controls.Add(Me.Button6)
|
||||
Me.Controls.Add(Me.Button7)
|
||||
Me.Controls.Add(Me.Button5)
|
||||
Me.Controls.Add(Me.Button4)
|
||||
Me.Controls.Add(Me.btnImportFile)
|
||||
Me.Controls.Add(Me.btnNewFile)
|
||||
Me.Controls.Add(Me.btnOpenFile)
|
||||
Me.Controls.Add(Me.txtFile2Import)
|
||||
Me.Controls.Add(Me.txtIDB_OBJ_ID)
|
||||
Me.Controls.Add(Me.Label6)
|
||||
Me.Controls.Add(Me.Label2)
|
||||
Me.Name = "frmtest"
|
||||
Me.Text = "frmtest"
|
||||
Me.GroupBox1.ResumeLayout(False)
|
||||
Me.GroupBox1.PerformLayout()
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
@ -271,23 +182,15 @@ Partial Class frmtest
|
||||
Friend WithEvents Label2 As Label
|
||||
Friend WithEvents txtIDB_OBJ_ID As TextBox
|
||||
Friend WithEvents txtFile2Import As TextBox
|
||||
Friend WithEvents Button4 As Button
|
||||
Friend WithEvents Button5 As Button
|
||||
Friend WithEvents CheckBoxKeepExtension As CheckBox
|
||||
Friend WithEvents Button6 As Button
|
||||
Friend WithEvents btnOpenFile As Button
|
||||
Friend WithEvents OpenFileDialog1 As OpenFileDialog
|
||||
Friend WithEvents Button7 As Button
|
||||
Friend WithEvents Button8 As Button
|
||||
Friend WithEvents btnNewFile As Button
|
||||
Friend WithEvents Label4 As Label
|
||||
Friend WithEvents Label5 As Label
|
||||
Friend WithEvents cmbObjectStoreType As ComboBox
|
||||
Friend WithEvents DateTimePicker1 As DateTimePicker
|
||||
Friend WithEvents Label6 As Label
|
||||
Friend WithEvents TextBox1 As TextBox
|
||||
Friend WithEvents btnImportFile As Button
|
||||
Friend WithEvents Label1 As Label
|
||||
Friend WithEvents GroupBox1 As GroupBox
|
||||
Friend WithEvents ListBox1 As ListBox
|
||||
Friend WithEvents txtAttributeName As TextBox
|
||||
Friend WithEvents Button2 As Button
|
||||
Friend WithEvents txtAttibuteValue As TextBox
|
||||
Friend WithEvents txtProfileId As TextBox
|
||||
End Class
|
||||
|
||||
@ -6,96 +6,19 @@ Imports System.Text
|
||||
Imports DigitalData.Modules.EDMI.API.Client
|
||||
|
||||
Public Class frmtest
|
||||
'Private Sub Button1_Click(sender As Object, e As EventArgs)
|
||||
' My.Settings.Save()
|
||||
' Dim oString As String
|
||||
' Dim oextension = ""
|
||||
' Dim oKeepExtension As Boolean = False
|
||||
' If CheckBoxKeepExtension.Checked Then
|
||||
' If txtFile2Import.Text <> String.Empty Then
|
||||
' oextension = Path.GetExtension(txtFile2Import.Text)
|
||||
' oKeepExtension = True
|
||||
' End If
|
||||
|
||||
' End If
|
||||
' oString = My.Application.Service.Client.CreateFileStoreObject(txtIDB_OBJ_ID.Text, txtFilestoreType.Text, txtDate.Text, oextension, oKeepExtension)
|
||||
' txtIDBFOPath.Text = oString
|
||||
|
||||
'End Sub
|
||||
|
||||
'Private Sub Button2_Click(sender As Object, e As EventArgs)
|
||||
' Dim oString As String
|
||||
' oString = My.Application.Service.Client.CreateObjectId("DOC", My.Application.User.UserName, "")
|
||||
' txtIDB_OBJ_ID.Text = oString
|
||||
'End Sub
|
||||
|
||||
'Private Async Sub Button3_Click(sender As Object, e As EventArgs)
|
||||
' Try
|
||||
' Dim oResult As Boolean = False
|
||||
|
||||
' Using oStream As New FileStream(txtFile2Import.Text, FileMode.Open, FileAccess.Read)
|
||||
' Using oMemoryStream As New MemoryStream
|
||||
' oStream.CopyTo(oMemoryStream)
|
||||
' Dim oContents As Byte() = oMemoryStream.ToArray()
|
||||
' oResult = Await My.Application.Service.Client.ImportFileObjectAsync(oContents, My.Application.User.UserName, txtIDB_OBJ_ID.Text, "WORK", txtIDBFOPath.Text)
|
||||
' End Using
|
||||
' End Using
|
||||
|
||||
' If oResult = False Then
|
||||
' MsgBox("Oh no error", MsgBoxStyle.Critical)
|
||||
' Else
|
||||
' MsgBox("#Nailedit")
|
||||
' End If
|
||||
' Catch ex As Exception
|
||||
' MsgBox(ex.Message)
|
||||
' End Try
|
||||
'End Sub
|
||||
|
||||
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
||||
Try
|
||||
Dim oextension = Path.GetExtension(txtFile2Import.Text)
|
||||
Dim oFile = $"E:\file{oextension}"
|
||||
Using oInputStream As New FileStream(TextBox1.Text, FileMode.Open)
|
||||
Using oFileStream As New FileStream(oFile, FileMode.Create, FileAccess.Write)
|
||||
oInputStream.CopyTo(oFileStream)
|
||||
End Using
|
||||
End Using
|
||||
Dim oPAth = Path.GetDirectoryName(oFile)
|
||||
MsgBox($"File [{oFile}] created!", MsgBoxStyle.Information)
|
||||
Process.Start(oPAth)
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
Private Sub frmtest_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
cmbObjectStoreType.SelectedIndex = 0
|
||||
End Sub
|
||||
|
||||
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
|
||||
Try
|
||||
Dim wFile As System.IO.FileStream
|
||||
Dim byteData() As Byte
|
||||
Dim oextension = Path.GetExtension(txtFile2Import.Text)
|
||||
byteData = Encoding.ASCII.GetBytes(txtFile2Import.Text)
|
||||
wFile = New FileStream($"E:\file{oextension}", FileMode.Append)
|
||||
wFile.Write(byteData, 0, byteData.Length)
|
||||
wFile.Close()
|
||||
Catch ex As IOException
|
||||
MsgBox(ex.ToString)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
|
||||
Private Sub btnOpenFile_Click(sender As Object, e As EventArgs) Handles btnOpenFile.Click
|
||||
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
|
||||
txtFile2Import.Text = OpenFileDialog1.FileName
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
|
||||
Dim oExt = Path.GetExtension(txtFile2Import.Text)
|
||||
Dim oFile = $"E:\file{oExt}"
|
||||
|
||||
File.Copy(TextBox1.Text, oFile)
|
||||
End Sub
|
||||
|
||||
Private Async Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
|
||||
Private Async Sub btnNewFile_Click(sender As Object, e As EventArgs) Handles btnNewFile.Click
|
||||
Dim oObjectId As Long = Await My.Application.Service.Client.NewFileAsync(
|
||||
txtFile2Import.Text,
|
||||
"WORK",
|
||||
@ -111,23 +34,22 @@ Public Class frmtest
|
||||
txtIDB_OBJ_ID.Text = oObjectId
|
||||
End Sub
|
||||
|
||||
Private Sub frmtest_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
cmbObjectStoreType.SelectedIndex = 0
|
||||
End Sub
|
||||
|
||||
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
||||
Try
|
||||
Dim oValue = My.Application.Service.Client.GetVariableValue(txtIDB_OBJ_ID.Text, txtAttributeName.Text)
|
||||
Private Async Sub btnImportFile_Click_(sender As Object, e As EventArgs) Handles btnImportFile.Click
|
||||
Dim oObjectId As Long = Await My.Application.Service.Client.ImportFileAsync(
|
||||
txtFile2Import.Text,
|
||||
txtProfileId.Text,
|
||||
New List(Of EDMIServiceReference.UserAttributeValue),
|
||||
"WORK",
|
||||
"DOC",
|
||||
"DEFAULT"
|
||||
)
|
||||
|
||||
If oValue.Type Is Nothing Then
|
||||
ListBox1.Items.Add("Value is nothing")
|
||||
Else
|
||||
ListBox1.Items.Add(oValue.Value)
|
||||
txtAttibuteValue.Text = oValue.Value
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.ToString)
|
||||
End Try
|
||||
If oObjectId <> INVALID_OBEJCT_ID Then
|
||||
MsgBox("File Imported!", MsgBoxStyle.Information, Text)
|
||||
Else
|
||||
MsgBox("File was not imported. Check the server logs!")
|
||||
End If
|
||||
txtIDB_OBJ_ID.Text = oObjectId
|
||||
End Sub
|
||||
End Class
|
||||
@ -179,11 +179,19 @@ Public Class Client
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Async Function ImportFileAsync(pFilePath As String, pObjectStoreName As String, pObjectKind As String, pBusinessEntity As String, Optional pImportOptions As Options.NewFileOptions = Nothing) As Task(Of Long)
|
||||
Public Async Function ImportFileAsync(
|
||||
pFilePath As String,
|
||||
pProfileId As Integer,
|
||||
pAttributeValues As List(Of UserAttributeValue),
|
||||
pObjectStoreName As String,
|
||||
pObjectKind As String,
|
||||
pBusinessEntity As String,
|
||||
Optional pImportOptions As Options.ImportFileOptions = Nothing
|
||||
) As Task(Of Long)
|
||||
Try
|
||||
' Set default options
|
||||
If pImportOptions Is Nothing Then
|
||||
pImportOptions = New Options.NewFileOptions()
|
||||
pImportOptions = New Options.ImportFileOptions()
|
||||
End If
|
||||
|
||||
' Check if file exists
|
||||
@ -221,7 +229,9 @@ Public Class Client
|
||||
.User = New UserState() With {
|
||||
.UserName = pImportOptions.Username,
|
||||
.Language = pImportOptions.Language
|
||||
}
|
||||
},
|
||||
.ProfileId = pProfileId,
|
||||
.AttributeValues = pAttributeValues.ToArray
|
||||
})
|
||||
If oFileImportResponse.OK = False Then
|
||||
Throw New ApplicationException("Could not Import File Contents!")
|
||||
|
||||
@ -25,6 +25,15 @@
|
||||
Public Property DateImported As Date = Date.Now
|
||||
End Class
|
||||
|
||||
Public Class ImportFileOptions
|
||||
Inherits BaseOptions
|
||||
|
||||
''' <summary>
|
||||
''' Date when the file was imported. Can be in the past. Defaults to now.
|
||||
''' </summary>
|
||||
Public Property DateImported As Date = Date.Now
|
||||
End Class
|
||||
|
||||
Public Class GetVariableValueOptions
|
||||
Inherits BaseOptions
|
||||
End Class
|
||||
|
||||
@ -94,6 +94,7 @@ Public Class Patterns2
|
||||
End Function
|
||||
|
||||
Public Function ReplaceUserValues(pInput As String, pUser As State.UserState) As String
|
||||
Logger.Debug("Replacing User Values")
|
||||
Dim oResult = pInput
|
||||
|
||||
Dim oModule = GetModule(Of Modules.User)()
|
||||
@ -104,9 +105,10 @@ Public Class Patterns2
|
||||
End Function
|
||||
|
||||
Public Function ReplaceFileValues(pInput As String, pFileInfo As FileInfo) As String
|
||||
Logger.Debug("Replacing File Values")
|
||||
Dim oResult = pInput
|
||||
|
||||
Dim oModule = GetModule(Of Modules.User)()
|
||||
Dim oModule = GetModule(Of Modules.FileInformation)()
|
||||
Dim oArgs = GetReplaceMapForModule(oModule, pFileInfo:=pFileInfo)
|
||||
oResult = DoReplaceForModule(oResult, oModule, oArgs)
|
||||
|
||||
@ -114,6 +116,7 @@ Public Class Patterns2
|
||||
End Function
|
||||
|
||||
Public Function ReplaceControlValues(pInput As String, pPanel As Panel) As String
|
||||
Logger.Debug("Replacing Control Values")
|
||||
Dim oResult = pInput
|
||||
|
||||
Dim oModule = GetModule(Of Modules.Controls)()
|
||||
@ -124,6 +127,7 @@ Public Class Patterns2
|
||||
End Function
|
||||
|
||||
Public Function ReplaceWindreamValues(pInput As String, pWMObject As WMObject) As String
|
||||
Logger.Debug("Replacing Windream Values")
|
||||
Dim oResult = pInput
|
||||
|
||||
Dim oModule = GetModule(Of Modules.Windream)()
|
||||
@ -134,6 +138,7 @@ Public Class Patterns2
|
||||
End Function
|
||||
|
||||
Public Function ReplaceInternalValues(pInput As String) As String
|
||||
Logger.Debug("Replacing Internal Values")
|
||||
Dim oResult = pInput
|
||||
|
||||
Dim oInternalModule = GetModule(Of Modules.Internal)()
|
||||
@ -148,6 +153,7 @@ Public Class Patterns2
|
||||
End Function
|
||||
|
||||
Public Function ReplaceGlobixValues(pInput As String, pGlobixIndexes As Dictionary(Of String, List(Of String))) As String
|
||||
Logger.Debug("Replacing Globix Values")
|
||||
Dim oResult = pInput
|
||||
|
||||
Dim oGlobixModule = GetModule(Of Modules.Globix)()
|
||||
@ -161,6 +167,12 @@ Public Class Patterns2
|
||||
|
||||
Private Function DoReplaceForModule(pInput As String, pModule As IModule, pArgs As Dictionary(Of String, Object)) As String
|
||||
Try
|
||||
If pModule IsNot Nothing AndAlso pModule?.GetType?.Name IsNot Nothing Then
|
||||
Logger.Debug("Calling Replace for Module [{0}]", pModule.GetType.Name)
|
||||
End If
|
||||
|
||||
Logger.Debug("Calling Replace for Input String [{0}]", pInput)
|
||||
|
||||
pInput = pModule.Replace(pInput, pArgs)
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Placeholders for String [{0}] could not be replaced completely in Module [{1}]. Skipping.", pInput, pModule.GetType.Name)
|
||||
@ -186,6 +198,7 @@ Public Class Patterns2
|
||||
Dim oArgs As New Dictionary(Of String, Object)
|
||||
|
||||
If TypeOf pModule Is Modules.Clipboard Then
|
||||
Logger.Debug("Adding Arguments for Clipboard Module")
|
||||
Try
|
||||
oArgs.Add(Patterns.Modules.Clipboard.CLIP_VALUE_BOARD, My.Computer.Clipboard.GetText())
|
||||
Catch ex As Exception
|
||||
@ -193,6 +206,7 @@ Public Class Patterns2
|
||||
End Try
|
||||
|
||||
ElseIf TypeOf pModule Is Modules.FileInformation Then
|
||||
Logger.Debug("Adding Arguments for File Module")
|
||||
Try
|
||||
oArgs.Add(Patterns.Modules.FileInformation.FILE_VALUE_FILEINFO, pFileInfo)
|
||||
Catch ex As Exception
|
||||
@ -200,6 +214,7 @@ Public Class Patterns2
|
||||
End Try
|
||||
|
||||
ElseIf TypeOf pModule Is Modules.User Then
|
||||
Logger.Debug("Adding Arguments for User Module")
|
||||
Try
|
||||
oArgs.Add(Patterns.Modules.User.USER_VALUE_EMAIL, pUser.Email)
|
||||
oArgs.Add(Patterns.Modules.User.USER_VALUE_LANGUAGE, pUser.Language)
|
||||
@ -213,6 +228,7 @@ Public Class Patterns2
|
||||
End Try
|
||||
|
||||
ElseIf TypeOf pModule Is Modules.Controls Then
|
||||
Logger.Debug("Adding Arguments for Controls Module")
|
||||
Try
|
||||
oArgs.Add(Patterns.Modules.Controls.CTRL_VALUE_PANEL, pPanel)
|
||||
Catch ex As Exception
|
||||
@ -220,6 +236,7 @@ Public Class Patterns2
|
||||
End Try
|
||||
|
||||
ElseIf TypeOf pModule Is Modules.Windream Then
|
||||
Logger.Debug("Adding Arguments for Windream Module")
|
||||
Try
|
||||
oArgs.Add(Patterns.Modules.Windream.WM_VALUE_DOCUMENT, pWMObject)
|
||||
Catch ex As Exception
|
||||
@ -227,6 +244,7 @@ Public Class Patterns2
|
||||
End Try
|
||||
|
||||
ElseIf TypeOf pModule Is Modules.Globix Then
|
||||
Logger.Debug("Adding Arguments for Globix Module")
|
||||
Try
|
||||
oArgs.Add(Patterns.Modules.Globix.GBX_VALUE_INDICIES, pGlobixIndexes)
|
||||
Catch ex As Exception
|
||||
|
||||
@ -12,9 +12,6 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
Private ReadOnly GetDatatable As GetDatatableFromCacheMethod
|
||||
|
||||
Private Profile As DataRow
|
||||
Private ManualIndexes As List(Of ManualIndex)
|
||||
Private AutomaticIndexes As List(Of AutomaticIndex)
|
||||
Private ManualIndexesPostProcessing As DataTable
|
||||
|
||||
Private Const VIEW_PROFILE = "VWGI_DOCTYPE_IDB"
|
||||
Private Const VIEW_INDEX_MANUAL = "VWDDINDEX_MAN"
|
||||
@ -41,7 +38,9 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
' TODO: Add missing user properties in UserState from TBDD_USER
|
||||
'pData.User = ResolveUserFromUserName(pData.User.UserName)
|
||||
|
||||
LoadIndexes(pData.ProfileId)
|
||||
Dim oManualIndexes = LoadManualIndexes(pData.ProfileId)
|
||||
Dim oAutomaticIndexes = LoadAutomaticIndexes(pData.ProfileId)
|
||||
Dim oPostProcessingSteps As DataTable = LoadPostProcessingSteps(oManualIndexes)
|
||||
LoadProfile(pData.ProfileId)
|
||||
|
||||
|
||||
@ -49,13 +48,11 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
Dim oFileName As String = GetFilenameByNameconvention(pData.File.FileName, Profile.Item("NAMENKONVENTION"))
|
||||
|
||||
' Apply post processing
|
||||
Dim oPostProcessing = New Steps.PostProcessing(LogConfig, ManualIndexesPostProcessing)
|
||||
Dim oPostProcessing = New Steps.PostProcessing(LogConfig, oPostProcessingSteps)
|
||||
oFinalAttributes = oPostProcessing.ApplyManualPostprocessing(oFinalAttributes)
|
||||
|
||||
' Apply automatic attributes
|
||||
Dim oAutomaticIndexing = New Steps.AutomaticIndexing(LogConfig, Database, AutomaticIndexes, GlobalState)
|
||||
|
||||
|
||||
Dim oAutomaticIndexing = New Steps.AutomaticIndexing(LogConfig, Database, oAutomaticIndexes, GlobalState)
|
||||
oFinalAttributes = oAutomaticIndexing.ApplyAutomaticeAttributes(oFinalAttributes, pData.File.FileInfoRaw, pData.User)
|
||||
|
||||
' Import the file
|
||||
@ -69,6 +66,7 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
})
|
||||
|
||||
If oResponse.OK Then
|
||||
Logger.Info("Import of file [{0}] under ObjectId [{1}] successful!", pData.File.FileName, oResponse.ObjectId)
|
||||
Return New ImportFileResponse(oResponse.ObjectId)
|
||||
Else
|
||||
Throw New ApplicationException(oResponse.ErrorMessage)
|
||||
@ -87,14 +85,6 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
Return pFileName
|
||||
End Function
|
||||
|
||||
Private Sub LoadIndexes(pProfileId As Integer)
|
||||
Logger.Debug("Start of Method [LoadIndexes]")
|
||||
|
||||
LoadManualIndexes(pProfileId)
|
||||
LoadAutomaticIndexes(pProfileId)
|
||||
LoadPostProcessingSteps()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Load Profiles for this Import
|
||||
''' </summary>
|
||||
@ -118,15 +108,18 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub LoadAutomaticIndexes(pProfileId As Integer)
|
||||
''' <summary>
|
||||
''' Load automatic indexes for this Import
|
||||
''' </summary>
|
||||
Private Function LoadAutomaticIndexes(pProfileId As Integer) As List(Of AutomaticIndex)
|
||||
Logger.Debug("Start of Method [LoadAutomaticIndexes]")
|
||||
|
||||
Try
|
||||
' Load automatic Indexes for this Import
|
||||
Dim oAutomaticIndexes = GetDatatable.Run(
|
||||
New GetDatatableFromCacheRequest With {
|
||||
.DataTable = VIEW_INDEX_MANUAL,
|
||||
.FilterExpression = $"DOK_ID = {pProfileId}"
|
||||
.DataTable = VIEW_INDEX_AUTOMATIC,
|
||||
.FilterExpression = $"DOCTYPE_ID = {pProfileId}"
|
||||
})
|
||||
|
||||
If oAutomaticIndexes.OK = False Then
|
||||
@ -145,15 +138,22 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
.Sequence = oRow.ItemEx(Of String)("SEQUENCE"),
|
||||
.Value = oRow.ItemEx(Of String)("VALUE")
|
||||
}
|
||||
|
||||
oIndexes.Add(oAutomaticIndex)
|
||||
Next
|
||||
|
||||
AutomaticIndexes = oIndexes
|
||||
Logger.Info("[{0}] automatic indexes loaded.", oIndexes)
|
||||
|
||||
Return oIndexes
|
||||
Catch ex As Exception
|
||||
LogAndThrow(ex, "Error while automatic loading indexes!")
|
||||
End Try
|
||||
End Sub
|
||||
End Function
|
||||
|
||||
Private Sub LoadManualIndexes(pProfileId As Integer)
|
||||
''' <summary>
|
||||
''' Load manual indexes for this Import
|
||||
''' </summary>
|
||||
Private Function LoadManualIndexes(pProfileId As Integer) As List(Of ManualIndex)
|
||||
Logger.Debug("Start of Method [LoadManualIndexes]")
|
||||
|
||||
Try
|
||||
@ -182,23 +182,32 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
.DefaultValue = oRow.ItemEx(Of String)("DEFAULT_VALUE"),
|
||||
.DataType = oRow.ItemEx(Of String)("DATA_TYPE")
|
||||
}
|
||||
|
||||
oIndexes.Add(oManualIndex)
|
||||
Next
|
||||
|
||||
ManualIndexes = oIndexes
|
||||
Return oIndexes
|
||||
|
||||
Catch ex As Exception
|
||||
LogAndThrow(ex, "Error while loading indexes!")
|
||||
End Try
|
||||
End Sub
|
||||
End Function
|
||||
|
||||
Private Sub LoadPostProcessingSteps()
|
||||
Private Function LoadPostProcessingSteps(pManualIndexes As List(Of ManualIndex)) As DataTable
|
||||
Logger.Debug("Start of Method [LoadPostProcessingSteps]")
|
||||
|
||||
Try
|
||||
' Generate a string containing all index ids joined into a string
|
||||
Dim oIndexIdList As List(Of Integer) = ManualIndexes.Select(Function(index) index.Id).ToList()
|
||||
Dim oIndexIdList As List(Of Integer) = pManualIndexes.
|
||||
Select(Function(index) index.Id).
|
||||
ToList()
|
||||
Dim oIndexIds As String = String.Join(",", oIndexIdList)
|
||||
|
||||
If oIndexIdList.Count = 0 Then
|
||||
Logger.Debug("No Postprocessing steps found for this profile. Exiting.")
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
' Load all relevant postprocessing steps
|
||||
Dim oPostProcessingSteps = GetDatatable.Run(
|
||||
New GetDatatableFromCacheRequest With {
|
||||
@ -210,11 +219,11 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
LogAndThrow(oPostProcessingSteps.ErrorMessage)
|
||||
End If
|
||||
|
||||
ManualIndexesPostProcessing = oPostProcessingSteps.Table
|
||||
Return oPostProcessingSteps.Table
|
||||
Catch ex As Exception
|
||||
LogAndThrow(ex, "Error while loading post processing steps!")
|
||||
End Try
|
||||
End Sub
|
||||
End Function
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@ -40,7 +40,7 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
''' Attribute Name/Attribute Value/ControlName
|
||||
''' </summary>
|
||||
<DataMember>
|
||||
Public Property AttributeValues As List(Of UserAttributeValue)
|
||||
Public Property AttributeValues As New List(Of UserAttributeValue)
|
||||
|
||||
''' <summary>
|
||||
''' User Importing the file
|
||||
|
||||
@ -20,17 +20,30 @@ Namespace Methods.GlobalIndexer.ImportFile.Steps
|
||||
GlobalState = pGlobalState
|
||||
AutomaticIndexes = pAutomaticIndexes
|
||||
Patterns = New Patterns2(pLogConfig)
|
||||
|
||||
Logger.Info("Starting Automatic Indexing")
|
||||
End Sub
|
||||
|
||||
Public Function ApplyAutomaticeAttributes(pManualAttributes As List(Of UserAttributeValue), pFileInfo As FileInfo, pUserState As UserState) As List(Of UserAttributeValue)
|
||||
Logger.Debug("Start of Method [ApplyAutomaticeAttributes]")
|
||||
Dim oAttributes = pManualAttributes
|
||||
Public Function ApplyAutomaticeAttributes(pUserAttributes As List(Of UserAttributeValue), pFileInfo As FileInfo, pUserState As UserState) As List(Of UserAttributeValue)
|
||||
Logger.Debug("Start of Method [ApplyAutomaticAttributes]")
|
||||
|
||||
If AutomaticIndexes Is Nothing OrElse AutomaticIndexes.Count = 0 Then
|
||||
Logger.Warn("No Automatix Indexes supplied. Exiting.")
|
||||
Return pUserAttributes
|
||||
End If
|
||||
|
||||
Logger.Info("Processing [{0}] automatic indexes", AutomaticIndexes.Count)
|
||||
Dim oAttributes As List(Of UserAttributeValue) = pUserAttributes
|
||||
|
||||
For Each oAutomaticIndex In AutomaticIndexes
|
||||
' We add oAttributes from the previous run into the current run so it is in theory possible to reference
|
||||
' automatic attributes which have been set just before.
|
||||
Dim oAttribute = ApplyAutomaticIndex(oAutomaticIndex, pFileInfo, pUserState, oAttributes)
|
||||
oAttributes.Add(oAttribute)
|
||||
|
||||
If oAttribute IsNot Nothing Then
|
||||
Logger.Info("Adding Attribute [{0}]", oAttribute)
|
||||
oAttributes.Add(oAttribute)
|
||||
End If
|
||||
Next
|
||||
|
||||
Return oAttributes
|
||||
@ -38,41 +51,65 @@ Namespace Methods.GlobalIndexer.ImportFile.Steps
|
||||
|
||||
|
||||
Private Function ApplyAutomaticIndex(pAutomaticIndex As AutomaticIndex, pFileInfo As FileInfo, pUserState As UserState, pAttributes As List(Of UserAttributeValue)) As UserAttributeValue
|
||||
Dim oAttributeDict = pAttributes.ToDictionary(
|
||||
Function(attr) attr.AttributeName,
|
||||
Function(attr) attr.AttributeValues)
|
||||
Try
|
||||
Dim oAttributeDict = pAttributes.ToDictionary(
|
||||
Function(attr) attr.AttributeName,
|
||||
Function(attr) attr.AttributeValues)
|
||||
|
||||
' If there is no SQL command, we use the Value property and replace all placeholders in it.
|
||||
If pAutomaticIndex.HasSqlCommand = False Then
|
||||
Dim oResult As String = GetPlaceholderValue(pAutomaticIndex.Value, pFileInfo, pUserState, oAttributeDict)
|
||||
Logger.Info("Applying Automatic Index [{0}]", pAutomaticIndex.Name)
|
||||
|
||||
Dim oHasSqlCommand As Boolean = pAutomaticIndex.HasSqlCommand
|
||||
|
||||
Logger.Debug("Index has SQLCommand: [{0}]", oHasSqlCommand)
|
||||
|
||||
' If there is no SQL command, we use the Value property and replace all placeholders in it.
|
||||
If oHasSqlCommand = False Then
|
||||
Dim oResult As String = GetPlaceholderValue(pAutomaticIndex.Value, pFileInfo, pUserState, oAttributeDict)
|
||||
|
||||
Return New UserAttributeValue With {
|
||||
.AttributeValues = New List(Of String) From {oResult},
|
||||
.AttributeName = pAutomaticIndex.Name,
|
||||
.AttributeId = pAutomaticIndex.Id
|
||||
}
|
||||
End If
|
||||
|
||||
' Otherwise we will replace placeholders in the SQL command and then execute it
|
||||
Dim oConnectionString As String = GlobalState.GetConnectionString(pAutomaticIndex.SQLConnectionId)
|
||||
Dim oFinalSQLCommand = pAutomaticIndex.SQLCommand
|
||||
|
||||
Logger.Debug("SQL Command is: [{0}]", oFinalSQLCommand)
|
||||
|
||||
oFinalSQLCommand = GetPlaceholderValue(oFinalSQLCommand, pFileInfo, pUserState, oAttributeDict)
|
||||
|
||||
' Now we have a SQL command which only contains vector placeholders
|
||||
' Next, we execute the command to get our result
|
||||
Dim oValue = Database.GetScalarValueWithConnection(oFinalSQLCommand, oConnectionString)
|
||||
|
||||
If oValue Is Nothing Then
|
||||
Logger.Warn("SQL for Automatic Index [{0}] returned an error. Exiting.")
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
Logger.Info("Value for Automatic Index [{0}] is [{1}]", pAutomaticIndex.Name, oValue.ToString)
|
||||
|
||||
' TODO: Return multiple values
|
||||
Return New UserAttributeValue With {
|
||||
.AttributeValues = New List(Of String) From {oResult},
|
||||
.AttributeValues = New List(Of String) From {oValue},
|
||||
.AttributeName = pAutomaticIndex.Name,
|
||||
.AttributeId = pAutomaticIndex.Id
|
||||
}
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Automatic Indexing for index failed.")
|
||||
Logger.Error(ex)
|
||||
|
||||
' Otherwise we will replace placeholders in the SQL command and then execute it
|
||||
Dim oConnectionString As String = GlobalState.GetConnectionString(pAutomaticIndex.SQLConnectionId)
|
||||
Dim oFinalSQLCommand = pAutomaticIndex.SQLCommand
|
||||
oFinalSQLCommand = GetPlaceholderValue(oFinalSQLCommand, pFileInfo, pUserState, oAttributeDict)
|
||||
|
||||
' Now we have a SQL command which only contains vector placeholders
|
||||
' Next, we execute the command to get our result
|
||||
Dim oValue = Database.GetScalarValueWithConnection(oFinalSQLCommand, oConnectionString)
|
||||
|
||||
' TODO: Return multiple values
|
||||
Return New UserAttributeValue With {
|
||||
.AttributeValues = New List(Of String) From {oValue},
|
||||
.AttributeName = pAutomaticIndex.Name,
|
||||
.AttributeId = pAutomaticIndex.Id
|
||||
}
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function GetPlaceholderValue(pValue As String, pFileInfo As FileInfo, pUserState As UserState, pAttributes As Dictionary(Of String, List(Of String))) As String
|
||||
Dim oResult As String = pValue
|
||||
|
||||
|
||||
oResult = Patterns.ReplaceInternalValues(oResult)
|
||||
oResult = Patterns.ReplaceFileValues(oResult, pFileInfo)
|
||||
oResult = Patterns.ReplaceUserValues(oResult, pUserState)
|
||||
|
||||
@ -14,33 +14,53 @@ Namespace Methods.GlobalIndexer.ImportFile.Steps
|
||||
Public Sub New(pLogConfig As LogConfig, pPostProcessingSteps As DataTable)
|
||||
MyBase.New(pLogConfig)
|
||||
PostprocessingSteps = pPostProcessingSteps
|
||||
|
||||
Logger.Info("Starting Postprocessing of Manual Indexes")
|
||||
End Sub
|
||||
|
||||
Public Function ApplyManualPostprocessing(pManualAttributes As List(Of UserAttributeValue)) As List(Of UserAttributeValue)
|
||||
Logger.Debug("Start of Method [ApplyManualPostprocessing]")
|
||||
Dim oAttributes = pManualAttributes
|
||||
|
||||
For Each oProcessingRow As DataRow In PostprocessingSteps.Rows
|
||||
Try
|
||||
Logger.Debug("Start of Method [ApplyManualPostprocessing]")
|
||||
|
||||
Dim oIndexId = oProcessingRow.ItemEx(Of Integer)("IDXMAN_ID")
|
||||
Dim oIndex As UserAttributeValue = pManualAttributes.
|
||||
Where(Function(attr) attr.AttributeId = oProcessingRow.ItemEx(Of Integer)("IDXMAN_ID")).
|
||||
FirstOrDefault()
|
||||
If PostprocessingSteps Is Nothing Then
|
||||
Logger.Debug("No Postprocessing steps found. Exiting.")
|
||||
Return oAttributes
|
||||
End If
|
||||
|
||||
Dim oValue = GetPostprocessingValue(oIndex.AttributeValues, oProcessingRow)
|
||||
For Each oProcessingRow As DataRow In PostprocessingSteps.Rows
|
||||
Dim oIndexId = oProcessingRow.ItemEx(Of Integer)("IDXMAN_ID")
|
||||
Dim oIndex As UserAttributeValue = pManualAttributes.
|
||||
Where(Function(attr) attr.AttributeId = oProcessingRow.ItemEx(Of Integer)("IDXMAN_ID")).
|
||||
FirstOrDefault()
|
||||
Dim oIndexPosition = pManualAttributes.IndexOf(oIndex)
|
||||
|
||||
oAttributes.Add(New UserAttributeValue With {
|
||||
.AttributeId = oIndexId,
|
||||
.AttributeName = oIndex.AttributeName,
|
||||
.AttributeValues = oIndex.AttributeValues,
|
||||
.ControlName = oIndex.ControlName
|
||||
})
|
||||
Next
|
||||
Logger.Info("Postprocessing Index [{0}]", oIndex.AttributeName)
|
||||
|
||||
Return oAttributes
|
||||
Dim oValues = GetPostprocessingValue(oIndex.AttributeValues, oProcessingRow)
|
||||
|
||||
Logger.Info("New Value for Index [{0}] is [{1}]", oIndex.AttributeName, String.Join(",", oValues))
|
||||
|
||||
' Replace the old AttributeValue with the new one
|
||||
oAttributes.Item(oIndexPosition) = New UserAttributeValue With {
|
||||
.AttributeId = oIndexId,
|
||||
.AttributeName = oIndex.AttributeName,
|
||||
.AttributeValues = oValues,
|
||||
.ControlName = oIndex.ControlName
|
||||
}
|
||||
Next
|
||||
|
||||
Return oAttributes
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Postprocessing failed. Returning incomplete Attributes.")
|
||||
Logger.Error(ex)
|
||||
Return oAttributes
|
||||
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function GetPostprocessingValue(pValues As List(Of String), pRow As DataRow)
|
||||
Public Function GetPostprocessingValue(pValues As List(Of String), pRow As DataRow) As List(Of String)
|
||||
Logger.Debug("Start of Method [GetPostprocessingValue]")
|
||||
|
||||
Dim oType = pRow.Item("TYPE")
|
||||
@ -88,7 +108,8 @@ Namespace Methods.GlobalIndexer.ImportFile.Steps
|
||||
Next
|
||||
|
||||
Case Else
|
||||
LogAndThrow($"Postprocessing type [{oType}] is not supported!")
|
||||
Logger.Warn("Postprocessing type [{0}] is not supported!", oType)
|
||||
|
||||
End Select
|
||||
|
||||
Return oResult
|
||||
|
||||
@ -5,6 +5,10 @@
|
||||
Public Property AttributeName As String
|
||||
Public Property AttributeValues As List(Of String)
|
||||
Public Property ControlName As String
|
||||
|
||||
Public Overrides Function ToString() As String
|
||||
Return AttributeName
|
||||
End Function
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@ -22,7 +22,7 @@ Public Class Scheduler
|
||||
|
||||
Public Sub New(LogConfig As LogConfig, MSSQL_ECM As MSSQLServer, TableStore As DataSet)
|
||||
_LogConfig = LogConfig
|
||||
_Logger = LogConfig.GetLoggerFor("Scheduler")
|
||||
_Logger = LogConfig.GetLogger()
|
||||
|
||||
_Factory = New StdSchedulerFactory(_Props)
|
||||
_MSSQL = MSSQL_ECM
|
||||
|
||||
@ -12,6 +12,7 @@ Public Class WindowsService
|
||||
|
||||
Private _ServiceHost As ServiceHost(Of EDMIService)
|
||||
Private _LogConfig As LogConfig
|
||||
Private _LogConfigScheduler As LogConfig
|
||||
Private _Logger As Logger
|
||||
|
||||
Private _Firebird As Firebird
|
||||
@ -39,6 +40,7 @@ Public Class WindowsService
|
||||
Dim oServicePath As String = AppDomain.CurrentDomain.BaseDirectory
|
||||
|
||||
_LogConfig = New LogConfig(LogConfig.PathType.CustomPath, IO.Path.Combine(oServicePath, "Log"), FileKeepRangeInDays:=3)
|
||||
_LogConfigScheduler = New LogConfig(LogConfig.PathType.CustomPath, IO.Path.Combine(oServicePath, "Log"), Suffix:="Scheduler", FileKeepRangeInDays:=3)
|
||||
_Logger = _LogConfig.GetLogger()
|
||||
|
||||
_Logger.Info("Service {0} is starting...", SERVICE_DISPLAY_NAME)
|
||||
@ -71,7 +73,7 @@ Public Class WindowsService
|
||||
_Archive = New EDMI.File.Archive(_LogConfig)
|
||||
_Filesystem = New Filesystem.File(_LogConfig)
|
||||
_Global = New GlobalState(_LogConfig, _MSSQL_IDB, _MSSQL_ECM)
|
||||
_Scheduler = New Scheduler(_LogConfig, _MSSQL_ECM, _Global.TableStore)
|
||||
_Scheduler = New Scheduler(_LogConfigScheduler, _MSSQL_ECM, _Global.TableStore)
|
||||
|
||||
_Logger.Debug("Loading Global Data")
|
||||
_Global.LoadObjectStores()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user