You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2685 lines
138 KiB
2685 lines
138 KiB
Imports System.Data.SqlClient
|
|
Imports System.Data.SqlTypes
|
|
Imports System.IO
|
|
|
|
'''<summary>Plausibilisierung der angelieferten Indexdaten sowie Dokumentimport in
|
|
'''EDOKA</summary>
|
|
'''<remarks>Mit den Methoden dieser Klasse werden einerseits die angelieferten
|
|
'''Indexinformationen auf ihre Vollständigkeit hin überprüft. Im Fehlerfall werden
|
|
'''ensprechende Meldungen ausgegeben bzw. journalisiert, im OK-Fall werden die
|
|
'''entsprechenden Dokumente in die EDOKA-Datenbank importiert. Je Applikation ist
|
|
'''festgehalten ob - Alle Parameter korrekt sein müssen, bevor der Dokumentimport
|
|
'''stattfinden - Nur die fehlerhaften Importe nicht verarbeitet werden</remarks>
|
|
Public Class clsCheckandImport
|
|
|
|
#Region "Deklarationen"
|
|
|
|
'''<summary>Interne Variable für das Property IndexData</summary>
|
|
Dim m_indexdata As DataTable
|
|
'''<summary>Datentabelle mit den Indexwerten</summary>
|
|
Property IndexData() As DataTable
|
|
Get
|
|
Return m_indexdata
|
|
End Get
|
|
Set(ByVal Value As DataTable)
|
|
m_indexdata = Value
|
|
End Set
|
|
End Property
|
|
|
|
|
|
'''<summary>Interne temporöre Datentabelle</summary>
|
|
Dim TmpTable As DataTable
|
|
|
|
Dim Fnkt As String = ""
|
|
Dim BarcodeImport As Boolean = False
|
|
|
|
Dim Status_Bereit_Zur_Eingangsarchivierung As Boolean = False
|
|
Dim bckstatussequenz As Boolean = False
|
|
#End Region
|
|
|
|
'''<summary>Prüfung der Indexwerte
|
|
'''Sofern die Indexwerte vollständig sind, werden die Dokumente in EDOKA
|
|
'''importiert.
|
|
'''
|
|
'''</summary>
|
|
Public Function CheckandImport() As Boolean
|
|
Dim i As Integer
|
|
Fehler = 0
|
|
If Globals.Herkunftsapplikation.Rows(0).Item(12) = 1 Then
|
|
Globals.temp_indexdaten = Me.IndexData
|
|
For i = 0 To Me.IndexData.Rows.Count - 1
|
|
Save_ImportDaten(i)
|
|
Checkdata(False, i)
|
|
Next
|
|
If Fehler <> 0 Then
|
|
Journal.Insert_Journal("", "", "", "", "", "Verarbeitung feherhaft abgebrochen. Es wurden keine Dokumente importiert.", "", "")
|
|
Return False
|
|
Else
|
|
For i = 0 To Me.IndexData.Rows.Count - 1
|
|
Checkdata(True, i)
|
|
Next
|
|
End If
|
|
Else
|
|
Globals.temp_indexdaten = Me.IndexData
|
|
For i = 0 To Me.IndexData.Rows.Count - 1
|
|
Save_ImportDaten(i)
|
|
Checkdata(True, i)
|
|
Next
|
|
End If
|
|
|
|
|
|
'Rel. 4.1 - QS EDKB09-SB-Import
|
|
Dim SBNr As String
|
|
Try
|
|
If Globals.Herkunftsapplikation.Rows(0).Item(1) = "EDKB09" Then
|
|
Dim s As String
|
|
Dim s1() As String
|
|
Dim cdok As New edokadb.clsDokument
|
|
Dim sdok As New edokadb.clsEdex_sb_serienbrief
|
|
Dim DokBestaetigt As Integer = 0
|
|
Dim DokImportiert As Integer = 0
|
|
Dim tmpdata As New DataTable
|
|
|
|
s = Me.IndexData.Rows(0).Item("Dokumentwert2").ToString
|
|
SBNr = 0
|
|
If s.IndexOf(";") > 1 Then
|
|
s1 = s.Split(";")
|
|
SBNr = s1(1).ToString
|
|
End If
|
|
|
|
sdok.iSerienbriefnr = New SqlInt32(CType(SBNr, Int32))
|
|
sdok.cpMainConnectionProvider = Globals.conn_edoka
|
|
sdok.SelectOne()
|
|
DokBestaetigt = sdok.iBestaetigt.Value
|
|
|
|
For i = 0 To Me.IndexData.Rows.Count - 1
|
|
cdok.sDokumentid = New SqlString(CType(Me.IndexData.Rows(i).Item("dokumentid"), String))
|
|
cdok.cpMainConnectionProvider = Globals.conn_edoka
|
|
tmpdata.Rows.Clear()
|
|
tmpdata = cdok.SelectOne()
|
|
If tmpdata.Rows.Count = 0 Then
|
|
Else
|
|
DokImportiert = DokImportiert + 1
|
|
End If
|
|
Next
|
|
|
|
If DokBestaetigt <> DokImportiert Then
|
|
Journal.Insert_Journal("", "", "", "", "", "EDKB08: Dok-Import fehlerhaft SBNr " + SBNr.ToString + " Bestaetigt: " + DokBestaetigt.ToString + " Importiert: " + DokImportiert.ToString, "", "")
|
|
send_mail("edoka@tkb.ch", "EDKB08 NOK: Import fehlerhaft", "Dok-Import fehlerhaft SBNr " + SBNr.ToString + " Bestaetigt: " + DokBestaetigt.ToString + " Importiert: " + DokImportiert.ToString)
|
|
Else
|
|
Journal.Insert_Journal("", "", "", "", "", "EDKB08: Dok-Import erfolgreich SBNr " + SBNr.ToString + " Bestaetigt: " + DokBestaetigt.ToString + " Importiert: " + DokImportiert.ToString, "", "")
|
|
'send_mail("edoka@tkb.ch", "EDKB08 OK: Import OK", "Dok-Import erfolgreich SBNr " + SBNr.ToString + " Bestaetigt: " + DokBestaetigt.ToString + " Importiert: " + DokImportiert.ToString)
|
|
End If
|
|
cdok.Dispose()
|
|
sdok.Dispose()
|
|
tmpdata.Dispose()
|
|
End If
|
|
Catch ex As Exception
|
|
Journal.Insert_Journal("", "", "", "", "", "EDKB09: SBNr " + SBNr.ToString + " konnte nicht geprüft werden.", "", "")
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Private Function send_mail(ByVal empfaenger As String, ByVal Subject As String, ByVal Inhalt As String) As Boolean
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.sp_sendmail"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@email", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, empfaenger))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@betreff", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Subject))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@meldung", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Inhalt))
|
|
Try
|
|
sdaAdapter.Fill(dtToReturn)
|
|
If scmCmdToExecute.Parameters("@errorcode").Value <> 0 Then
|
|
PrintLog("Mail konnte nicht versandt werden. " + scmCmdToExecute.Parameters("@errorcode").Value, EventLogEntryType.Warning)
|
|
Return False
|
|
End If
|
|
Catch ex As Exception
|
|
'Journal.Insert_Journal("", "", "", filename, "20", "Mail konnte nicht versandt werden." + ex.Message, "", "")
|
|
PrintLog("Mail konnte nicht versandt werden." + ex.Message, EventLogEntryType.Warning)
|
|
Return False
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
dtToReturn.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
#Region "Check_Funktionen"
|
|
|
|
'''<summary>Prüft die Indexdaten und löst ggf. den Import des Dokumentes
|
|
'''aus.</summary>
|
|
'''<remarks>Die Funktion prüft die Indexwerte. Sofern die Werte i.O. sind und der
|
|
'''Dokumentimport ausgelöst werden kann (vgl. Parameter Dokimport) wird das
|
|
'''Dokument importiert. Im Fehlerfall wird eine Meldung protokolliert und die
|
|
'''Variable Fehler gesetzt.</remarks>
|
|
'''<param name="DokImport">True=Dokument importieren False=Dokument nicht
|
|
'''importieren (nur plausibilisieren)</param>
|
|
'''<param name="datarow">Aktuelle Datarow der Tabelle Indexdata</param>
|
|
'''<returns>True=Verarbeitung i.O. False=Verarbeitung fehlerhaft</returns>
|
|
'''<author>Stefan Hutter</author>
|
|
|
|
Private Function Checkdata(ByVal DokImport As Boolean, ByVal datarow As Integer) As Boolean
|
|
'Prüfung Funktion"
|
|
If Check_Funktion(UCase(Me.IndexData.Rows(datarow).Item(0))) = False Then
|
|
Fehler = 1
|
|
Journal.Insert_Journal(datarow, "", "", "", Fehler, "Ungültige Funktion: " + Me.IndexData.Rows(datarow).Item(0), "", "")
|
|
Return False
|
|
End If
|
|
|
|
'Bei der Funktion "ADD" Partner prüfen ggf. neuer EDOKA-Partner erfassen
|
|
If Me.Fnkt = "ADD" And Check_Partnerzuordnung(datarow) = False Then
|
|
If Me.BarcodeImport = True Then Exit Function
|
|
If Check_EDOKA_Partner_Erfassen(datarow) = False Then
|
|
Fehler = 7
|
|
Journal.Insert_Journal(datarow, "", "", "", Fehler, "Erfassung des EDOKA-Partners ist fehlgeschlagen: " + Me.IndexData.Rows(datarow).Item(5), "", "")
|
|
Return False
|
|
End If
|
|
End If
|
|
|
|
|
|
'Prüfung Dokumentdaten für die Funktionen ADD und REPL
|
|
If (Me.Fnkt = "ADD" Or Me.Fnkt = "REPL") And Check_Dokumentdaten(datarow) = False Then
|
|
If Not Me.BarcodeImport Then Return False
|
|
End If
|
|
|
|
'Prüfung, ob entweder die EDOKA-Dokumentid oder ein eindeutiger Dokumentname als Parameter übergeben wurde
|
|
|
|
If Me.Fnkt = "UPD" Or Me.Fnkt = "DEL" Or Me.Fnkt = "REPL" Then
|
|
'EDOKA-Dokumentid
|
|
If Me.IndexData.Rows(datarow).Item(22) <> "" Then
|
|
If Not get_edoka_dokument(1, Me.IndexData.Rows(datarow).Item(22), datarow) Then
|
|
If Not Me.BarcodeImport Then Return False
|
|
End If
|
|
Else
|
|
'Eindeutiger Dokumentname
|
|
If Not get_edoka_dokument(2, Me.IndexData.Rows(datarow).Item(12), datarow) Then
|
|
Return False
|
|
If Not Me.BarcodeImport Then Return False
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
'Dokument importieren, sofern DokImport auf True gesetzt ist
|
|
If DokImport = True Then
|
|
Globals.Mitarbeiternr = Get_EDOKA_Mitarbeiter(datarow)
|
|
|
|
Select Case UCase(Me.IndexData.Rows(datarow).Item(0)).ToString
|
|
Case "ADD"
|
|
Try
|
|
Import_Dokument(datarow)
|
|
'Insert_Note(Dokumentid, "*** Durch EDOKA_Import in EDOKA eingefügt")
|
|
'Anpassungen EBES_LSV
|
|
|
|
If Me.BarcodeImport = False Or Me.BarcodeImport = True Then
|
|
Insert_Dokumentwerte(datarow)
|
|
Journal.Insert_Journal(datarow, IndexData.Rows(datarow).Item(1), IndexData.Rows(datarow).Item(11), IndexData.Rows(datarow).Item(12), "0", "Dokument erfolgreich importiert", Dokumentid, "")
|
|
End If
|
|
Me.BarcodeImport = False
|
|
Catch ex As Exception
|
|
Fehler = -17
|
|
Journal.Insert_Journal(datarow, IndexData.Rows(datarow).Item(1), IndexData.Rows(datarow).Item(11), IndexData.Rows(datarow).Item(12), "-17", "Fehler beim Dokumentimport: " + ex.Message, Dokumentid, "")
|
|
End Try
|
|
Case "DEL"
|
|
Delete_Dokument(datarow)
|
|
Case "UPD"
|
|
Update_Dokumentwerte(datarow)
|
|
Case "REPL"
|
|
Replace_Dokument(datarow)
|
|
End Select
|
|
End If
|
|
End Function
|
|
|
|
'''<summary>Importiert ein Dokument nach EDOKA</summary>
|
|
'''<param name="Fnkt">Gültige Werte sind: ADD, UPD, REPL, DEL</param>
|
|
'''<returns>True = Import erfolgreich$EOL$
|
|
'''<para>False = Import fehlgeschalgen</para></returns>
|
|
Private Function Check_Funktion(ByVal Fnkt As String) As Boolean
|
|
Me.Fnkt = ""
|
|
Me.Fnkt = Fnkt
|
|
Select Case UCase(Fnkt)
|
|
Case "ADD"
|
|
Return True
|
|
Case "DEL"
|
|
Return True
|
|
Case "REPL"
|
|
Return True
|
|
Case "UPD"
|
|
Return True
|
|
Case Else
|
|
Me.Fnkt = ""
|
|
Return False
|
|
End Select
|
|
End Function
|
|
|
|
'''<summary>Prüfung der Partnerzuordnung</summary>
|
|
'''<remarks>Mit der Funktion wird abhängig vom angelieferten Wert die
|
|
'''Partnerzuordungen zu einem bestehenden Partner in EDOKA überprüft.
|
|
'''<para></para>
|
|
'''<para>Input Partnernummer</para>
|
|
'''<para>Direkter Zugriff auf die Tabelle Partner mittels Partnernr</para>
|
|
'''<para></para>
|
|
'''<para>Input VV-Nr: </para>
|
|
'''<para>Umformatierung der VV-Nr und Zugriff auf den VV-Bestand. Sofern die</para>
|
|
'''<para>Partnernummer gefunden wird, diese in der Datentabelle nachführen</para>
|
|
'''<para></para>
|
|
'''<para>Input: Barcode-ID:</para>
|
|
'''<para>Zugriff auf die Partnernummer über die Tabelle Dokument mit der
|
|
'''geliefertenen EDOKA-BarcodeID</para>
|
|
'''<para></para>
|
|
'''<para>Input: KST:</para>
|
|
'''<para>Zugriff über die Kostenstelle auf den EDOKA-Partner</para></remarks>
|
|
'''<param name="datarow">Aktuelle Datenzeile in der Tabelle Indexdata</param>
|
|
'''<returns>True=Partnerzuordnung i.O.
|
|
'''<para>False=Partnerzuordnung nicht i.O.</para></returns>
|
|
'''<seealso cref="Checkdata">Checkdata</seealso>
|
|
Private Function Check_Partnerzuordnung(ByVal datarow As Integer) As Boolean
|
|
'Zugriff über Partnernr
|
|
'20121009 - Erweiterung abfrage aufgrund neuem UVM-Release (3. AND - ITEM 3 - BarcodeID = "")
|
|
Try
|
|
If Me.IndexData.Rows(datarow).Item(1) <> "" And Me.IndexData.Rows(datarow).Item(1) <> "91001634" And Me.IndexData.Rows(datarow).Item(3) = "" Then 'MNK 20090820 -> Erweiterung PMS Reports
|
|
Dim p As New edokadb.clsPartner()
|
|
Try
|
|
p.cpMainConnectionProvider = conn_edoka
|
|
Try
|
|
p.iNRPAR00 = New SqlInt32(CType(Me.IndexData.Rows(datarow).Item(1), Int32))
|
|
Catch ex As Exception
|
|
Fehler = 3
|
|
Journal.Insert_Journal(datarow, IndexData.Rows(datarow).Item(1), "", "", Fehler, "Partnerzuordnung Partner: " + Me.IndexData.Rows(datarow).Item(1) + " in EDOKA nicht vorhanden.", "", "")
|
|
Return False
|
|
End Try
|
|
Me.TmpTable = p.SelectOne()
|
|
If TmpTable.Rows.Count = 0 Then
|
|
Fehler = 3
|
|
Journal.Insert_Journal(datarow, IndexData.Rows(datarow).Item(1), "", "", Fehler, "Partnerzuordnung Partner: " + Me.IndexData.Rows(datarow).Item(1) + " in EDOKA nicht vorhanden.", "", "")
|
|
Return False
|
|
Else
|
|
Return True
|
|
End If
|
|
Catch
|
|
Finally
|
|
p.Dispose()
|
|
End Try
|
|
End If
|
|
Catch
|
|
If Me.IndexData.Rows(datarow).Item(1) <> 0 And Me.IndexData.Rows(datarow).Item(3) = "" Then
|
|
Dim p As New edokadb.clsPartner()
|
|
Try
|
|
p.cpMainConnectionProvider = conn_edoka
|
|
p.iNRPAR00 = New SqlInt32(CType(Me.IndexData.Rows(datarow).Item(1), Int32))
|
|
Me.TmpTable = p.SelectOne()
|
|
If TmpTable.Rows.Count = 0 Then
|
|
Fehler = 3
|
|
Journal.Insert_Journal(datarow, IndexData.Rows(datarow).Item(1), "", "", Fehler, "Partnerzuordnung Partner: " + Me.IndexData.Rows(datarow).Item(1) + " in EDOKA nicht vorhanden.", "", "")
|
|
Return False
|
|
Else
|
|
Return True
|
|
End If
|
|
Catch
|
|
Finally
|
|
p.Dispose()
|
|
End Try
|
|
End If
|
|
|
|
End Try
|
|
|
|
'Zugriff über VV-Bestand
|
|
'MNK 20090820 - Erweiterung der Logik, damit PMS Reports korrekt verabeitet werden
|
|
If Me.IndexData.Rows(datarow).Item(2) <> "" Or Me.IndexData.Rows(datarow).Item(1) = "91001634" Then
|
|
Dim v As New edokadb.clsVV()
|
|
Dim vvTemp As String
|
|
Dim vvTempArr() As String
|
|
Dim vv As String
|
|
Dim i As Integer
|
|
vv = ""
|
|
'VV-Nummer aufbereiten
|
|
|
|
If Globals.Herkunftsapplikation.Rows(0).Item(1) = "PMS" Then
|
|
vv = ""
|
|
vvTemp = ""
|
|
vvTemp = Me.IndexData.Rows(datarow).Item(28)
|
|
vvTempArr = vvTemp.Split(";")
|
|
If vvTempArr.Length = 2 Then
|
|
vv = vvTempArr(1)
|
|
vv = Replace(vv, ".", "")
|
|
End If
|
|
Else
|
|
|
|
For i = 1 To Microsoft.VisualBasic.Len(IndexData.Rows(datarow).Item(2))
|
|
If Mid(IndexData.Rows(datarow).Item(2), i, 1) = "0" Or _
|
|
Mid(IndexData.Rows(datarow).Item(2), i, 1) = "1" Or _
|
|
Mid(IndexData.Rows(datarow).Item(2), i, 1) = "2" Or _
|
|
Mid(IndexData.Rows(datarow).Item(2), i, 1) = "3" Or _
|
|
Mid(IndexData.Rows(datarow).Item(2), i, 1) = "4" Or _
|
|
Mid(IndexData.Rows(datarow).Item(2), i, 1) = "5" Or _
|
|
Mid(IndexData.Rows(datarow).Item(2), i, 1) = "6" Or _
|
|
Mid(IndexData.Rows(datarow).Item(2), i, 1) = "7" Or _
|
|
Mid(IndexData.Rows(datarow).Item(2), i, 1) = "8" Or _
|
|
Mid(IndexData.Rows(datarow).Item(2), i, 1) = "9" Then
|
|
vv = vv + Mid(IndexData.Rows(datarow).Item(2), i, 1)
|
|
End If
|
|
Next
|
|
|
|
End If
|
|
While Len(vv) < 12
|
|
vv = "0" + vv
|
|
End While
|
|
'While Len(vv) < 16
|
|
'vv = "0" + vv
|
|
'End While
|
|
Try
|
|
Dim pnr As Integer
|
|
'MNK 20090820 - Prüfung vv
|
|
If IsNumeric(vv) Then
|
|
pnr = Get_VVPartner(vv)
|
|
End If
|
|
|
|
'MNK 20090820 - Prüfung ob vv gefunden ansonsten generischen BP belassen
|
|
If pnr = 0 And Me.IndexData.Rows(datarow).Item(1) <> "91001634" Then
|
|
Fehler = 4
|
|
Journal.Insert_Journal(datarow, "", "", "", Fehler, "Partnerzuordnung über VV-NR: " + Me.IndexData.Rows(datarow).Item(2) + " Keine VV-Beziehung in EDOKA vorhanden.", "", "")
|
|
Return False
|
|
Else
|
|
If pnr = 0 And Me.IndexData.Rows(datarow).Item(1) = "91001634" Then
|
|
'nothing else todo
|
|
Return True
|
|
Else
|
|
Me.IndexData.Rows(datarow).Item(1) = pnr
|
|
Return True
|
|
End If
|
|
End If
|
|
Catch
|
|
Finally
|
|
v.Dispose()
|
|
End Try
|
|
End If
|
|
|
|
'Zugriff über BarcodeID
|
|
Me.BarcodeImport = False
|
|
If Me.IndexData.Rows(datarow).Item(3) <> "" Then Me.BarcodeImport = True
|
|
Dim DokID As String = ""
|
|
If Me.IndexData.Rows(datarow).Item(3) <> "" Then
|
|
If Len(Me.IndexData.Rows(datarow).Item(3)) = 16 Then
|
|
DokID = "OFFEDK" + Trim(Me.IndexData.Rows(datarow).Item(3))
|
|
Else
|
|
'Barcodekleber-Dokumentid
|
|
Try
|
|
DokID = get_bcdokumentid(Me.IndexData.Rows(datarow).Item(3))
|
|
Catch
|
|
End Try
|
|
End If
|
|
Dim d As New edokadb.clsDokument()
|
|
Try
|
|
d.cpMainConnectionProvider = conn_edoka
|
|
d.sDokumentid = New SqlString(CType(DokID, String))
|
|
Me.TmpTable = d.SelectOne
|
|
If Me.TmpTable.Rows.Count = 0 Then
|
|
Fehler = 5
|
|
Journal.Insert_Journal(datarow, "", "", "", Fehler, "Partnerzuordung über BarcodeID: " + Me.IndexData.Rows(datarow).Item(3) + " Dokument in EDOKA nicht vorhanden.", "", "")
|
|
Return False
|
|
Else
|
|
If Not Check_Dokumentwert(Me.IndexData.Rows(datarow).Item(3), datarow, DokID) Then Return False
|
|
Me.IndexData.Rows(datarow).Item(1) = d.iNrpar00.Value
|
|
Me.BarcodeImport = True
|
|
Return True
|
|
End If
|
|
Catch ex As Exception
|
|
Journal.Insert_Journal(datarow, "", "", "", Fehler, "Partnerzuordung über BarcodeID: " + Me.IndexData.Rows(datarow).Item(3) + " Dokument in EDOKA nicht vorhanden." + ex.Message, "", "")
|
|
Finally
|
|
d.Dispose()
|
|
End Try
|
|
End If
|
|
|
|
If Me.IndexData.Rows(datarow).Item(4) <> "" Then
|
|
Fehler = 6
|
|
Journal.Insert_Journal(datarow, "", "", "", Fehler, "Partnerzuordnung über KST ist noch nicht implementiert.", "", "")
|
|
Return False
|
|
End If
|
|
End Function
|
|
|
|
Private Function Check_Dokumentwert(ByVal barcodenr As String, ByVal datarow As Integer, ByVal DOKUMENTID As String) As Boolean
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.sp_edoka_import_get_coldindexwert"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@Dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, DOKUMENTID))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@indextyp", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 2))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@coldindexfeld", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 10))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@wert", SqlDbType.VarChar, 255, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
Try
|
|
conn_edoka.OpenConnection()
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
Select Case scmCmdToExecute.Parameters("@wert").Value.ToString
|
|
Case "-1"
|
|
Fehler = 204
|
|
Journal.Insert_Journal(datarow, Me.IndexData.Rows(datarow).Item(11), "", Me.IndexData.Rows(datarow).Item(12), "204", "Barcodeimport:Dokument kann nicht importiert werden, da keine Indexwerte für den Import vorhanden sind.", "OFFEDK" + barcodenr, "")
|
|
Return False
|
|
Case ""
|
|
Return True
|
|
Case Else
|
|
Fehler = 205
|
|
Journal.Insert_Journal(datarow, Me.IndexData.Rows(datarow).Item(11), "", Me.IndexData.Rows(datarow).Item(12), "205", "Barcodeimport:Ein Dokument wurde bereits importiert oder eingescant.", "OFFEDK" + barcodenr, "")
|
|
Return False
|
|
End Select
|
|
Catch ex As Exception
|
|
PrintOut("clsCheckandImport.Check_Dokumentwert()" + ex.Message, EventLogEntryType.Error)
|
|
Finally
|
|
conn_edoka.CloseConnection(True)
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
dtToReturn.Dispose()
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Private Function get_bcdokumentid(ByVal BCKNr As Integer) As String
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.SP_Edoka_Import_get_dokid_BCK"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@bcknr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, BCKNr))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokid", SqlDbType.VarChar, 22, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
Try
|
|
conn_edoka.OpenConnection()
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
Return scmCmdToExecute.Parameters("@dokid").Value
|
|
Catch ex As Exception
|
|
PrintOut("clsCheckandImport.get_bcdokumentid()" + ex.Message, EventLogEntryType.Error)
|
|
Return ""
|
|
Finally
|
|
conn_edoka.CloseConnection(True)
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
dtToReturn.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
Private Function Get_VVPartner(ByVal nevvg00 As String) As Integer
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.SP_Edoka_Import_get_vvPartner"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@nevvg00", SqlDbType.VarChar, 16, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, nevvg00))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@nrpar00", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
Try
|
|
conn_edoka.OpenConnection()
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
Return scmCmdToExecute.Parameters("@nrpar00").Value
|
|
Catch ex As Exception
|
|
PrintOut("clsCheckandImport.Get_VVParnter()" + ex.Message, EventLogEntryType.Error)
|
|
Finally
|
|
conn_edoka.CloseConnection(True)
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
dtToReturn.Dispose()
|
|
End Try
|
|
|
|
End Function
|
|
|
|
'''<summary>Prüft, ob alle Werte für eine EDOKA_Partner-Erfasssung vorhanden sind.
|
|
'''Wenn dies der Fall ist, wird ein neuer EDOKA-Partner eröffnet</summary>
|
|
'''<remarks>Sofern genügend Informationen für die Partnereröffnung vorhanden sind,
|
|
'''wird ein EDOKA-Partner eröffnet. Nach dem Insert in der Datenbank wird durch die
|
|
'''DB die Überprüfung auf eine allfällige Partnerzusammenlegung
|
|
'''ausgelöst.</remarks>
|
|
'''<param name="datarow">Aktuelle Datenzeile des Import-Programmes</param>
|
|
'''<returns>True = EDOKA-Partner eröffnet
|
|
'''<para>False = Daten zur Eröffnung des EDOKA-Partners sind
|
|
'''unvollständig</para></returns>
|
|
'''<author>Stefan Hutter</author>
|
|
'''<seealso cref="Checkdata">Checkdata</seealso>
|
|
Private Function Check_EDOKA_Partner_Erfassen(ByVal datarow As Integer) As Boolean
|
|
Dim dbkey As New edokadb.clsMyKey_Tabelle()
|
|
Dim Partner As New edokadb.clsPartner()
|
|
Dim key As Long
|
|
|
|
Try
|
|
If Me.IndexData.Rows(datarow).Item(5) = "" And _
|
|
Me.IndexData.Rows(datarow).Item(6) = "" And _
|
|
Me.IndexData.Rows(datarow).Item(8) = "" And _
|
|
Me.IndexData.Rows(datarow).Item(9) = "" And _
|
|
Me.IndexData.Rows(datarow).Item(10) = "" Then
|
|
Return False
|
|
End If
|
|
|
|
If Me.IndexData.Rows(datarow).Item(5) = "" Then
|
|
Return False
|
|
End If
|
|
|
|
dbkey.cpMainConnectionProvider = conn_edoka
|
|
key = dbkey.get_dbkey("Interessent")
|
|
Partner.cpMainConnectionProvider = conn_edoka
|
|
|
|
Partner.sBKPAR00 = New SqlString(CType(Me.IndexData.Rows(datarow).Item(5), String))
|
|
Partner.sBEBAN012 = New SqlString(CType(Me.IndexData.Rows(datarow).Item(10), String))
|
|
Partner.sTXADZ012 = New SqlString(CType("", String))
|
|
Partner.sTXADZ022 = New SqlString(CType(Me.IndexData.Rows(datarow).Item(7), String))
|
|
Partner.sTXADZ032 = New SqlString(CType(Me.IndexData.Rows(datarow).Item(6), String))
|
|
Partner.sTXADZ042 = New SqlString(CType("", String))
|
|
Partner.sTXADZ052 = New SqlString(CType(Me.IndexData.Rows(datarow).Item(8), String))
|
|
Partner.sTXADZ062 = New SqlString(CType("", String))
|
|
Partner.sTXADZ072 = New SqlString(CType(Me.IndexData.Rows(datarow).Item(9), String))
|
|
Partner.sTXADZ011 = New SqlString(CType("", String))
|
|
Partner.sTXADZ021 = New SqlString(CType("", String))
|
|
Partner.sBEBAN011 = New SqlString(CType("", String))
|
|
|
|
Partner.sTXADZ011 = New SqlString(CType(Me.IndexData.Rows(datarow).Item(6) + " " + Me.IndexData.Rows(datarow).Item(7), String))
|
|
Partner.sTXADZ021 = New SqlString(CType(Me.IndexData.Rows(datarow).Item(8), String))
|
|
Partner.sTXADZ031 = New SqlString(CType(Me.IndexData.Rows(datarow).Item(9) + " " + Me.IndexData.Rows(datarow).Item(10), String))
|
|
Partner.sTXADZ041 = New SqlString(CType("", String))
|
|
Partner.sTXADZ051 = New SqlString(CType("", String))
|
|
Partner.sTXADZ061 = New SqlString(CType("", String))
|
|
Partner.sTXADZ071 = New SqlString(CType("", String))
|
|
'Pendenz: Mitarbeiternr der Applikation
|
|
Partner.iNRFOG012 = New SqlInt32(CType(Globals.Mitarbeiternr, Int32))
|
|
Partner.sTSMUT00 = New SqlString(CType(Now, String))
|
|
|
|
Partner.sNRADR00 = New SqlString(CType("", String))
|
|
Partner.iNRPAR00 = New SqlInt32(CType(key, Int32))
|
|
conn_edoka.OpenConnection()
|
|
Partner.Insert()
|
|
conn_edoka.CloseConnection(True)
|
|
Me.IndexData.Rows(datarow).Item(1) = Partner.iNRPAR00.Value
|
|
Journal.Insert_Journal(datarow, Partner.iNRPAR00.Value.ToString, "", Me.IndexData.Rows(datarow).Item(12), "0", "EDOKA-Partner eröffnet.", "", "")
|
|
Return True
|
|
Catch ex As Exception
|
|
Journal.Insert_Journal(datarow, Partner.iNRPAR00.Value.ToString, "", Me.IndexData.Rows(datarow).Item(12), "0", "EDOKA-Partner nicht eröffnet." + ex.Message, "", "")
|
|
Return False
|
|
Finally
|
|
dbkey.Dispose()
|
|
Partner.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
'''<summary>Prüft die dokumentspezifischen Werte und das Vorhandensein des
|
|
'''physischen Dokumentes</summary>
|
|
'''<remarks>Die Verarbeitung prüft folgende Elemente im Bereich der angelieferten
|
|
'''Dokumente:
|
|
'''<list type="bullet">
|
|
'''<item>
|
|
'''<description>Gültiges Dokumentformant (DOC, XLS, TIF, PDF,
|
|
'''JPG</description></item>
|
|
'''<item>
|
|
'''<description>Vorhandensein des Dokumentes im
|
|
'''Importverzeichnis</description></item>
|
|
'''<item>
|
|
'''<description>Dokumenttyp</description></item></list></remarks>
|
|
'''<param name="datarow">Zeile in der Tabelle Indexdata</param>
|
|
'''<returns>True=Dokumentwerte i.O.
|
|
'''<para>False=Dokumentwerte nicht i.O.</para></returns>
|
|
'''<author>Stefan Hutter</author>
|
|
'''<seealso cref="Checkdata">Checkdata</seealso>
|
|
Private Function Check_Dokumentdaten(ByVal datarow As Integer) As Boolean
|
|
'Prüfung Dateityp
|
|
If UCase(Me.IndexData.Rows(datarow).Item(13)) <> "DOC" And _
|
|
UCase(Me.IndexData.Rows(datarow).Item(13)) <> "XLS" And _
|
|
UCase(Me.IndexData.Rows(datarow).Item(13)) <> "PDF" And _
|
|
UCase(Me.IndexData.Rows(datarow).Item(13)) <> "TIF" And _
|
|
UCase(Me.IndexData.Rows(datarow).Item(13)) <> "JPG" And _
|
|
UCase(Me.IndexData.Rows(datarow).Item(13)) <> "" Then
|
|
If Not Me.BarcodeImport Then
|
|
Fehler = 9
|
|
Journal.Insert_Journal(datarow, "", "", "", Fehler, "Ungültiges Dateiformat: " + Me.IndexData.Rows(datarow).Item(13), "", "")
|
|
Return False
|
|
End If
|
|
End If
|
|
|
|
'Prüfung physische Datei
|
|
If Not File.Exists(Params.Inputverzeichnis + Me.IndexData.Rows(datarow).Item(12)) Then
|
|
Fehler = 10
|
|
Journal.Insert_Journal(datarow, "", "", "", Fehler, "Datei : " + Me.IndexData.Rows(datarow).Item(12) + " ist nicht vorhanden", "", "")
|
|
Return False
|
|
End If
|
|
|
|
'20050925 - Prüfung, wenn Herkunftsapplikation 'EDKB09 ist, dann ist der Doktyp i.O.
|
|
If Globals.Herkunftsapplikation.Rows(0).Item(1) <> "EDKB09" Then
|
|
'Prüfung Dokumenttyp
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.SP_Edoka_Import_Check_Dokumenttyp"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@Dokumenttyp", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.IndexData.Rows(datarow).Item(11)))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@applid", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.Herkunftsapplikation.Rows(0).Item(0)))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@DoktypIO", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
Try
|
|
conn_edoka.OpenConnection()
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
If scmCmdToExecute.Parameters("@doktypio").Value = 0 Then
|
|
If Me.BarcodeImport = False Then
|
|
Fehler = 11
|
|
Journal.Insert_Journal(datarow, "", "", "", Fehler, "Dokumenttyp: " + Me.IndexData.Rows(datarow).Item(11) + " ist nicht definiert.", "", "")
|
|
Return False
|
|
Else
|
|
Return True
|
|
End If
|
|
Else
|
|
Return True
|
|
End If
|
|
Catch ex As Exception
|
|
PrintOut("clsCheckandImport.Check_Dokumentdaten()" + ex.Message, EventLogEntryType.Error)
|
|
Finally
|
|
conn_edoka.CloseConnection(True)
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
dtToReturn.Dispose()
|
|
End Try
|
|
Else
|
|
Return True
|
|
End If
|
|
|
|
'Prüfung Archivreferenz
|
|
If Me.IndexData.Rows(datarow).Item(21) <> "" Then
|
|
If Not Check_For_Numeric_Format(Me.IndexData.Rows(datarow).Item(21), True) Then
|
|
Fehler = 12
|
|
Journal.Insert_Journal(datarow, "", "", "", Fehler, "Archivreferenz: " + Me.IndexData.Rows(datarow).Item(21) + " ist nicht numerisch", "", "")
|
|
Return False
|
|
End If
|
|
End If
|
|
End Function
|
|
|
|
Private Function Check_For_Numeric_Format(ByVal C_S As String, ByVal allownothing As Boolean) As Boolean
|
|
Dim Var_Loop, Var_Len As Integer
|
|
If C_S = "" Then
|
|
If allownothing = True Then Return True
|
|
Return False
|
|
End If
|
|
Var_Len = Len(C_S)
|
|
C_S = LCase(C_S)
|
|
For Var_Loop = 1 To Var_Len
|
|
If Mid(C_S, Var_Loop, 1) < Chr(48) Or Mid(C_S, Var_Loop, 1) > Chr(57) Then
|
|
Return False
|
|
End If
|
|
Next
|
|
Return True
|
|
End Function
|
|
|
|
'''<summary>Notiz zu einem Dokument hinzufügen</summary>
|
|
'''<remarks>Fühgt dem aktuellen Dokument die Meldung als Betreff bzw. Notiz
|
|
'''hinzu</remarks>
|
|
'''<param name="dokumentid">Aktuelle Dokumentid</param>
|
|
'''<param name="meldung">Meldung / Notiz</param>
|
|
Private Sub Insert_Note(ByVal dokumentid As String, ByVal meldung As String)
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
scmCmdToExecute.CommandText = "dbo.SP_Dokument_Notizen"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Connection.Open()
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@notiznr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@betreff", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, meldung))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@value", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, meldung))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@aktiv", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
Catch ex As Exception
|
|
'MsgBox(ex.Message)
|
|
' // some error occured. Bubble it to caller and encapsulate Exception object
|
|
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Connection.Close()
|
|
scmCmdToExecute.Dispose()
|
|
End Try
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "Herkunftsapplikation"
|
|
'''<summary>Auslesen der Daten "Herkunftsapplikation" und in der internen Variable
|
|
'''Herkunftsapplikationen zwischenspeichern</summary>
|
|
Public Function Herkunftsapplikationen_auslesen() As Boolean
|
|
|
|
Dim ApplFound As Boolean = False
|
|
Dim i As Integer
|
|
For i = 0 To Me.IndexData.Rows.Count - 1
|
|
If Get_Herkunftsapplikation(i) = True Then
|
|
Return True
|
|
End If
|
|
Next
|
|
Fehler = 100
|
|
Journal.Insert_Journal("", "", "", "", Fehler, "Herkunftsapplikation kann nicht zugeordnet werden", "", "")
|
|
Return False
|
|
End Function
|
|
|
|
'''<summary>Auslesen der Herkunftsapplikation anhand des Dokumenttyps</summary>
|
|
'''<param name="i">Aktueller Datensatz aus den Indexdaten</param>
|
|
'''<returns>"" = Herkunftsapplikation nicht vorhanden$EOL$
|
|
'''<para>"[Bezeichnung] = Herkunftsapplikation vorhanden</para></returns>
|
|
'''<seealso
|
|
'''cref="clsCheckandImport.Herkunftsapplikationen_auslesen">Herkuftsapplikation_auslesen</seealso>
|
|
Private Function Get_Herkunftsapplikation(ByVal i As Integer) As Boolean
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.SP_Edoka_Import_Get_Herkunftsapplikation"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@Dokumenttyp", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.IndexData.Rows(i).Item(11)))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@InputAppl", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.IndexData.Rows(i).Item(17)))
|
|
|
|
Try
|
|
sdaAdapter.Fill(dtToReturn)
|
|
If dtToReturn.Rows.Count = 0 Then
|
|
Fehler = 110
|
|
Journal.Insert_Journal(i, "", "", "", Fehler, "Herkunftsapplikation: " + Me.IndexData.Rows(i).Item(11) + " ist nicht definiert.", "", "")
|
|
Return False
|
|
Else
|
|
Globals.Herkunftsapplikation = dtToReturn
|
|
Return True
|
|
End If
|
|
Catch ex As Exception
|
|
PrintOut("clsCheckandImport.Get_herkunfstapplikation()" + ex.Message, EventLogEntryType.Error)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
dtToReturn.Dispose()
|
|
End Try
|
|
|
|
End Function
|
|
|
|
|
|
#End Region
|
|
|
|
#Region "Import"
|
|
|
|
|
|
Dim Dokumentid As String
|
|
Dim dokumenttypnr As Integer
|
|
'''<summary>Importiert ein Dokument nach EDOKA</summary>
|
|
'''<remarks>Mit dem Dokumentimport werden folgende Tabellenenträge erstellt: $EOL$
|
|
'''<list type="table">
|
|
'''<listheader>
|
|
'''<term>$EOL$ $EOL$ Tabelle</term>
|
|
'''<description>$EOL$ Beschreibung</description></listheader>
|
|
'''<item>
|
|
'''<term>$EOL$ $EOL$ Dokument</term>
|
|
'''<description>$EOL$ Dokumentbeschreibung</description></item>
|
|
'''<item>
|
|
'''<term>$EOL$ $EOL$ Dokumentstatus</term>
|
|
'''<description>$EOL$ Statussequenz des Dokumentes. Dabei werden alle Status bis
|
|
'''zum ersten archivierungs-relevanten Status gesetzt. $EOL$
|
|
'''<para></para>
|
|
'''<para>$EOL$ </para>
|
|
'''<para>Bei der Verarbeitung eines Dokumentes mit Barcodeid, werden die
|
|
'''bestehenden Dokumentinformationen in der Tabelle Dokument erweitert und die
|
|
'''Tabelle Import_Barcode ergäntzt, damit die Batchverarbeitung EDKB02 das Handling
|
|
'''für diese Dokumente korrekt vornehmen kann.</para></description></item>
|
|
'''<item>
|
|
'''<term>$EOL$ $EOL$ Dokumentcoldindexwert</term>
|
|
'''<description>$EOL$ Tabelle mit den COLD-relevanten
|
|
'''Indexinformationen</description></item>
|
|
'''<item>
|
|
'''<term>$EOL$ $EOL$ Dokumentwerte</term>
|
|
'''<description>$EOL$ Tabelle mit den individuellen
|
|
'''Dokumentwerten</description></item>
|
|
'''<item>
|
|
'''<term>$EOL$ $EOL$ Notizen</term>
|
|
'''<description>$EOL$ Notiz, dass das Dokument über die Import-Schnittstelle im
|
|
'''EDOKA eingefügt wurde</description></item></list></remarks>
|
|
'''<param name="datarow">Aktuelle Zeile der Indexdatei</param>
|
|
'''<returns>True = Import erfolgreich $EOL$
|
|
'''<para>False = Import fehlgeschalgen</para></returns>
|
|
Private Function Import_Dokument(ByVal datarow As Integer) As Boolean
|
|
|
|
' Wenn OK, an den Schluss kopieren
|
|
'EDKB09
|
|
'If IndexData.Rows(datarow).Item("DokumentidBdr") <> "" Then
|
|
' Insert_Bedingte_Retournierung(datarow)
|
|
'End If
|
|
|
|
|
|
Status_Bereit_Zur_Eingangsarchivierung = False
|
|
|
|
'Physisches Dokument in die Datenbank laden
|
|
If Me.BarcodeImport = True Then
|
|
'Barcodedokument
|
|
|
|
If Len(Me.IndexData.Rows(datarow).Item(3)) = 16 Then
|
|
Dokumentid = "OFFEDK" + Trim(Me.IndexData.Rows(datarow).Item(3))
|
|
Else
|
|
'Barcodekleber-Dokumentid
|
|
Try
|
|
Dokumentid = get_bcdokumentid(Me.IndexData.Rows(datarow).Item(3))
|
|
Catch
|
|
End Try
|
|
End If
|
|
|
|
Dim sdokid As String
|
|
sdokid = Dokumentid
|
|
sdokid = sdokid.Replace("OFFEDK", "EDKIMP")
|
|
If Not Dokument_in_DB_Sichern(sdokid, datarow) Then
|
|
Return False
|
|
End If
|
|
|
|
'Dokumentid = "OFFEDK" + Me.IndexData.Rows(datarow).Item(3)
|
|
Dim dt As New DataTable()
|
|
Dim dd As New edokadb.clsDokument()
|
|
dd.cpMainConnectionProvider = Globals.conn_edoka
|
|
dd.sDokumentid = New SqlString(CType(Dokumentid, String))
|
|
dd.SelectOne()
|
|
'Import BC-Dokument 20050426
|
|
dd.daDatum_eingangsarchivierung = New SqlDateTime(CType(Now, DateTime))
|
|
Try
|
|
dd.iStatus_edoka_batch_eingang = New SqlInt32(CType(1, Int32))
|
|
Catch
|
|
End Try
|
|
Try
|
|
conn_edoka.OpenConnection()
|
|
Catch
|
|
End Try
|
|
dd.Update()
|
|
Try
|
|
conn_edoka.CloseConnection(True)
|
|
Catch
|
|
End Try
|
|
|
|
'Dokumentid nachführen
|
|
'Prüfung, ob Indextyp 2 vorhanden ist und nachführen des Wertes der Dokumentid
|
|
'zudem einen Eintrag in der Tabelle insert_fa_bcimport vornehmen, damit eine entsprechende Ausgangsarchivierung
|
|
'des Dokumentes stattfinden kann.
|
|
'in EDKB02 wird das Dokument ausgangsarchiviert und nach dessen Retourmeldung von AGI-COLD als eingangsarchiviert
|
|
'gekennzeichnet und dementsprechend weiter verarbeitet
|
|
Me.Update_DokumentColdIndexwert(Dokumentid, 2, 10, sdokid)
|
|
If Me.IndexData.Rows(datarow).Item(21) <> "" Then
|
|
If IsNumeric(Me.IndexData.Rows(datarow).Item(21)) Then
|
|
Me.Update_DokumentColdIndexwert(Dokumentid, 2, 11, Me.IndexData.Rows(datarow).Item(21))
|
|
End If
|
|
End If
|
|
|
|
insert_fa_bcimport(Dokumentid, datarow, Me.IndexData.Rows(datarow).Item(13))
|
|
Update_FANummer_Barcodeimport(datarow)
|
|
Journal.Insert_Journal(datarow, Me.IndexData.Rows(datarow).Item(1), "", Me.IndexData.Rows(datarow).Item(12), "0", "BarcodeImport erfolgreich", Dokumentid, "")
|
|
|
|
Try
|
|
'Rel. 4.1 Gelöschtes oder aufgehobenes Dokument
|
|
Dim ds As New edokadb.clsDokument_status
|
|
ds.cpMainConnectionProvider = Globals.conn_edoka
|
|
ds.iDokument_statusnr = New SqlInt32(CType(dd.iStatusnr.Value, SqlInt32))
|
|
ds.SelectOne()
|
|
If dd.bAktiv.Value = False Or ds.iStatus_bezeichnungnr.Value = -3 Then
|
|
Journal.Insert_Journal(datarow, Me.IndexData.Rows(datarow).Item(1), "", Me.IndexData.Rows(datarow).Item(12), "0", "Dokument bereits gelöscht/aufgehoben", Dokumentid, "")
|
|
If Globals.Herkunftsapplikation.Rows(0).Item("Reserve_1").ToString <> "" Then
|
|
send_deleted_mail(Globals.Herkunftsapplikation.Rows(0).Item("Reserve_1").ToString, Dokumentid)
|
|
End If
|
|
End If
|
|
ds.Dispose()
|
|
Catch ex As Exception
|
|
End Try
|
|
Return True
|
|
Else
|
|
'Dokumentid auslesen
|
|
' If Globals.Herkunftsapplikation.Rows(0).Item(1) = "EDKB09" Or Globals.Herkunftsapplikation.Rows(0).Item(1) = "EDKB14" Or Globals.Herkunftsapplikation.Rows(0).Item(1) = "FinFox" Then
|
|
If Globals.Herkunftsapplikation.Rows(0).Item(1) = "EDKB09" Or Globals.Herkunftsapplikation.Rows(0).Item(1) = "EDKB14" Or Globals.Herkunftsapplikation.Rows(0).Item(1) = "FinFox" Then
|
|
|
|
Dokumentid = Me.IndexData.Rows(datarow).Item("Dokumentid")
|
|
If Globals.Herkunftsapplikation.Rows(0).Item(1) = "FinFox" And Dokumentid = "" Then Dokumentid = Globals.DivFnkt.Generate_Key
|
|
If Globals.Herkunftsapplikation.Rows(0).Item(1) = "EDKB14" And Dokumentid = "" Then Dokumentid = Globals.DivFnkt.Generate_Key
|
|
Else
|
|
Dokumentid = Globals.DivFnkt.Generate_Key
|
|
End If
|
|
End If
|
|
|
|
'EDOKA-Dokumenttyp auslesen
|
|
bckstatussequenz = False
|
|
Dim dokumenttyp As New edokadb.clsDokumenttyp()
|
|
If Globals.Herkunftsapplikation.Rows(0).Item(1) = "EDKB09" Then
|
|
dokumenttyp.iDokumenttypnr = New SqlInt32(CType(IndexData.Rows(datarow).Item("Dokumenttypnr"), Int32))
|
|
Else
|
|
dokumenttyp.iDokumenttypnr = New SqlInt32(CType(Get_EDOKA_Dokumenttypnr(datarow), Int32))
|
|
End If
|
|
If dokumenttyp.iDokumenttypnr.Value = 0 Then
|
|
Exit Function
|
|
Else
|
|
dokumenttyp.cpMainConnectionProvider = conn_edoka
|
|
dokumenttyp.SelectOne()
|
|
End If
|
|
|
|
If dokumenttyp.bDokument_wird_erstellt.Value = False Then
|
|
If dokumenttyp.bDokument_wird_retourniert.Value = True Then
|
|
Me.bckstatussequenz = True
|
|
End If
|
|
End If
|
|
|
|
'20060319 - SHU / Spezielles Handling Finfox
|
|
If dokumenttyp.bDokument_wird_erstellt.Value = True Then
|
|
If dokumenttyp.bDokument_wird_retourniert.Value = True And UCase(Globals.Herkunftsapplikation.Rows(0).Item(1)) <> "FINFOX" Then
|
|
If IndexData.Rows(datarow).Item(3) = "" Then Me.bckstatussequenz = True
|
|
End If
|
|
End If
|
|
|
|
|
|
'Dokument erstellen
|
|
Dim dok As New edokadb.clsDokument()
|
|
dok.cpMainConnectionProvider = conn_edoka
|
|
dok.sDokumentid = New SqlString(CType(Dokumentid, String))
|
|
|
|
'***************************************************************************************************************3
|
|
'Defaultwerte für das Dokument
|
|
'***************************************************************************************************************3
|
|
dok.bAktiv = New SqlBoolean(True)
|
|
dok.bAmsdokument = New SqlBoolean(CType(False, Boolean))
|
|
dok.bAuserstuebernahme = New SqlBoolean(CType(False, Boolean))
|
|
dok.bAusgangsarchiviert = New SqlBoolean(CType(False, Boolean))
|
|
dok.iStatus_edoka_batch_ausgang = Nothing
|
|
dok.daTermin = New SqlDateTime(CType("01.01.1900", DateTime))
|
|
dok.bBereit_zur_archivierung = New SqlBoolean(CType(True, Boolean))
|
|
dok.bEingangsarchiviert = New SqlBoolean(CType(False, Boolean))
|
|
dok.bGesperrt = New SqlBoolean(CType(False, Boolean))
|
|
dok.bUnvollstaendig = New SqlBoolean(CType(False, Boolean))
|
|
dok.iBck = New SqlInt32(CType(1, Int32))
|
|
dok.iColdstatus = New SqlInt32(CType(0, Int32))
|
|
dok.iUnterschriftlinks = New SqlInt32(CType(0, Int32))
|
|
dok.iUnterschriftrechts = New SqlInt32(CType(0, Int32))
|
|
dok.iVerantwortlich = New SqlInt32(CType(Globals.Mitarbeiternr, Int32))
|
|
dok.bVertraulich = New SqlBoolean(CType(False, Boolean))
|
|
dok.sZustelladresse = New SqlString(CType("", String))
|
|
dok.sAnredezustelladresse = New SqlString(CType("", String))
|
|
dok.iZustaendiger = New SqlInt32(CType(Globals.Mitarbeiternr, Int32))
|
|
dok.iPostzustellung = New SqlInt32(CType(0, Int32))
|
|
dok.bZustaendig_kube = New SqlBoolean(CType(0, Boolean))
|
|
dok.iMa_ausgangsarchivierung = New SqlInt32(CType(0, Int32))
|
|
dok.iMa_eingangsarchivierung = New SqlInt32(CType(0, Int32))
|
|
dok.sBemerkung = New SqlString(CType("", String))
|
|
dok.sColddokumentid = New SqlString(CType("", String))
|
|
dok.iDokdurchkubeweitergegeben = New SqlInt32(CType(0, Int32))
|
|
dok.sBedRDokumentid = New SqlString(CType("", String))
|
|
|
|
'***************************************************************************************************************3
|
|
'Werte aus Dokumenttyp
|
|
'***************************************************************************************************************3
|
|
dok.iDokumenttypnr = New SqlInt32(CType(dokumenttyp.iDokumenttypnr.Value, Int32))
|
|
dok.bZu_retournieren = New SqlBoolean(CType(dokumenttyp.bZu_retournieren.Value, Boolean))
|
|
dok.iAufbewahrung_elektronisch = New SqlInt32(CType(dokumenttyp.iAufbewahrungsfrist_elektronisch.Value, Int32))
|
|
dok.iAufbewahrung_phaysisch = New SqlInt32(CType(dokumenttyp.iAufbewahrungsfrist_physisch.Value, Int32))
|
|
dok.iBearbeitung_nach_abschluss = New SqlInt32(CType(dokumenttyp.iTage_mutation.Value, Int32))
|
|
dok.iBearbeitungszeit_in_minuten = New SqlInt32(CType(dokumenttyp.iDbearbeitungszeit.Value, Int32))
|
|
dok.iMonierung_in_tagen = New SqlInt32(CType(dokumenttyp.iAnzahl_tage.Value, Int32))
|
|
dok.sBezeichnung = New SqlString(CType(dokumenttyp.sBezeichnung.Value, String))
|
|
|
|
'***************************************************************************************************************3
|
|
'EDKB09
|
|
'***************************************************************************************************************3
|
|
If Globals.Herkunftsapplikation.Rows(0).Item(1) = "EDKB09" Then
|
|
If Globals.Herkunftsapplikation.Rows(0).Item(1) = "EDKB09" Then
|
|
dok.sBezeichnung = New SqlString(CType(IndexData.Rows(datarow).Item("Bezeichnung"), String))
|
|
End If
|
|
|
|
If IndexData.Rows(datarow).Item("BLKunde") = 1 Then
|
|
dok.bBl_scan = New SqlBoolean(CType(True, Boolean))
|
|
dok.bBldossier = New SqlBoolean(CType(True, Boolean))
|
|
Else
|
|
dok.bBl_scan = New SqlBoolean(CType(False, Boolean))
|
|
dok.bBldossier = New SqlBoolean(CType(False, Boolean))
|
|
End If
|
|
|
|
' If IndexData.Rows(datarow).Item("Dokumentidbdr") <> "" Then
|
|
' dok.sBedRDokumentid = New SqlString(CType(IndexData.Rows(datarow).Item("Dokumentidbdr"), String))
|
|
' dok.bBedRRetourniert = New SqlBoolean(CType(False, Boolean))
|
|
' End If
|
|
End If
|
|
|
|
'***************************************************************************************************************3
|
|
'EDKB14 - Anpassung deutesches Steuerreporting
|
|
'***************************************************************************************************************3
|
|
If Globals.Herkunftsapplikation.Rows(0).Item(1) = "EDKB14" Then
|
|
If IndexData.Rows(datarow).Item("BLKunde") = "1" Then
|
|
dok.bBl_scan = New SqlBoolean(CType(True, Boolean))
|
|
dok.bBldossier = New SqlBoolean(CType(True, Boolean))
|
|
Else
|
|
dok.bBl_scan = New SqlBoolean(CType(False, Boolean))
|
|
dok.bBldossier = New SqlBoolean(CType(False, Boolean))
|
|
End If
|
|
End If
|
|
|
|
'***************************************************************************************************************3
|
|
'Werte aus der Schnittstelle bzw. Defaultwerte
|
|
'***************************************************************************************************************3
|
|
dok.iNrpar00 = New SqlInt32(CType(Me.IndexData.Rows(datarow).Item(1), Int32))
|
|
If Me.IndexData.Rows(datarow).Item(16) = "" Then
|
|
dok.daArchivierungsdatum = New SqlDateTime(CType(Now, DateTime))
|
|
Else
|
|
dok.daArchivierungsdatum = New SqlDateTime(CType(Me.IndexData.Rows(datarow).Item(16), DateTime))
|
|
End If
|
|
|
|
'Ersteller und Mutierer
|
|
dok.iErsteller = New SqlInt32(CType(Globals.Mitarbeiternr, Int32))
|
|
dok.iMutierer = dok.iErsteller
|
|
dok.iMitarbeiternr = dok.iErsteller
|
|
|
|
'Erstellungs- und Mutationsdatum
|
|
dok.daMutiertam = New SqlDateTime(CType(Now, DateTime))
|
|
If Me.IndexData.Rows(datarow).Item(16) = "" Then
|
|
dok.daErstelltam = New SqlDateTime(CType(Now, DateTime))
|
|
Else
|
|
Try
|
|
dok.daErstelltam = New SqlDateTime(CType(Me.IndexData.Rows(datarow).Item(16), DateTime))
|
|
Catch
|
|
dok.daErstelltam = New SqlDateTime(CType(Now, DateTime))
|
|
End Try
|
|
End If
|
|
|
|
dok.iMutierertieam = New SqlInt32(CType(0, Int32))
|
|
dok.iErstellerteam = New SqlInt32(CType(0, Int32))
|
|
dok.daErstellungsdatum = New SqlDateTime(CType(dok.daArchivierungsdatum.Value, DateTime))
|
|
dok.sDokumentname = New SqlString(CType("Imp_" + dok.sDokumentid.Value + "." + Me.IndexData.Rows(datarow).Item(13), String))
|
|
dok.iAnzeigeStatus = New SqlInt32(CType(0, Int32))
|
|
conn_edoka.OpenConnection()
|
|
dok.Insert()
|
|
conn_edoka.CloseConnection(True)
|
|
|
|
Dim t As DataTable
|
|
Try
|
|
t = Cold_Werte(dok.iDokumenttypnr.Value)
|
|
dok.sColdfolder = New SqlString(CType(t.Rows(0).Item(0), String))
|
|
dok.sColdschema = New SqlString(CType(t.Rows(0).Item(1), String))
|
|
conn_edoka.OpenConnection()
|
|
dok.Update()
|
|
conn_edoka.CloseConnection(True)
|
|
Catch
|
|
End Try
|
|
|
|
'FANummerin im EDOKA-Dokumentaktualisieren
|
|
Update_FANummer(datarow)
|
|
dok.SelectOne()
|
|
|
|
'Cold_index erstellen
|
|
If Me.bckstatussequenz = False Then Me.COLD_Index_Sichern(1, Dokumentid)
|
|
If dok.bZu_retournieren.Value = True Then
|
|
Me.COLD_Index_Sichern(2, Dokumentid)
|
|
If Me.IndexData.Rows(datarow).Item(19) <> "" Then Update_DokumentColdIndexwert(Dokumentid, 2, 3, Me.IndexData.Rows(datarow).Item(19))
|
|
End If
|
|
|
|
'VVNummer im COLDIndex aktualisieren, sofern als Indexwert übergeben
|
|
If Me.IndexData.Rows(datarow).Item(19) <> "" Then Update_DokumentColdIndexwert(Dokumentid, 1, 3, Me.IndexData.Rows(datarow).Item(19))
|
|
|
|
|
|
If Globals.Herkunftsapplikation.Rows(0).Item(1) = "EDKB09" Or Globals.Herkunftsapplikation.Rows(0).Item(1) = "EDKB14" Then
|
|
If IndexData.Rows(datarow).Item("blkunde") = 1 Then
|
|
dok.iStatusnr = New SqlInt32(CType(Dokumentstatus_erstellen_und_Status_Setzen(datarow, True, 1), Int32))
|
|
Else
|
|
dok.iStatusnr = New SqlInt32(CType(Dokumentstatus_erstellen_und_Status_Setzen(datarow, True, 0), Int32))
|
|
End If
|
|
Else
|
|
dok.iStatusnr = New SqlInt32(CType(Dokumentstatus_erstellen_und_Status_Setzen(datarow, True, 0), Int32))
|
|
End If
|
|
'Dokumentstatus erstelln und Statushistory_eintragen
|
|
'dok.iStatusnr = New SqlInt32(CType(Dokumentstatus_erstellen_und_Status_Setzen(datarow, True), Int32))
|
|
|
|
'Dokument auf der Datenbank speichern
|
|
'Abhängig vom entsprechenden Status, wird das Flag, bereit zur Ausgangsarchivierung wieder entfernt
|
|
If Me.Status_Bereit_Zur_Eingangsarchivierung = False Then
|
|
If Not Me.Dokument_in_DB_Sichern(Dokumentid, datarow, False) Then
|
|
Return False
|
|
End If
|
|
Else
|
|
If Not Dokument_in_DB_Sichern("EDKIMP" + Right(Me.Dokumentid, 16), datarow, True) Then
|
|
End If
|
|
' If Globals.Herkunftsapplikation.Rows(0).Item(1) <> "LSV+" Then
|
|
dok.bBereit_zur_archivierung = New SqlBoolean(CType(False, Boolean))
|
|
insert_fa_bcimport(Dokumentid, datarow, Me.IndexData.Rows(datarow).Item(13))
|
|
'End If
|
|
End If
|
|
|
|
conn_edoka.OpenConnection()
|
|
dok.Update()
|
|
conn_edoka.CloseConnection(True)
|
|
|
|
'EDKB09
|
|
If Globals.Herkunftsapplikation.Rows(0).Item(1) = "EDKB09" Then
|
|
If IndexData.Rows(datarow).Item("DokumentidBdr") <> "" Then
|
|
Insert_Bedingte_Retournierung(datarow)
|
|
End If
|
|
End If
|
|
End Function
|
|
|
|
#Region "Bedingte Retournierung"
|
|
'EDKB09
|
|
Private Sub Insert_Bedingte_Retournierung(ByVal datarow As Integer)
|
|
Dim bedrdoktyp As New edokadb.clsDokumenttyp()
|
|
Dim bedrdok As New edokadb.clsDokument()
|
|
bedrdoktyp.cpMainConnectionProvider = Globals.conn_edoka
|
|
bedrdok.cpMainConnectionProvider = Globals.conn_edoka
|
|
|
|
'Dokumenttyp auslesen
|
|
bedrdoktyp.iDokumenttypnr = New SqlInt32(CType(IndexData.Rows(datarow).Item("Dokumenttypnr"), Int32))
|
|
bedrdoktyp.SelectOne()
|
|
bedrdoktyp.iDokumenttypnr = New SqlInt32(CType(bedrdoktyp.iDoktypbedingteretournierung.Value, Int32))
|
|
bedrdoktyp.SelectOne()
|
|
bedrdok.sDokumentid = New SqlString(CType(IndexData.Rows(datarow).Item("Dokumentid"), String))
|
|
bedrdok.SelectOne()
|
|
|
|
|
|
bedrdok.sDokumentid = New SqlString(CType(IndexData.Rows(datarow).Item("DokumentidBdr"), String))
|
|
bedrdok.iDokumenttypnr = New SqlInt32(CType(bedrdoktyp.iDokumenttypnr.Value, Int32))
|
|
bedrdok.sDokumentid = New SqlString(CType(IndexData.Rows(datarow).Item("Dokumentidbdr"), String))
|
|
bedrdok.iPostzustellung = New SqlInt32(CType(0, Int32))
|
|
bedrdok.iUnterschriftlinks = New SqlInt32(CType(0, Int32))
|
|
bedrdok.iUnterschriftrechts = New SqlInt32(CType(0, Int32))
|
|
bedrdok.sBezeichnung = New SqlString(CType(bedrdoktyp.sBezeichnung.Value, String))
|
|
bedrdok.sBemerkung = New SqlString(CType("", String))
|
|
bedrdok.bGesperrt = New SqlBoolean(CType(False, Boolean))
|
|
bedrdok.bVertraulich = New SqlBoolean(CType(False, Boolean))
|
|
bedrdok.sBedRDokumentid = New SqlString(CType("", String))
|
|
bedrdok.sDokumentname = New SqlString(CType("", String))
|
|
bedrdok.iBRVernichtungnachTagen = New SqlInt32(CType(bedrdoktyp.iTagebisvernichtungbedingteretournierung.Value, Int32))
|
|
|
|
bedrdok.sBedRDokumentid = New SqlString(CType(IndexData.Rows(datarow).Item("Dokumentidbdr"), String))
|
|
bedrdok.bBedRRetourniert = New SqlBoolean(CType(False, Boolean))
|
|
|
|
Dim t As DataTable
|
|
dokumenttypnr = bedrdok.iDokumenttypnr.Value
|
|
t = Generic_Select(114)
|
|
bedrdok.sColdfolder = New SqlString(CType(t.Rows(0).Item(0), String))
|
|
bedrdok.sColdschema = New SqlString(CType(t.Rows(0).Item(1), String))
|
|
bedrdok.iAnzeigeStatus = New SqlInt32(CType(0, Int32))
|
|
Dokumentid = IndexData.Rows(datarow).Item("Dokumentidbdr")
|
|
conn_edoka.OpenConnection()
|
|
bedrdok.Insert()
|
|
conn_edoka.CloseConnection(True)
|
|
bedrdok.sDokumentid = New SqlString(CType(Dokumentid, String))
|
|
bedrdok.cpMainConnectionProvider = conn_edoka
|
|
bedrdok.SelectOne()
|
|
bedrdok.iStatusnr = New SqlInt32(CType(Dokumentstatus_erstellen_und_Status_Setzen(Dokumentid, True, 0), Int32))
|
|
|
|
conn_edoka.OpenConnection()
|
|
bedrdok.Update()
|
|
conn_edoka.CloseConnection(True)
|
|
Dokumentid = IndexData.Rows(datarow).Item("Dokumentidbdr")
|
|
|
|
'Cold_index erstellen
|
|
Me.COLD_Index_Sichern(2, Dokumentid)
|
|
'If bedrdok.bZu_retournieren.Value = True Then
|
|
' Me.COLD_Index_Sichern(2, Dokumentid)
|
|
' If Me.IndexData.Rows(datarow).Item(19) <> "" Then Update_DokumentColdIndexwert(Dokumentid, 2, 3, Me.IndexData.Rows(datarow).Item(19))
|
|
'End If
|
|
|
|
'VVNummer im COLDIndex aktualisieren, sofern als Indexwert übergeben
|
|
If Me.IndexData.Rows(datarow).Item(19) <> "" Then Update_DokumentColdIndexwert(Dokumentid, 1, 3, Me.IndexData.Rows(datarow).Item(19))
|
|
|
|
conn_edoka.OpenConnection()
|
|
bedrdok.Update()
|
|
conn_edoka.CloseConnection(True)
|
|
End Sub
|
|
|
|
Private Function Dokumentstatus_erstellen_und_Status_Setzen(ByVal dokumentid As String, ByVal erstellen As Boolean, Optional ByVal BLKunde As Integer = 0) As Integer
|
|
Dim st As New DataTable()
|
|
Dim i As Integer
|
|
Dim dt As DateTime = DateAdd(DateInterval.Second, -5, Now)
|
|
Dim MitArchivfunktion As Boolean = False
|
|
|
|
If erstellen = True Then
|
|
Me.Create_Dokumentstatus(dokumentid)
|
|
End If
|
|
Me.Dokumentid = dokumentid
|
|
st = Me.Get_Dokumentstatus(0)
|
|
For i = 0 To st.Rows.Count - 1
|
|
Select Case Integer.Parse(st.Rows(i).Item(2).ToString)
|
|
Case 3
|
|
MitArchivfunktion = True
|
|
Case 11
|
|
MitArchivfunktion = True
|
|
Status_Bereit_Zur_Eingangsarchivierung = True
|
|
End Select
|
|
Next
|
|
|
|
If MitArchivfunktion Then
|
|
'Dokumentstatusreihenfolge mit Ausgangsarchivierung
|
|
For i = 0 To st.Rows.Count - 1
|
|
insert_history_status(st.Rows(i).Item(0), dokumentid, Globals.Mitarbeiternr, dt)
|
|
dt = DateAdd(DateInterval.Second, 1, dt)
|
|
If st.Rows(i).Item(2) = 3 Or st.Rows(i).Item(2) = 11 Then
|
|
Return st.Rows(i).Item(0)
|
|
Exit Function
|
|
End If
|
|
Next
|
|
Else
|
|
'Dokumentstatusreihenfolge ohne Ausgangsarchivierung
|
|
End If
|
|
End Function
|
|
|
|
Private Function Create_Dokumentstatus(ByVal dokumentid As String) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.sp_dokumentberabeigung_status_erstellen"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
If Me.bckstatussequenz = False Then
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@bck", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
Else
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@bck", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
|
|
End If
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
conn_edoka.CloseConnection(True)
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
Private Function Generic_Select(ByVal typ As Integer) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Select Case typ
|
|
Case 114
|
|
scmCmdToExecute.CommandText = "sp_archiv_getschema_doc"
|
|
Case Else
|
|
End Select
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
|
|
scmCmdToExecute.Connection = Globals.conn_edoka.scoDBConnection
|
|
Try
|
|
Select Case typ
|
|
Case 114
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumenttypnr", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.dokumenttypnr))
|
|
Case Else
|
|
End Select
|
|
If typ = 1 Then
|
|
End If
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
' // some error occured. Bubble it to caller and encapsulate Exception object
|
|
Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
|
|
#End Region
|
|
|
|
Private Function insert_fa_bcimport(ByVal dokumentid As String, ByVal datarow As Integer, ByVal dateiformat As String) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
scmCmdToExecute.CommandText = "dbo.sp_edoka_import_insert_fa_bcimport"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
Try
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dateiname", SqlDbType.VarChar, 225, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.IndexData.Rows(datarow).Item(12)))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dateiformat", SqlDbType.VarChar, 225, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dateiformat))
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
'''<summary>FA-Nummer 1-3 in EDOKA ergänzen</summary>
|
|
'''<remarks>Setzt für die Fremdanwendung die Felder
|
|
'''<list type="table">
|
|
'''<listheader>
|
|
'''<term>Feld</term>
|
|
'''<description>Beschreibung</description></listheader>
|
|
'''<item>
|
|
'''<term>FANummer1</term>
|
|
'''<description>Bezeichnung der Applikatoin</description></item>
|
|
'''<item>
|
|
'''<term>FANummer2</term>
|
|
'''<description>Dokumentname</description></item>
|
|
'''<item>
|
|
'''<term>FANummer3</term>
|
|
'''<description>Geschäftsfallnummer</description></item></list></remarks>
|
|
'''<param name="datarow">Aktuelle Zeile der Indexdatei</param>
|
|
Private Function Update_FANummer(ByVal datarow As Integer) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
scmCmdToExecute.CommandText = "sp_edoka_import_update_fanummer"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
Try
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 225, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@fanummer1", SqlDbType.VarChar, 225, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.Herkunftsapplikation.Rows(0).Item(1)))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@fanummer2", SqlDbType.VarChar, 225, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.IndexData.Rows(datarow).Item(12)))
|
|
If Me.IndexData.Rows(datarow).Item(18) = "" Then
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@fanummer3", SqlDbType.VarChar, 225, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, ""))
|
|
Else
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@fanummer3", SqlDbType.VarChar, 225, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.IndexData.Rows(datarow).Item(17) + ": " + Me.IndexData.Rows(datarow).Item(18)))
|
|
End If
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
'''<summary>FA-Nummer 3 in EDOKA ergänzen</summary>
|
|
'''<remarks>Setzt für die Fremdanwendung die Felder
|
|
'''<list type="table">
|
|
'''<listheader>
|
|
'''<term>Feld</term>
|
|
'''<description>Beschreibung</description></listheader>
|
|
'''<item>
|
|
'''<term>FANummer3</term>
|
|
'''<description>Geschäftsfallnummer</description></item></list></remarks>
|
|
'''<param name="datarow">Aktuelle Zeile der Indexdatei</param>
|
|
Private Function Update_FANummer_Barcodeimport(ByVal datarow As Integer) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
scmCmdToExecute.CommandText = "sp_edoka_import_update_fanummer"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
Try
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 225, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@fanummer1", SqlDbType.VarChar, 225, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, ""))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@fanummer2", SqlDbType.VarChar, 225, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.IndexData.Rows(datarow).Item(12)))
|
|
If Me.IndexData.Rows(datarow).Item(18) = "" Then
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@fanummer3", SqlDbType.VarChar, 225, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, ""))
|
|
Else
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@fanummer3", SqlDbType.VarChar, 225, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.IndexData.Rows(datarow).Item(17) + ": " + Me.IndexData.Rows(datarow).Item(18)))
|
|
End If
|
|
' scmCmdToExecute.Parameters.Add(New SqlParameter("@fanummer3", SqlDbType.VarChar, 225, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.IndexData.Rows(datarow).Item(18)))
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
'''<summary>Löst das Importieren des Original-Dokumentes in die Datenbank
|
|
'''aus</summary>
|
|
'''<remarks>Die Methode löst das Importieren des Origianldokumentes in die
|
|
'''EDOKA-Datenbank aus</remarks>
|
|
'''<param name="dokumentid">EDOKA-DokumentID</param>
|
|
'''<param name="datarow">Aktuelle Zeile der Indexdaten</param>
|
|
'''<returns>True=Improt erfolgreich, False=Import fehlgeschlagen</returns>
|
|
'''<seealso cref="clsDivFnkt.Save_To_DB">clsDivFnkt.Save_To_DB(System.String,
|
|
'''System.String)</seealso>
|
|
Private Function Dokument_in_DB_Sichern(ByVal dokumentid As String, ByVal datarow As Integer) As Boolean
|
|
If Not DivFnkt.Save_To_DB(dokumentid, Params.Inputverzeichnis + Me.IndexData.Rows(datarow).Item(12), False) Then
|
|
Fehler = 115
|
|
Journal.Insert_Journal(datarow, Me.IndexData.Rows(datarow).Item(1), Me.IndexData.Rows(datarow).Item(13), Me.IndexData.Rows(datarow).Item(12), 115, "Datei konnte nicht in die EDOKA-Datenbank gespeichert werden.", "", "")
|
|
Return False
|
|
End If
|
|
Return True
|
|
|
|
End Function
|
|
|
|
Private Function Dokument_in_DB_Sichern(ByVal dokumentid As String, ByVal datarow As Integer, ByVal BarcodeDokument As Boolean) As Boolean
|
|
If Not DivFnkt.Save_To_DB(dokumentid, Params.Inputverzeichnis + Me.IndexData.Rows(datarow).Item(12), True) Then
|
|
Fehler = 115
|
|
Journal.Insert_Journal(datarow, Me.IndexData.Rows(datarow).Item(1), Me.IndexData.Rows(datarow).Item(13), Me.IndexData.Rows(datarow).Item(12), 115, "Datei konnte nicht in die EDOKA-Datenbank gespeichert werden.", "", "")
|
|
Return False
|
|
End If
|
|
|
|
Return True
|
|
|
|
End Function
|
|
|
|
'''<summary>EDOKA-Dokumenttypnr auslesen</summary>
|
|
'''<remarks>Liest anhand des Fremdanwendungs-Dokumenttyps den EDOKA-Dokumenttyp
|
|
'''aus.</remarks>
|
|
'''<param name="datarow">Aktuelle Datenzeile der Indexdaten</param>
|
|
'''<returns>Dokumenttypnr</returns>
|
|
Private Function Get_EDOKA_Dokumenttypnr(ByVal datarow As Integer) As Integer
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.SP_Edoka_Import_Get_EDOKA_Dokumenttyp"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@fadokumenttyp", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Me.IndexData.Rows(datarow).Item(11)))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@applid", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.Herkunftsapplikation.Rows(0).Item(0)))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@edokadokumenttyp", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
Try
|
|
conn_edoka.OpenConnection()
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
conn_edoka.CloseConnection(True)
|
|
If scmCmdToExecute.Parameters("@edokadokumenttyp").Value = 0 Then
|
|
Fehler = 116
|
|
Journal.Insert_Journal(datarow, "", "", "", Fehler, "Dokumenttyp: " + Me.IndexData.Rows(datarow).Item(11) + " ist nicht definiert.", "", "")
|
|
Return 0
|
|
Else
|
|
Return scmCmdToExecute.Parameters("@edokadokumenttyp").Value
|
|
End If
|
|
Catch ex As Exception
|
|
PrintOut("clsCheckandImport.Get_EDOKA_Dokumenttypnr()" + ex.Message, EventLogEntryType.Error)
|
|
Return 0
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
dtToReturn.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
|
|
#Region "ColdIndex und Dokumentwerte"
|
|
|
|
'''<summary>Auslesen von Coldschema und -Folder</summary>
|
|
'''<param name="dokumenttypnr">Dokumenttypnr des aktuellen Dokumentes</param>
|
|
'''<returns>Datatable mit den COLD-Werten</returns>
|
|
Private Function Cold_Werte(ByVal dokumenttypnr As Integer) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
scmCmdToExecute.CommandText = "sp_archiv_getschema_doc"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
Try
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumenttypnr", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumenttypnr))
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
'''<summary>Coldindex zum erstellen Dokument erstellen und speichern</summary>
|
|
'''<param name="indextyp">Standard 1</param>
|
|
'''<param name="dokumentid">Dokumentid des aktuellen Dokumentes</param>
|
|
'''<returns>Datatable</returns>
|
|
Public Function COLD_Index_Sichern(ByVal indextyp As Integer, ByVal dokumentid As String) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
scmCmdToExecute.CommandText = "dbo.SP_Dokument_Cold_Index"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@indextyp", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, indextyp))
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
' // some error occured. Bubble it to caller and encapsulate Exception object
|
|
Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
'''<summary>Dokument Cold Indexwert anpassen</summary>
|
|
'''<remarks>Führt einen Wert in der Tabelle Dokumentcoldindexwert nach</remarks>
|
|
'''<param name="dokumentid">DokumentID des aktuellend Dokumentes</param>
|
|
'''<param name="Indextyp">1 für Ausgangsarchivierung
|
|
'''<para>2 für Ausgangsarchivierung</para></param>
|
|
'''<param name="indexfeld">Nummer des Indexfeldes</param>
|
|
'''<param name="wert">Wert</param>
|
|
Public Function Update_DokumentColdIndexwert(ByVal dokumentid As String, ByVal Indextyp As Integer, ByVal indexfeld As Integer, ByVal wert As String) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
scmCmdToExecute.CommandText = "dbo.SP_Archiv_Update_DokumentColdIndexwert"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
conn_edoka.OpenConnection()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@indextyp", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Indextyp))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@indexfeld", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, indexfeld))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@wert", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, wert))
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
Try
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
' // some error occured. Bubble it to caller and encapsulate Exception object
|
|
Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
conn_edoka.CloseConnection(True)
|
|
End Try
|
|
End Function
|
|
|
|
'''<summary>Edoka-spezifische Dokumentwerte nachführen</summary>
|
|
'''<remarks>Führt folgende Daten in den Dokumentwerten hinzu
|
|
'''<para>- Herkunftsapplikation</para>
|
|
'''<para>- Archivreferenz</para>
|
|
'''<para>- Listen-Empfänger MA/KST/NL</para>
|
|
'''<para>- Individuelle Dokumentwerte der Fremdanwendung</para></remarks>
|
|
'''<param name="datarow">Aktuelle Zeile der Indexdaten</param>
|
|
Private Function Insert_Dokumentwerte(ByVal datarow As Integer) As Boolean
|
|
'Herkunftsapplikation
|
|
If Me.IndexData.Rows(datarow).Item(17) <> "" Then
|
|
Dokumentwert_Sichern("Applikation;" + Me.IndexData.Rows(datarow).Item(17), -90000)
|
|
Else
|
|
'Anpassungen EBES-LSV
|
|
Dokumentwert_Sichern("Applikation;" + Globals.Herkunftsapplikation.Rows(0).Item(1), -90000)
|
|
End If
|
|
|
|
'Archivreferenz
|
|
If Me.IndexData.Rows(datarow).Item(21) <> "" Then
|
|
|
|
If Not IsNumeric(Me.IndexData.Rows(datarow).Item(21)) Then
|
|
Dokumentwert_Sichern("Archivref.;" + Me.IndexData.Rows(datarow).Item(21), -90001)
|
|
Else
|
|
Me.Update_DokumentColdIndexwert(Dokumentid, 1, 11, Me.IndexData.Rows(datarow).Item(21))
|
|
|
|
End If
|
|
End If
|
|
'ListEmpfaengerMA
|
|
If Me.IndexData.Rows(datarow).Item(23) <> "" Then
|
|
Dokumentwert_Sichern("Empfänger MA;" + Me.IndexData.Rows(datarow).Item(23), -90002)
|
|
End If
|
|
'ListEmpfaengerKST
|
|
If Me.IndexData.Rows(datarow).Item(24) <> "" Then
|
|
Dokumentwert_Sichern("Empfänger KST;" + Me.IndexData.Rows(datarow).Item(24), -90003)
|
|
End If
|
|
'ListEmpfaengerNL / FormularID bei FinFox
|
|
If UCase(Globals.Herkunftsapplikation.Rows(0).Item(1)) = "FINFOX" And Me.IndexData.Rows(datarow).Item(25) <> "" Then
|
|
update_dokument_formularnr(Dokumentid, Me.IndexData.Rows(datarow).Item(25))
|
|
'Dokumentwert_Sichern("Formular-ID;" + Me.IndexData.Rows(datarow).Item(25), -90004)
|
|
Else
|
|
If Me.IndexData.Rows(datarow).Item(25) <> "" Then
|
|
Dokumentwert_Sichern("Empfänger NL;" + Me.IndexData.Rows(datarow).Item(25), -90004)
|
|
End If
|
|
End If
|
|
|
|
'Dokumentwerte
|
|
Dim i As Integer
|
|
For i = 26 To Me.IndexData.Columns.Count - 1
|
|
Try
|
|
If Me.IndexData.Rows(datarow).Item(i) <> "" Then
|
|
Dim s As String
|
|
Dim s1 As String
|
|
|
|
s = Me.IndexData.Rows(datarow).Item(i)
|
|
If s.IndexOf(";") < 1 Then
|
|
s1 = Me.IndexData.Columns(i).ColumnName
|
|
s1 = s1.Replace("_", " ")
|
|
s = Me.IndexData.Columns(i).ColumnName + ";" + Me.IndexData.Rows(datarow).Item(i)
|
|
Dokumentwert_Sichern(s, -90005 - (i - 25))
|
|
Else
|
|
Dokumentwert_Sichern(Me.IndexData.Rows(datarow).Item(i), -90005 - (i - 25))
|
|
End If
|
|
End If
|
|
Catch
|
|
End Try
|
|
Next
|
|
End Function
|
|
|
|
'''<summary>Edoka-spezifischer Dokumentwert auf der Datenbank sichern</summary>
|
|
'''<param name="wert">Inhalt</param>
|
|
'''<param name="feldnr">Feldnummer</param>
|
|
Public Sub Dokumentwert_Sichern(ByVal wert As String, ByVal feldnr As Integer)
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
scmCmdToExecute.CommandText = "dbo.SP_Dokument_Information_Wert"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Connection.Open()
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@vorlagenfeldnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, feldnr))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@value", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, wert))
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
Catch ex As Exception
|
|
' // some error occured. Bubble it to caller and encapsulate Exception object
|
|
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Connection.Close()
|
|
scmCmdToExecute.Dispose()
|
|
End Try
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "Status"
|
|
'''<summary>Erstellen der Dokumentstatus und eintragen der entsprechenden
|
|
'''Statushistory-Einträge</summary>
|
|
'''<param name="datarow">Aktuelle Zeile der Indexdaten</param>
|
|
'''<returns>Status, welcher im Dokument unter "Statusnr" nachgeführt
|
|
'''wird</returns>
|
|
'''<seealso
|
|
'''cref="Create_Dokumentstatus">edkb08.clsCheckandImport.Create_Dokumentstatus(System.Int32)</seealso>
|
|
'''<seealso
|
|
'''cref="Get_Dokumentstatus">edkb08.clsCheckandImport.Get_Dokumentstatus(System.Int32)</seealso>
|
|
'''<seealso cref="clsCheckandImport.insert_history_status">edkb08.clsCheckandImport.insert_history_status(System.Int32,
|
|
'''System.String, System.Int32, System.DateTime)</seealso>
|
|
Private Function Dokumentstatus_erstellen_und_Status_Setzen(ByVal datarow As Integer, ByVal erstellen As Boolean, Optional ByVal BLKunde As Integer = 0) As Integer
|
|
Dim st As New DataTable()
|
|
Dim i As Integer
|
|
Dim dt As DateTime = DateAdd(DateInterval.Second, -5, Now)
|
|
Dim MitArchivfunktion As Boolean = False
|
|
|
|
If erstellen = True Then
|
|
Me.Create_Dokumentstatus(datarow, BLKunde)
|
|
End If
|
|
st = Me.Get_Dokumentstatus(datarow)
|
|
For i = 0 To st.Rows.Count - 1
|
|
Select Case Integer.Parse(st.Rows(i).Item(2).ToString)
|
|
Case 3
|
|
MitArchivfunktion = True
|
|
Case 11
|
|
MitArchivfunktion = True
|
|
Status_Bereit_Zur_Eingangsarchivierung = True
|
|
End Select
|
|
Next
|
|
|
|
If MitArchivfunktion Then
|
|
'Dokumentstatusreihenfolge mit Ausgangsarchivierung
|
|
For i = 0 To st.Rows.Count - 1
|
|
insert_history_status(st.Rows(i).Item(0), Dokumentid, Globals.Mitarbeiternr, dt)
|
|
dt = DateAdd(DateInterval.Second, 1, dt)
|
|
If st.Rows(i).Item(2) = 3 Or st.Rows(i).Item(2) = 11 Then
|
|
Return st.Rows(i).Item(0)
|
|
Exit Function
|
|
End If
|
|
Next
|
|
Else
|
|
'Dokumentstatusreihenfolge ohne Ausgangsarchivierung
|
|
End If
|
|
End Function
|
|
|
|
'''<summary>Dokumentstatus für das zu erstellende Dokument generieren</summary>
|
|
'''<remarks>Erstellt die Dokumentstatus gem. Statussequenz des
|
|
'''Dokumenttyps</remarks>
|
|
'''<param name="datarow">Aktuelle Zeile der Indexdaten</param>
|
|
'''<returns>Datatable</returns>
|
|
Private Function Create_Dokumentstatus(ByVal datarow As Integer, Optional ByVal blkunde As Integer = 0) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.sp_dokumentberabeigung_status_erstellen"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Dokumentid))
|
|
If Me.bckstatussequenz = False Then
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@bck", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
Else
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@bck", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
|
|
End If
|
|
If blkunde = 0 Then
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@blsequenz", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
Else
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@blsequenz", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
|
|
End If
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
conn_edoka.CloseConnection(True)
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
'''<summary>Alle Dokumentstatus eines Dokumentes lesen</summary>
|
|
'''<remarks>Diese Funktion liest alle Dokumentstatus eines Dokumentes</remarks>
|
|
'''<param name="datarow">Aktuelle Ziele der Indexdaten</param>
|
|
'''<returns>Datatable mit den Dokumentstatus</returns>
|
|
Private Function Get_Dokumentstatus(ByVal datarow As Integer) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.sp_edoka_import_get_dokumentstatus"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Dokumentid))
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
conn_edoka.CloseConnection(True)
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
'''<summary>Auslesen der EDOKA-Mitarbeiternummer aufgrund der gelieferten
|
|
'''TG-Nummer</summary>
|
|
'''<param name="datarow">Aktuelle Import-Datenzeile</param>
|
|
'''<returns>Mitarbeiternr des EDOKA-Mitarbeiters entweder anhand der TGNummer oder
|
|
'''die in der Tabelle FA_Appl definierte Mitarbeiternr, sofern die gelieferte
|
|
'''TGNummer "" oder nicht als Mitarbeiter in EDOKA vorhanden
|
|
'''ist</returns>
|
|
Private Function Get_EDOKA_Mitarbeiter(ByVal datarow As Integer) As Integer
|
|
If Me.IndexData.Rows(datarow).Item(14) = "" Then Return Herkunftsapplikation.Rows(0).Item(2)
|
|
|
|
Dim tmptable As DataTable
|
|
Dim tmpma As New edokadb.clsMyMitarbeiter()
|
|
tmpma.cpMainConnectionProvider = conn_edoka
|
|
tmpma.xtgnummer = IndexData.Rows(datarow).Item(14)
|
|
tmptable = tmpma.SelectWithTGNummer()
|
|
If tmptable.Rows.Count = 0 Then
|
|
Return Herkunftsapplikation.Rows(0).Item(2)
|
|
Else
|
|
Return tmptable.Rows(0).Item(0)
|
|
End If
|
|
tmpma.Dispose()
|
|
tmptable.Dispose()
|
|
End Function
|
|
|
|
'''<summary>Statushistory nachführen</summary>
|
|
'''<remarks>Diese Funktion fügt für einen Dokumentstatus eines bestimmten Dokuments
|
|
'''die Statushistory nach</remarks>
|
|
'''<param name="statusnr">Nummer des Status</param>
|
|
'''<param name="dokumentid">EDOKA-DokumentID</param>
|
|
'''<param name="Verantwortlicher">Verantwortlicher Mitarbeiter</param>
|
|
'''<param name="datumzeit">Timestamp</param>
|
|
Public Sub insert_history_status(ByVal statusnr As Integer, ByVal dokumentid As String, ByVal Verantwortlicher As Integer, ByVal datumzeit As DateTime)
|
|
Try
|
|
Dim sh As New edokadb.clsStatushistory()
|
|
Dim dbkey As New edokadb.clsMyKey_Tabelle()
|
|
Dim key As Long
|
|
dbkey.cpMainConnectionProvider = conn_edoka
|
|
key = dbkey.get_dbkey("statushistory")
|
|
sh.cpMainConnectionProvider = conn_edoka
|
|
sh.iStatushistorynr = New SqlInt32(CType(key, Int32))
|
|
sh.iStatus = New SqlInt32(CType(statusnr, Int32))
|
|
sh.iMandantnr = New SqlInt32(CType(1, Int32))
|
|
sh.iMutierer = New SqlInt32(CType(Globals.Mitarbeiternr, Int32))
|
|
sh.bAktiv = New SqlBoolean(True)
|
|
sh.daErstellt_am = New SqlDateTime(CType(datumzeit, DateTime))
|
|
sh.daMutiert_am = New SqlDateTime(CType(datumzeit, DateTime))
|
|
sh.sDokumentid = New SqlString(CType(dokumentid, String))
|
|
sh.iVerantwortlich = New SqlInt32(CType(Verantwortlicher, Int32))
|
|
Try
|
|
conn_edoka.OpenConnection()
|
|
Catch
|
|
End Try
|
|
sh.Insert()
|
|
Try
|
|
conn_edoka.CloseConnection(True)
|
|
Catch
|
|
End Try
|
|
dbkey.Dispose()
|
|
sh.Dispose()
|
|
Catch ex As Exception
|
|
PrintOut("clsCheckandImport.insert_history_status()" + ex.Message, EventLogEntryType.Error)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#End Region
|
|
|
|
#Region "Delete Dokument"
|
|
'''<summary>Löschung des Dokumentes, abhängig vom Übergabewert (Dokumentid oder
|
|
'''Dokumentname) auslösen</summary>
|
|
'''<remarks>Abhängig vom Übergabeparameter Dokumentid (Indexfeld 23) oder
|
|
'''Dateiname, wird das Löschen bzw. Aufheben des Dokumentes ausgelöst.
|
|
'''<para>Im Falle der Übergabe des Dateinamens, ist sicher gestellt, dass ein
|
|
'''Dokument nur dann gelöscht wird, wenn der Dateiname eindeutig verwendet
|
|
'''wurde.</para></remarks>
|
|
'''<param name="datarow">Aktuelle Zeile der Indexdaten</param>
|
|
'''<returns>True=Löschung durchgeführt
|
|
'''<para>False=Löschung nicht durchgeführt</para></returns>
|
|
Private Function Delete_Dokument(ByVal datarow As Integer) As Boolean
|
|
'Löschung des Dokumentes
|
|
If Dokument_Loeschen(Me.Dokumentid, datarow) Then Return True Else Return False
|
|
End Function
|
|
|
|
'''<summary>Dokument löschen bzw. aufheben</summary>
|
|
'''<remarks>Als erstes wird der aktuelle Status des Dokumentes ausgelesen bzw. es
|
|
'''wird überprüft, ob das zu löschende Dokumente den Status "Aufgehoben"
|
|
'''in der Statussequenz hat. Beim Vorhandensein des Aufhebungsstatus wird das
|
|
'''Dokument aufgehoben, ansonsten gelöscht resp. inaktiviert.</remarks>
|
|
'''<param name="dokumentid">DokumentID des zu löschenden Dokumentes</param>
|
|
'''<param name="datarow">Aktuelle Zeile der Indexdaten</param>
|
|
'''<returns>True=Löschung erfolgt
|
|
'''<para>False=Löschung nicht durchgeführt</para></returns>
|
|
Private Function Dokument_Loeschen(ByVal dokumentid As String, ByVal datarow As Integer) As Boolean
|
|
Dim i As Integer
|
|
i = ist_archiviert(dokumentid)
|
|
If i = 0 Then
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
scmCmdToExecute.CommandText = "dbo.SP_Dokument_delete"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
conn_edoka.OpenConnection()
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiter", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.Mitarbeiternr))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@loeschgrund", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, "*** Dokument durch EDKB08 gelöscht."))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@anzeigestatus", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
Catch ex As Exception
|
|
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
conn_edoka.CloseConnection(True)
|
|
Journal.Insert_Journal(datarow, IndexData.Rows(datarow).Item(1), "", IndexData.Rows(datarow).Item(12), "0", "Dokument gelöscht.", dokumentid, "")
|
|
End Try
|
|
Return True
|
|
End If
|
|
i = get_status(dokumentid)
|
|
Select Case i
|
|
Case 0
|
|
Fehler = 201
|
|
Journal.Insert_Journal(datarow, IndexData.Rows(datarow).Item(1), "", IndexData.Rows(datarow).Item(12), 201, "Dokument konnte nicht gelöscht werden.", dokumentid, "")
|
|
Return False
|
|
Case -3
|
|
set_aufgehoben(dokumentid)
|
|
Journal.Insert_Journal(datarow, IndexData.Rows(datarow).Item(1), "", IndexData.Rows(datarow).Item(12), "0", "Dokument aufgehoben.", dokumentid, "")
|
|
Case Else
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
scmCmdToExecute.CommandText = "dbo.SP_Dokument_delete"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
conn_edoka.OpenConnection()
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@mitarbeiter", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, Globals.Mitarbeiternr))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@loeschgrund", SqlDbType.VarChar, 1024, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, "*** Dokument durch EDKB08 gelöscht."))
|
|
If i = -2 Then
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@anzeigestatus", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
Else
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@anzeigestatus", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, 1))
|
|
End If
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
Catch ex As Exception
|
|
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
conn_edoka.CloseConnection(True)
|
|
Dim dt As DataTable
|
|
dt = get_coldindex_and_statusnr(dokumentid, False, False)
|
|
insert_coldupdate_status(dt, dokumentid, "Alt")
|
|
dt.Dispose()
|
|
Journal.Insert_Journal(datarow, IndexData.Rows(datarow).Item(1), "", IndexData.Rows(datarow).Item(12), "0", "Dokument gelöscht.", dokumentid, "")
|
|
End Try
|
|
End Select
|
|
End Function
|
|
|
|
'''<summary>Auselesen des letzten Status in der Seqeunz des zu löschenden
|
|
'''Dokumentes</summary>
|
|
'''<param name="dokumentid">Dokumentid des zu löschenden Dokumentes</param>
|
|
'''<returns>Status_Bezeichnungnr</returns>
|
|
Private Function get_status(ByVal dokumentid As String) As Integer
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.SP_Edoka_Import_Get_Status"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@status", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@aufheben", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
Try
|
|
conn_edoka.OpenConnection()
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
conn_edoka.CloseConnection(True)
|
|
Return scmCmdToExecute.Parameters("@aufheben").Value
|
|
Catch ex As Exception
|
|
PrintOut("clsCheckandImport.get_status()" + ex.Message, EventLogEntryType.Error)
|
|
Return 0
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
dtToReturn.Dispose()
|
|
End Try
|
|
|
|
End Function
|
|
|
|
'''<summary>Dokument aufheben</summary>
|
|
'''<param name="dokumentid">Dokumentid des aufzuhebenden Dokumentes</param>
|
|
Public Sub set_aufgehoben(ByVal dokumentid As String)
|
|
Dim dt As DataTable
|
|
dt = get_coldindex_and_statusnr(dokumentid, True, False)
|
|
insert_coldupdate_status(dt, dokumentid, "Alt")
|
|
dt.Dispose()
|
|
End Sub
|
|
|
|
'''<summary>SColdindex und Aufhebungsstatus des eines zu löschenden bzw.
|
|
'''aufzuhebenden Dokumentes auslesen</summary>
|
|
'''<remarks>Sofern das Dokument aufgehoben wird, wird der Status
|
|
'''"Aufgehoben" im Dokument nachgeführt, indem einerseits einen
|
|
'''Statushistory-Eintrag erstellt und der aktuelle Dokumentstatus gesetzt
|
|
'''wird.</remarks>
|
|
'''<param name="dokumentid">Dokumentid des zu löschenden / aufzuhebenden
|
|
'''Dokumentes</param>
|
|
'''<param name="aufheben">True=Dokument aufheben
|
|
'''<para>False=Dokument nicht aufheben</para></param>
|
|
'''<param name="reaktivieren">True=Aufgehobenes Dokument reaktivieren
|
|
'''<para>False=Keine Dokumentreaktivierung</para></param>
|
|
'''<returns>Datentable mit den Dokumentstatus</returns>
|
|
Public Function get_coldindex_and_statusnr(ByVal dokumentid As String, ByVal aufheben As Boolean, ByVal reaktivieren As Boolean) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim i As Integer
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.sp_get_coldindex_and_aufhebungsstatus"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@reaktivieren", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, reaktivieren))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@aufhebungsstatus", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
sdaAdapter.Fill(dtToReturn)
|
|
i = scmCmdToExecute.Parameters.Item("@aufhebungsstatus").Value
|
|
If (i <> 0 And aufheben) Or (i <> 0 And reaktivieren) Then
|
|
insert_history_status(i, dokumentid, Globals.Mitarbeiternr, Now)
|
|
Dim d As New edokadb.clsDokument()
|
|
d.cpMainConnectionProvider = conn_edoka
|
|
d.sDokumentid = New SqlString(CType(dokumentid, String))
|
|
d.SelectOne()
|
|
d.iStatusnr = New SqlInt32(CType(i, Int32))
|
|
conn_edoka.OpenConnection()
|
|
d.daMutiertam = New SqlDateTime(CType(Now, DateTime))
|
|
d.iMutierer = New SqlInt32(CType(Globals.Mitarbeiternr, Int32))
|
|
d.Update()
|
|
conn_edoka.CloseConnection(True)
|
|
d.Dispose()
|
|
End If
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
'MsgBox(ex.Message)
|
|
' // some error occured. Bubble it to caller and encapsulate Exception object
|
|
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
'''<summary>AGI-COLD-Dokument-Status ändern</summary>
|
|
'''<remarks>Setzt den aktuellen Status der COLD-Dokumente auf den Wert im Parameter
|
|
'''"neuerstatus"</remarks>
|
|
'''<param name="dt">Datentabelle mit Cold-Index-Werten</param>
|
|
'''<param name="dokumentid">DokumentID</param>
|
|
'''<param name="neuerstatus">Neuer Status der entsprechenden COLD-Dokumente</param>
|
|
|
|
Public Sub insert_coldupdate_status(ByVal dt As DataTable, ByVal dokumentid As String, ByVal neuerstatus As String)
|
|
Dim i As Integer
|
|
Dim colddokumentid As String
|
|
Dim indextyp As Integer
|
|
indextyp = 1
|
|
colddokumentid = ""
|
|
For i = 0 To dt.Rows.Count - 1
|
|
If dt.Rows(i).Item("indextyp") = indextyp Then
|
|
If dt.Rows(i).Item("cold_indexfeldnr") = 10 And dt.Rows(i).Item("wert") <> "" Then colddokumentid = dt.Rows(i).Item("wert")
|
|
If colddokumentid <> "" Then
|
|
Insert_ColdUpdate(dokumentid, colddokumentid, indextyp, 7, "Alt")
|
|
Exit For
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
indextyp = 2
|
|
colddokumentid = ""
|
|
For i = 0 To dt.Rows.Count - 1
|
|
If dt.Rows(i).Item("indextyp") = indextyp Then
|
|
If dt.Rows(i).Item("cold_indexfeldnr") = 10 And dt.Rows(i).Item("wert") <> "" Then colddokumentid = dt.Rows(i).Item("wert")
|
|
If colddokumentid <> "" Then
|
|
Insert_ColdUpdate(dokumentid, colddokumentid, indextyp, 7, "Alt")
|
|
Exit For
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
End Sub
|
|
'Alt vor Umstellung COLDIndexwerte
|
|
'Public Function insert_coldupdate_status(ByVal dt As DataTable, ByVal dokumentid As String, ByVal neuerstatus As String)
|
|
' Dim i As Integer
|
|
' Dim colddokumentid As String
|
|
' Dim neuerwert As String
|
|
' Dim indextyp As Integer
|
|
' indextyp = 1
|
|
' colddokumentid = ""
|
|
' For i = 0 To dt.Rows.Count - 1
|
|
' If dt.Rows(i).Item("indextyp") = indextyp Then
|
|
' If dt.Rows(i).Item("cold_indexfeldnr") = 10 And dt.Rows(i).Item("wert") <> "" Then colddokumentid = dt.Rows(i).Item("wert")
|
|
' If colddokumentid <> "" Then
|
|
' Insert_ColdUpdate(dokumentid, colddokumentid, indextyp, 7, "Alt")
|
|
' Exit For
|
|
' End If
|
|
' End If
|
|
' Next
|
|
|
|
' indextyp = 2
|
|
' colddokumentid = ""
|
|
' For i = 0 To dt.Rows.Count - 1
|
|
' If dt.Rows(i).Item("indextyp") = indextyp Then
|
|
' If dt.Rows(i).Item("cold_indexfeldnr") = 10 And dt.Rows(i).Item("wert") <> "" Then colddokumentid = dt.Rows(i).Item("wert")
|
|
' If colddokumentid <> "" Then
|
|
' Insert_ColdUpdate(dokumentid, colddokumentid, indextyp, 7, "Alt")
|
|
' Exit For
|
|
' End If
|
|
' End If
|
|
' Next
|
|
|
|
'End Function
|
|
|
|
'''<summary>Tabelle COLD-Update mit Updates ergänzen</summary>
|
|
'''<param name="dokumentid">DokumentID des EDOKA-Dokumentes</param>
|
|
'''<param name="colddokumentid">DokumentID des COLD-Bildes</param>
|
|
'''<param name="indextyp">1=Ausgangsarchiviertes Dokumente
|
|
'''<para>2=Eingangarchiviertes Dokumente</para></param>
|
|
'''<param name="feldnr">Feldnr des Feldes im Cold-Index</param>
|
|
'''<param name="wert">Neuer Wert</param>
|
|
|
|
Public Function Insert_ColdUpdate(ByVal dokumentid As String, ByVal colddokumentid As String, ByVal indextyp As Integer, ByVal feldnr As Integer, ByVal wert As String) As DataTable
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
scmCmdToExecute.CommandText = "dbo.SP_Archiv_insert_coldupdate"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
conn_edoka.OpenConnection()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@colddokumentid", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, colddokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@indextyp", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, indextyp))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@feldnr", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, feldnr))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@neuerwert", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, wert))
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
Try
|
|
sdaAdapter.Fill(dtToReturn)
|
|
Return dtToReturn
|
|
Catch ex As Exception
|
|
' MsgBox(ex.Message)
|
|
Throw New Exception("Dokumenterstellung::Generic_Select::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
conn_edoka.CloseConnection(True)
|
|
End Try
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region "Update Dokumentwert"
|
|
'''<summary>Dokumentwerte eines Dokumentes updaten</summary>
|
|
'''<param name="datarow">Aktuelle Zeile der Indexdaten</param>
|
|
Private Function Update_Dokumentwerte(ByVal datarow As Integer) As Boolean
|
|
dokumentwerte_update(datarow)
|
|
Journal.Insert_Journal(datarow, Me.IndexData.Rows(datarow).Item(1), Me.IndexData.Rows(datarow).Item(11), Me.IndexData.Rows(datarow).Item(12), "0", "Update Dokumentwerte", Dokumentid, "")
|
|
End Function
|
|
|
|
Private Sub dokumentwerte_update(ByVal datarow As Integer)
|
|
Try
|
|
Dim dok As New edokadb.clsDokument()
|
|
dok.cpMainConnectionProvider = conn_edoka
|
|
dok.sDokumentid = New SqlString(CType(Dokumentid, String))
|
|
dok.SelectOne()
|
|
'Archivdatum
|
|
If IndexData.Rows(datarow).Item(16) <> "" Then
|
|
dok.daArchivierungsdatum = New SqlDateTime(CType(Me.IndexData.Rows(datarow).Item(16), DateTime))
|
|
End If
|
|
'Ersteller
|
|
If IndexData.Rows(datarow).Item(14) <> "" Then
|
|
dok.iErsteller = New SqlInt32(CType(Globals.Mitarbeiternr, Int32))
|
|
End If
|
|
conn_edoka.OpenConnection()
|
|
dok.Update()
|
|
conn_edoka.CloseConnection(True)
|
|
dok.Dispose()
|
|
Update_FANummer(datarow)
|
|
|
|
'VVNummer im COLDIndex aktualisieren, sofern als Indexwert übergeben
|
|
If Me.IndexData.Rows(datarow).Item(19) <> "" Then Update_DokumentColdIndexwert(Dokumentid, 1, 3, Me.IndexData.Rows(datarow).Item(19))
|
|
|
|
'Archivdatum im COLD-Index
|
|
If Me.IndexData.Rows(datarow).Item(16) <> "" Then
|
|
Update_DokumentColdIndexwert(Dokumentid, 1, 5, IndexData.Rows(datarow).Item(16))
|
|
Update_DokumentColdIndexwert(Dokumentid, 2, 5, IndexData.Rows(datarow).Item(16))
|
|
End If
|
|
|
|
'Herkunftsapplikation
|
|
If Me.IndexData.Rows(datarow).Item(17) <> "" Then
|
|
Dokumentwert_Sichern("Applikation;" + Me.IndexData.Rows(datarow).Item(17), -90000)
|
|
End If
|
|
|
|
'Archivreferenz
|
|
If Me.IndexData.Rows(datarow).Item(21) <> "" Then
|
|
If IsNumeric(Me.IndexData.Rows(datarow).Item(21)) Then
|
|
Me.Update_DokumentColdIndexwert(Dokumentid, 1, 11, Me.IndexData.Rows(datarow).Item(21))
|
|
Else
|
|
Dokumentwert_Sichern("Archivref.;" + Me.IndexData.Rows(datarow).Item(21), -90001)
|
|
End If
|
|
End If
|
|
|
|
'ListEmpfaengerMA
|
|
If Me.IndexData.Rows(datarow).Item(23) <> "" Then
|
|
Dokumentwert_Sichern("Empfänger MA;" + Me.IndexData.Rows(datarow).Item(23), -90002)
|
|
End If
|
|
'ListEmpfaengerKST
|
|
If Me.IndexData.Rows(datarow).Item(24) <> "" Then
|
|
Dokumentwert_Sichern("Empfänger KST;" + Me.IndexData.Rows(datarow).Item(24), -90003)
|
|
End If
|
|
'ListEmpfaengerNL
|
|
If UCase(Globals.Herkunftsapplikation.Rows(0).Item(1)) = "FINFOX" And Me.IndexData.Rows(datarow).Item(25) <> "" Then
|
|
update_dokument_formularnr(Dokumentid, Me.IndexData.Rows(datarow).Item(25))
|
|
'Dokumentwert_Sichern("Formular-ID;" + Me.IndexData.Rows(datarow).Item(25), -90004)
|
|
Else
|
|
|
|
If Me.IndexData.Rows(datarow).Item(25) <> "" Then
|
|
Dokumentwert_Sichern("Empfänger NL;" + Me.IndexData.Rows(datarow).Item(25), -90004)
|
|
End If
|
|
End If
|
|
'Dokumentwerte
|
|
Dim i As Integer
|
|
For i = 26 To 45
|
|
Try
|
|
If Me.IndexData.Rows(datarow).Item(i) <> "" Then
|
|
Dokumentwert_Sichern(Me.IndexData.Rows(datarow).Item(i), -90005 - (i - 25))
|
|
End If
|
|
Catch
|
|
End Try
|
|
Next
|
|
|
|
|
|
Catch
|
|
End Try
|
|
|
|
|
|
End Sub
|
|
#End Region
|
|
|
|
#Region "Replace_Dokument"
|
|
Private Function Replace_Dokument(ByVal datarow As Integer) As Integer
|
|
'Prüfung, ob bereits eine Dokumentarchivierung stattgefunden hat
|
|
Me.ist_archiviert(Dokumentid)
|
|
|
|
'Dokument importieren
|
|
If Not DivFnkt.Save_To_DB(Dokumentid, Params.Inputverzeichnis + Me.IndexData.Rows(datarow).Item(12), False) Then
|
|
Fehler = 115
|
|
Journal.Insert_Journal(datarow, Me.IndexData.Rows(datarow).Item(1), Me.IndexData.Rows(datarow).Item(13), Me.IndexData.Rows(datarow).Item(12), 115, "Datei konnte nicht in die EDOKA-Datenbank gespeichert werden.", "", "")
|
|
End If
|
|
'Dokumentname im Dokument ändern
|
|
Dim d As New edokadb.clsDokument()
|
|
d.sDokumentid = New SqlString(CType(Dokumentid, String))
|
|
d.cpMainConnectionProvider = conn_edoka
|
|
d.SelectOne()
|
|
Try
|
|
conn_edoka.CloseConnection(True)
|
|
Catch
|
|
End Try
|
|
d.sDokumentname = New SqlString(CType(Me.IndexData.Rows(datarow).Item(12), String))
|
|
d.iStatusnr = New SqlInt32(CType(Dokumentstatus_erstellen_und_Status_Setzen(datarow, False), Int32))
|
|
d.bBereit_zur_archivierung = New SqlBoolean(CType(True, Boolean))
|
|
d.bAusgangsarchiviert = New SqlBoolean(CType(False, Boolean))
|
|
d.bEingangsarchiviert = New SqlBoolean(CType(False, Boolean))
|
|
d.sColddokumentid = New SqlString(CType("", String))
|
|
|
|
conn_edoka.OpenConnection()
|
|
d.Update()
|
|
conn_edoka.CloseConnection(True)
|
|
d.Dispose()
|
|
|
|
'sofern eine Archivierung stattgefunden hat, Dokumentwerte kopieren
|
|
If DokumentArchiviert Then copy_indexdata(Dokumentid, "Alt")
|
|
|
|
'Dokumentwerte anpassen
|
|
Update_Dokumentwerte(datarow)
|
|
Journal.Insert_Journal(datarow, Me.IndexData.Rows(datarow).Item(1), Me.IndexData.Rows(datarow).Item(11), Me.IndexData.Rows(datarow).Item(12), "0", "Dokument ersetzt", Dokumentid, "")
|
|
End Function
|
|
|
|
Dim general_ds As New DataSet()
|
|
|
|
Private Sub copy_indexdata(ByVal dokumentid As String, ByVal Status As String)
|
|
Dim sda As New SqlDataAdapter("select * from dokumentcoldindexwert where (indextyp=1 or indextyp=2) and dokumentid='" & dokumentid & "'", Globals.sConnectionString_edoka)
|
|
Dim sda1 As New SqlDataAdapter("select * from dokumentcoldindexwert where dokumentid='" & dokumentid & "'", Globals.sConnectionString_edoka)
|
|
Dim sda3 As New SqlDataAdapter("select max(indextyp) from dokumentcoldindexwert where dokumentid='" & dokumentid & "'", Globals.sConnectionString_edoka)
|
|
Dim ds As New DataSet()
|
|
general_ds.Clear()
|
|
sda.Fill(ds, "Dokumentcoldindexwert")
|
|
sda1.Fill(general_ds, "Dokumentcoldindexwert")
|
|
'Globals.Dokumentcoldindex_Changed = True
|
|
sda.Fill(ds, "DokumentcoldindexwertNeu")
|
|
sda3.Fill(ds, "Maxwert")
|
|
Dim i As Integer
|
|
Dim Maxwert As Integer
|
|
Maxwert = ds.Tables(2).Rows(0).Item(0)
|
|
If Maxwert < 2 Then Maxwert = 2
|
|
Dim i1 As Integer
|
|
Dim i2 As Integer
|
|
i1 = 0
|
|
i2 = 0
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
If Not ds.Tables(0).Rows(i).Item("BESTA00") Is System.DBNull.Value Then
|
|
If (ds.Tables(0).Rows(i).Item("BESTA00") = "Aktuell" Or ds.Tables(0).Rows(i).Item("BESTA00") = "Alt") Then
|
|
If ds.Tables(0).Rows(i).Item("indextyp") = 1 Then i1 = 1
|
|
If ds.Tables(0).Rows(i).Item("indextyp") = 2 Then i2 = 1
|
|
End If
|
|
End If
|
|
Next
|
|
For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
If Not ds.Tables(0).Rows(i).Item("BESTA00") Is System.DBNull.Value Then
|
|
If i1 = 1 And ds.Tables(0).Rows(i).Item("indextyp") = 1 Then
|
|
ds.Tables(0).Rows(i).Item("indextyp") = Maxwert + 1
|
|
ds.Tables(0).Rows(i).Item("BESTA00") = Status
|
|
End If
|
|
If i2 = 1 And ds.Tables(0).Rows(i).Item("indextyp") = 2 Then
|
|
ds.Tables(0).Rows(i).Item("indextyp") = Maxwert + 2
|
|
ds.Tables(0).Rows(i).Item("BESTA00") = Status
|
|
End If
|
|
End If
|
|
Next
|
|
For i = 0 To ds.Tables(1).Rows.Count - 1
|
|
If Not ds.Tables(0).Rows(i).Item("BESTA00") Is System.DBNull.Value Then
|
|
If i1 = 1 And ds.Tables(1).Rows(i).Item("indextyp") = 1 Then
|
|
ds.Tables(1).Rows(i).Item("BESTA00") = ""
|
|
End If
|
|
If i2 = 1 And ds.Tables(1).Rows(i).Item("indextyp") = 2 Then
|
|
ds.Tables(1).Rows(i).Item("BESTA00") = ""
|
|
End If
|
|
End If
|
|
If Not ds.Tables(0).Rows(i).Item("DMSTA01") Is System.DBNull.Value Then
|
|
If i1 = 1 And ds.Tables(1).Rows(i).Item("indextyp") = 1 Then
|
|
ds.Tables(1).Rows(i).Item("DMSTA01") = ""
|
|
End If
|
|
If i2 = 1 And ds.Tables(1).Rows(i).Item("indextyp") = 2 Then
|
|
ds.Tables(1).Rows(i).Item("DMSTA01") = ""
|
|
End If
|
|
End If
|
|
If Not ds.Tables(0).Rows(i).Item("NRDOC00") Is System.DBNull.Value Then
|
|
If i1 = 1 And ds.Tables(1).Rows(i).Item("indextyp") = 1 Then
|
|
ds.Tables(1).Rows(i).Item("NRDOC00") = ""
|
|
End If
|
|
If i2 = 1 And ds.Tables(1).Rows(i).Item("indextyp") = 2 Then
|
|
ds.Tables(1).Rows(i).Item("NRDOC00") = ""
|
|
End If
|
|
End If
|
|
Next
|
|
Dim cd As New SqlCommandBuilder(sda)
|
|
sda.Update(ds, "Dokumentcoldindexwert")
|
|
|
|
DokumentColdIndexWert_Insert(ds.Tables(1), i1, i2)
|
|
|
|
sda.Dispose()
|
|
sda1.Dispose()
|
|
sda3.Dispose()
|
|
End Sub
|
|
|
|
Private Sub DokumentColdIndexWert_Insert(ByVal dtOrg As DataTable, ByVal i1 As Integer, ByVal i2 As Integer)
|
|
'Coldindexwerte Inserten mit Daten aus neuer Tabellen Struktur
|
|
Dim i As Integer
|
|
Dim dw As New edokadb.clsDokumentcoldindexwert()
|
|
dw.cpMainConnectionProvider = Globals.conn_edoka
|
|
|
|
Dim lcnt As Integer
|
|
Dim sWert As String
|
|
Dim sFieldArray(12) As String
|
|
sFieldArray(0) = "NRPAR00"
|
|
sFieldArray(1) = "BKPAR00"
|
|
sFieldArray(2) = "NAVVG00"
|
|
sFieldArray(3) = "BEBEZ00"
|
|
sFieldArray(4) = "DMSTA01"
|
|
sFieldArray(5) = "BEDAT00"
|
|
sFieldArray(6) = "BESTA00"
|
|
sFieldArray(7) = "BEORT00"
|
|
sFieldArray(8) = "NRDOC00"
|
|
sFieldArray(9) = "NRSTA00"
|
|
sFieldArray(10) = "BEGSF00"
|
|
sFieldArray(11) = "BEUSR00"
|
|
sFieldArray(12) = "BERES03"
|
|
|
|
For i = 0 To dtOrg.Rows.Count - 1
|
|
If (i1 = 1 And dtOrg.Rows(i).Item("indextyp") = 1) Or _
|
|
(i2 = 1 And dtOrg.Rows(i).Item("indextyp") = 2) Then
|
|
dw.iIndextyp = New SqlInt32(CType(dtOrg.Rows(i).Item(1), Int32))
|
|
dw.iMandantnr = New SqlInt32(CType(dtOrg.Rows(i).Item("mandantnr"), Int32))
|
|
dw.bAktiv = New SqlBoolean(CType(dtOrg.Rows(i).Item("aktiv"), Boolean))
|
|
dw.daErstellt_am = New SqlDateTime(CType(Now, DateTime))
|
|
dw.daMutiert_am = New SqlDateTime(CType(Now, DateTime))
|
|
dw.iMutierer = New SqlInt32(CType(Globals.Mitarbeiternr, Int32))
|
|
dw.sDokumentid = New SqlString(CType(dtOrg.Rows(i).Item("dokumentid"), String))
|
|
|
|
For lcnt = 0 To 12
|
|
If Not dtOrg.Rows(i).Item(sFieldArray(lcnt)) Is System.DBNull.Value Then
|
|
sWert = CType(dtOrg.Rows(i).Item(sFieldArray(lcnt)), String)
|
|
Else
|
|
sWert = ""
|
|
End If
|
|
Select Case sFieldArray(lcnt)
|
|
Case sFieldArray(0)
|
|
dw.sNRPAR00 = New SqlString(CType(sWert, String))
|
|
Case sFieldArray(1)
|
|
dw.sBKPAR00 = New SqlString(CType(sWert, String))
|
|
Case sFieldArray(2)
|
|
dw.sNAVVG00 = New SqlString(CType(sWert, String))
|
|
Case sFieldArray(3)
|
|
dw.sBEBEZ00 = New SqlString(CType(sWert, String))
|
|
Case sFieldArray(4)
|
|
dw.sDMSTA01 = New SqlString(CType(sWert, String))
|
|
Case sFieldArray(5)
|
|
dw.sBEDAT00 = New SqlString(CType(sWert, String))
|
|
Case sFieldArray(6)
|
|
dw.sBESTA00 = New SqlString(CType(sWert, String))
|
|
Case sFieldArray(7)
|
|
dw.sBEORT00 = New SqlString(CType(sWert, String))
|
|
Case sFieldArray(8)
|
|
dw.sNRDOC00 = New SqlString(CType(sWert, String))
|
|
Case sFieldArray(9)
|
|
dw.sNRSTA00 = New SqlString(CType(sWert, String))
|
|
Case sFieldArray(10)
|
|
dw.sBEGSF00 = New SqlString(CType(sWert, String))
|
|
Case sFieldArray(11)
|
|
dw.sBEUSR00 = New SqlString(CType(sWert, String))
|
|
Case sFieldArray(12)
|
|
dw.sBERES03 = New SqlString(CType(sWert, String))
|
|
End Select
|
|
Next
|
|
conn_edoka.OpenConnection()
|
|
dw.Insert()
|
|
conn_edoka.CloseConnection(True)
|
|
End If
|
|
Next
|
|
dw.Dispose()
|
|
End Sub
|
|
|
|
|
|
'Private Sub copy_indexdata(ByVal dokumentid As String, ByVal Status As String)
|
|
' Dim sda As New SqlDataAdapter("select * from dokumentcoldindexwert where (indextyp=1 or indextyp=2) and dokumentid='" & dokumentid & "'", Globals.sConnectionString_edoka)
|
|
' Dim sda1 As New SqlDataAdapter("select * from dokumentcoldindexwert where dokumentid='" & dokumentid & "'", Globals.sConnectionString_edoka)
|
|
' Dim sda3 As New SqlDataAdapter("select max(indextyp) from dokumentcoldindexwert where dokumentid='" & dokumentid & "'", Globals.sConnectionString_edoka)
|
|
' Dim ds As New DataSet()
|
|
' general_ds.Clear()
|
|
' sda.Fill(ds, "Dokumentcoldindexwert")
|
|
' sda1.Fill(general_ds, "Dokumentcoldindexwert")
|
|
' sda.Fill(ds, "DokumentcoldindexwertNeu")
|
|
' sda3.Fill(ds, "Maxwert")
|
|
' Dim i As Integer
|
|
' Dim Maxwert As Integer
|
|
' Maxwert = ds.Tables(2).Rows(0).Item(0)
|
|
' If Maxwert < 2 Then Maxwert = 2
|
|
' Dim i1 As Integer
|
|
' Dim i2 As Integer
|
|
' i1 = 0
|
|
' i2 = 0
|
|
' For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
' If Not ds.Tables(0).Rows(i).Item("wert") Is System.DBNull.Value Then
|
|
' If ds.Tables(0).Rows(i).Item("cold_indexfeldnr") = 7 And (ds.Tables(0).Rows(i).Item("wert") = "Aktuell" Or ds.Tables(0).Rows(i).Item("wert") = "Alt") Then
|
|
' If ds.Tables(0).Rows(i).Item("indextyp") = 1 Then i1 = 1
|
|
' If ds.Tables(0).Rows(i).Item("indextyp") = 2 Then i2 = 1
|
|
' End If
|
|
' End If
|
|
' Next
|
|
' For i = 0 To ds.Tables(0).Rows.Count - 1
|
|
' If Not ds.Tables(0).Rows(i).Item("wert") Is System.DBNull.Value Then
|
|
' If i1 = 1 And ds.Tables(0).Rows(i).Item("indextyp") = 1 Then
|
|
' ds.Tables(0).Rows(i).Item("indextyp") = Maxwert + 1
|
|
' If ds.Tables(0).Rows(i).Item("cold_indexfeldnr") = 7 Then ds.Tables(0).Rows(i).Item("wert") = Status
|
|
' End If
|
|
' If i2 = 1 And ds.Tables(0).Rows(i).Item("indextyp") = 2 Then
|
|
' ds.Tables(0).Rows(i).Item("indextyp") = Maxwert + 2
|
|
' If ds.Tables(0).Rows(i).Item("cold_indexfeldnr") = 7 Then ds.Tables(0).Rows(i).Item("wert") = Status
|
|
' End If
|
|
' End If
|
|
' Next
|
|
' For i = 0 To ds.Tables(1).Rows.Count - 1
|
|
' If Not ds.Tables(0).Rows(i).Item("wert") Is System.DBNull.Value Then
|
|
' If i1 = 1 And ds.Tables(1).Rows(i).Item("indextyp") = 1 Then
|
|
' If ds.Tables(1).Rows(i).Item("cold_indexfeldnr") = 7 Or ds.Tables(1).Rows(i).Item("cold_indexfeldnr") = 7 Or ds.Tables(1).Rows(i).Item("cold_indexfeldnr") = 10 Then ds.Tables(1).Rows(i).Item("wert") = ""
|
|
' End If
|
|
' If i2 = 1 And ds.Tables(1).Rows(i).Item("indextyp") = 2 Then
|
|
' If ds.Tables(1).Rows(i).Item("cold_indexfeldnr") = 5 Or ds.Tables(1).Rows(i).Item("cold_indexfeldnr") = 7 Or ds.Tables(1).Rows(i).Item("cold_indexfeldnr") = 10 Then ds.Tables(1).Rows(i).Item("wert") = ""
|
|
' End If
|
|
' End If
|
|
' Next
|
|
' Dim cd As New SqlCommandBuilder(sda)
|
|
' sda.Update(ds, "Dokumentcoldindexwert")
|
|
|
|
' Dim dw As New edokadb.clsDokumentcoldindexwert()
|
|
' dw.cpMainConnectionProvider = conn_edoka
|
|
' For i = 0 To ds.Tables(1).Rows.Count - 1
|
|
' If i1 = 1 And ds.Tables(1).Rows(i).Item("indextyp") = 1 Then
|
|
' dw.iIndextyp = New SqlInt32(CType(ds.Tables(1).Rows(i).Item(1), Int32))
|
|
' If Not ds.Tables(1).Rows(i).Item(2) Is System.DBNull.Value Then
|
|
' dw.sWert = New SqlString(CType(ds.Tables(1).Rows(i).Item(2), String))
|
|
' Else
|
|
' dw.sWert = New SqlString(CType("", String))
|
|
' End If
|
|
' dw.iMandantnr = New SqlInt32(CType(ds.Tables(1).Rows(i).Item(3), Int32))
|
|
' dw.bAktiv = New SqlBoolean(CType(ds.Tables(1).Rows(i).Item(4), Boolean))
|
|
' dw.daErstellt_am = New SqlDateTime(CType(Now, DateTime))
|
|
' dw.daMutiert_am = New SqlDateTime(CType(Now, DateTime))
|
|
' dw.iMutierer = New SqlInt32(CType(9999, Int32))
|
|
' dw.sDokumentid = New SqlString(CType(ds.Tables(1).Rows(i).Item(8), String))
|
|
' dw.iCold_indexfeldnr = New SqlInt32(CType(ds.Tables(1).Rows(i).Item(9), Int32))
|
|
' conn_edoka.OpenConnection()
|
|
' dw.Insert()
|
|
' conn_edoka.CloseConnection(True)
|
|
' End If
|
|
' If i2 = 1 And ds.Tables(1).Rows(i).Item("indextyp") = 2 Then
|
|
' dw.iIndextyp = New SqlInt32(CType(ds.Tables(1).Rows(i).Item(1), Int32))
|
|
' If Not ds.Tables(1).Rows(i).Item(2) Is System.DBNull.Value Then
|
|
' dw.sWert = New SqlString(CType(ds.Tables(1).Rows(i).Item(2), String))
|
|
' Else
|
|
' dw.sWert = New SqlString(CType("", String))
|
|
' End If
|
|
' ' dw.sWert = New SqlString(CType(ds.Tables(1).Rows(i).Item(2), String))
|
|
' dw.iMandantnr = New SqlInt32(CType(ds.Tables(1).Rows(i).Item(3), Int32))
|
|
' dw.bAktiv = New SqlBoolean(CType(ds.Tables(1).Rows(i).Item(4), Boolean))
|
|
' dw.daErstellt_am = New SqlDateTime(CType(Now, DateTime))
|
|
' dw.daMutiert_am = New SqlDateTime(CType(Now, DateTime))
|
|
' dw.iMutierer = New SqlInt32(CType(9999, Int32))
|
|
' dw.sDokumentid = New SqlString(CType(ds.Tables(1).Rows(i).Item(8), String))
|
|
' dw.iCold_indexfeldnr = New SqlInt32(CType(ds.Tables(1).Rows(i).Item(9), Int32))
|
|
' conn_edoka.OpenConnection()
|
|
' dw.Insert()
|
|
' conn_edoka.CloseConnection(True)
|
|
' End If
|
|
' Next
|
|
' dw.Dispose()
|
|
' sda.Dispose()
|
|
' sda1.Dispose()
|
|
' sda3.Dispose()
|
|
'End Sub
|
|
|
|
|
|
|
|
|
|
#End Region
|
|
|
|
#Region "Diverse Funktionen"
|
|
|
|
Private Sub update_dokument_formularnr(ByVal dokumentid As String, ByVal formularnr As String)
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim i As Integer
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.sp_update_dokument_formularnr"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@formularnr", SqlDbType.VarChar, 50, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, formularnr))
|
|
conn_edoka.OpenConnection()
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
conn_edoka.CloseConnection(True)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Dim DokumentArchiviert As Boolean
|
|
'''<summary>Prüfung, ob das Dokument bereits in AGI-COLD archiviert wurde</summary>
|
|
'''<param name="dokumentid">Dokumentid des zu prüfenden Dokumentes</param>
|
|
Private Function ist_archiviert(ByVal dokumentid As String) As Integer
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim i As Integer
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.sp_dokument_bereits_archiviert"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@istarchiviert", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@bdrarchiviert", SqlDbType.Int, 4, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, 0))
|
|
sdaAdapter.Fill(dtToReturn)
|
|
i = scmCmdToExecute.Parameters.Item("@istarchiviert").Value
|
|
ist_archiviert = i
|
|
Me.DokumentArchiviert = scmCmdToExecute.Parameters.Item("@istarchiviert").Value
|
|
Catch ex As Exception
|
|
'MsgBox(ex.Message)
|
|
' // some error occured. Bubble it to caller and encapsulate Exception object
|
|
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
End Function
|
|
|
|
'''<summary>Prüfung des zu löschenden Dokumentes in der EDOKA-Datenbank</summary>
|
|
'''<param name="fnkt">1=Prüfung anhand einer EDOKA_Dokumentid
|
|
'''<para>2=Prüfung anhand des Dateinamens</para></param>
|
|
'''<param name="wert">EDOKA_DokumentID oder Dateiname</param>
|
|
'''<param name="datarow">Aktuelle Zeile der Indexdaten</param>
|
|
'''<returns>True=Dokument gefunden und es kann gelöscht werden
|
|
'''<para>False=Dokument nicht gefunden bzw. es kann nicht gelöscht werden, da die
|
|
'''Suche mittels Dateiname mehrere Treffer ergab</para></returns>
|
|
Private Function get_edoka_dokument(ByVal fnkt As Integer, ByVal wert As String, ByVal datarow As Integer) As Boolean
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.SP_Edoka_Import_Get_EDOKA_Dokument"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@fnkt", SqlDbType.Int, 4, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, fnkt))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@wert", SqlDbType.VarChar, 255, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, wert))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@edoka_dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Output, True, 10, 0, "", DataRowVersion.Proposed, ""))
|
|
Try
|
|
conn_edoka.OpenConnection()
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
conn_edoka.CloseConnection(True)
|
|
If scmCmdToExecute.Parameters("@edoka_dokumentid").Value = "" Then
|
|
Fehler = 200
|
|
Journal.Insert_Journal(datarow, "", "", "", Fehler, "Dokument: " + Me.IndexData.Rows(datarow).Item(12) + " konnte in EDOKA nicht gefunden werden.", "", "")
|
|
Return False
|
|
Else
|
|
If scmCmdToExecute.Parameters("@edoka_dokumentid").Value = "-16" Then
|
|
Fehler = 201
|
|
Journal.Insert_Journal(datarow, "", "", "", Fehler, "Dokument: " + Me.IndexData.Rows(datarow).Item(12) + " mehrfach in EDOKA vorhanden", "", "")
|
|
Return False
|
|
Else
|
|
Me.Dokumentid = scmCmdToExecute.Parameters("@edoka_dokumentid").Value
|
|
Return True
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
PrintOut("clsCheckandImport.get_edoka_dokument()" + ex.Message, EventLogEntryType.Error)
|
|
Return False
|
|
Finally
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
dtToReturn.Dispose()
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Private Sub Save_ImportDaten(ByVal datarow As Integer)
|
|
Dim ds As New DataSet()
|
|
Dim dt As New DataTable()
|
|
dt = Me.IndexData.Clone
|
|
dt.Rows.Clear()
|
|
Dim filename As String = LTrim(Str(Globals.Journal.JournalNr)) + "_" + LTrim(Str(datarow)) + "_Indexdata.xml"
|
|
dt.ImportRow(Me.IndexData.Rows(datarow))
|
|
ds.Tables.Add(dt)
|
|
ds.WriteXml(Params.TempPfad + filename)
|
|
dt.Rows.Clear()
|
|
ds.Tables.Clear()
|
|
dt.Dispose()
|
|
ds.Dispose()
|
|
|
|
Dim xmldata As String = ""
|
|
Dim s As String = ""
|
|
FileOpen(15, Params.TempPfad + filename, OpenMode.Input)
|
|
While Not EOF(15)
|
|
Input(15, s)
|
|
xmldata = xmldata + s
|
|
End While
|
|
FileClose(15)
|
|
Try
|
|
File.SetAttributes(Params.TempPfad + filename, FileAttributes.Normal)
|
|
Catch
|
|
End Try
|
|
Try
|
|
File.Delete(Params.TempPfad + filename)
|
|
Catch
|
|
End Try
|
|
Try
|
|
Dim sqlstatement As String = "Select * from Import_Daten where import_data_nr = -1"
|
|
Dim Connection As New SqlConnection()
|
|
Dim DA As New SqlDataAdapter(sqlstatement, Globals.sConnectionString_journale)
|
|
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(DA)
|
|
|
|
Dim dsDATEN As New DataSet()
|
|
Dim fs As New FileStream(Params.Inputverzeichnis + Me.IndexData.Rows(datarow).Item(12), FileMode.Open, FileAccess.Read)
|
|
Dim mydata(fs.Length) As Byte
|
|
Try
|
|
fs.Read(mydata, 0, fs.Length)
|
|
fs.Close()
|
|
Connection.ConnectionString = Globals.sConnectionString_journale
|
|
Connection.Open()
|
|
DA.Fill(dsDATEN, "docs")
|
|
Dim myRow As DataRow
|
|
If dsDATEN.Tables(0).Rows.Count = 0 Then
|
|
'Neuer Datensatz speichern
|
|
myRow = dsDATEN.Tables(0).NewRow
|
|
myRow.Item(1) = Globals.Journal.JournalNr
|
|
myRow.Item(2) = datarow
|
|
myRow.Item(3) = xmldata
|
|
myRow.Item(4) = mydata
|
|
myRow.Item(5) = 0
|
|
myRow.Item(7) = 0
|
|
dsDATEN.Tables(0).Rows.Add(myRow)
|
|
DA.Update(dsDATEN, "docs")
|
|
End If
|
|
Catch ex As Exception
|
|
PrintOut("clsCheckandImport.Save_ImportDaten()" + ex.Message, EventLogEntryType.Error)
|
|
End Try
|
|
fs = Nothing
|
|
cb = Nothing
|
|
dsDATEN = Nothing
|
|
DA = Nothing
|
|
Connection.Close()
|
|
Connection = Nothing
|
|
Catch
|
|
End Try
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
Private Sub send_deleted_mail(ByVal empfaenger As String, ByVal dokumentid As String)
|
|
Dim scmCmdToExecute As SqlCommand = New SqlCommand()
|
|
Dim dtToReturn As DataTable = New DataTable()
|
|
Dim sdaAdapter As SqlDataAdapter = New SqlDataAdapter(scmCmdToExecute)
|
|
scmCmdToExecute.CommandText = "dbo.sp_edoka_import_send_deleted_mail"
|
|
scmCmdToExecute.CommandType = CommandType.StoredProcedure
|
|
scmCmdToExecute.Connection = conn_edoka.scoDBConnection
|
|
Try
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@empfaenger", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, empfaenger))
|
|
scmCmdToExecute.Parameters.Add(New SqlParameter("@dokumentid", SqlDbType.VarChar, 22, ParameterDirection.Input, True, 10, 0, "", DataRowVersion.Proposed, dokumentid))
|
|
conn_edoka.OpenConnection()
|
|
scmCmdToExecute.ExecuteNonQuery()
|
|
Catch ex As Exception
|
|
Throw New Exception("Dokument_Information_Wert::" & scmCmdToExecute.CommandText & "::Error occured." & ex.Message, ex)
|
|
Finally
|
|
conn_edoka.CloseConnection(True)
|
|
scmCmdToExecute.Dispose()
|
|
sdaAdapter.Dispose()
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
|
|
End Class
|