Initial commit
This commit is contained in:
104
EDKB07WS/Backup/Mehrfachdruck/clsMehrfachdruck_Data.vb
Normal file
104
EDKB07WS/Backup/Mehrfachdruck/clsMehrfachdruck_Data.vb
Normal file
@@ -0,0 +1,104 @@
|
||||
Public Class clsMehrfachdruck_Data
|
||||
|
||||
Public Enum Enum_Typ
|
||||
EDOKA = 1
|
||||
HOST = 2
|
||||
ZV = 3
|
||||
End Enum
|
||||
|
||||
Dim m_DokumentId As String
|
||||
Property DokumentId() As String
|
||||
Get
|
||||
Return m_DokumentId
|
||||
End Get
|
||||
Set(ByVal Value As String)
|
||||
m_DokumentId = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Dim m_PartnerNr As String
|
||||
Property PartnerNr() As String
|
||||
Get
|
||||
Return m_PartnerNr
|
||||
End Get
|
||||
Set(ByVal Value As String)
|
||||
m_PartnerNr = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Dim m_Typ As Enum_Typ
|
||||
Property Typ() As Enum_Typ
|
||||
Get
|
||||
Return m_Typ
|
||||
End Get
|
||||
Set(ByVal Value As Enum_Typ)
|
||||
m_Typ = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Dim m_OfficeDokument As Boolean
|
||||
Property OfficeDokument() As Boolean
|
||||
Get
|
||||
Return m_OfficeDokument
|
||||
End Get
|
||||
Set(ByVal Value As Boolean)
|
||||
m_OfficeDokument = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Dim m_DokumentTyp As String
|
||||
Property DokumentTyp() As String
|
||||
Get
|
||||
Return m_DokumentTyp
|
||||
End Get
|
||||
Set(ByVal Value As String)
|
||||
m_DokumentTyp = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Dim m_Auftragnr As String
|
||||
Property Auftragnr() As String
|
||||
Get
|
||||
Return m_Auftragnr
|
||||
End Get
|
||||
Set(ByVal Value As String)
|
||||
m_Auftragnr = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Dim m_PartnerName As String
|
||||
Property PartnerName() As String
|
||||
Get
|
||||
Return m_PartnerName
|
||||
End Get
|
||||
Set(ByVal Value As String)
|
||||
m_PartnerName = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Dim m_Erstellungsdatum As String
|
||||
Property Erstellungsdatum() As String
|
||||
Get
|
||||
Return m_Erstellungsdatum
|
||||
End Get
|
||||
Set(ByVal Value As String)
|
||||
m_Erstellungsdatum = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Sub New(ByVal DokID As String, ByVal iPartnerNr As String, ByVal sTyp As Enum_Typ, _
|
||||
ByVal bOfficeDokument As Boolean, ByVal sDokTyp As String, ByVal sAuftragnr As String, ByVal sPartnerName As String, _
|
||||
ByVal sErstellungsdatum As String)
|
||||
|
||||
m_DokumentId = DokID
|
||||
m_PartnerNr = iPartnerNr
|
||||
m_Typ = sTyp
|
||||
m_OfficeDokument = bOfficeDokument
|
||||
m_DokumentTyp = sDokTyp
|
||||
m_Auftragnr = sAuftragnr
|
||||
m_PartnerName = sPartnerName
|
||||
m_Erstellungsdatum = sErstellungsdatum
|
||||
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
227
EDKB07WS/Backup/Mehrfachdruck/modMehrfachdruck.vb
Normal file
227
EDKB07WS/Backup/Mehrfachdruck/modMehrfachdruck.vb
Normal file
@@ -0,0 +1,227 @@
|
||||
Imports System.Data.SqlClient
|
||||
Imports System.IO
|
||||
Imports System.Xml
|
||||
|
||||
Module modMehrfachdruck
|
||||
|
||||
#Region " Deklarationen"
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region " Funkionen und Subs"
|
||||
|
||||
Public Sub StartMehrfachDruck(ByVal userid As String, ByVal iJobID As Integer, ByVal dtData As DataTable, ByRef binOutput As Object)
|
||||
Dim log As New clsLog
|
||||
Try
|
||||
Dim timestamp As String
|
||||
Dim bError As Boolean
|
||||
timestamp = Format(Now, "yyyyMMddHHmmss")
|
||||
|
||||
'DataTable in Collection umwandeln
|
||||
Dim colData As New Collection
|
||||
Dim row As DataRow
|
||||
For Each row In dtData.Rows
|
||||
colData.Add(New clsMehrfachdruck_Data(row.Item("DokumentId"), row.Item("PartnerNr"), _
|
||||
row.Item("Typ"), row.Item("OfficeDokument"), row.Item("DokumentTyp"), row.Item("Auftragnr"), _
|
||||
row.Item("PartnerName"), row.Item("Erstellungsdatum")))
|
||||
Next
|
||||
|
||||
'TXT erstellen
|
||||
gen_txtfile(userid, iJobID, colData, timestamp, bError)
|
||||
|
||||
'CMD erstellen und senden
|
||||
'send_cmdfile(userid, timestamp, "00", iJobID, bError)
|
||||
|
||||
'Auf Datei warten
|
||||
binOutput = WaitForFile(userid, timestamp, "00", iJobID, bError)
|
||||
|
||||
Catch ex As Exception
|
||||
log.InsertJournale("EDKB07: Beim Warten auf das Cold-Mehrfachdokument " & CType(Now, String) & " Error: " & ex.Message & " DruckjobID: " & iJobID, clsLog.Enum_InfoTyp.Warnung)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub gen_txtfile(ByVal userid As String, ByVal iJobID As Integer, ByVal colData As Collection, ByVal timestamp As String, ByRef bError As Boolean)
|
||||
'Erstellt das txt File für den DruckJob
|
||||
Dim log As New clsLog
|
||||
Dim sFilename As String
|
||||
Try
|
||||
Dim i As Integer
|
||||
Dim NewFile As Boolean = True
|
||||
Dim owriter As System.IO.StreamWriter = Nothing
|
||||
Dim Partno As String = "00"
|
||||
Dim gendok As clsMehrfachdruck_Data
|
||||
Dim snrpar00 As String = ""
|
||||
|
||||
Dim sDokumentNr As String
|
||||
sFilename = userid & Partno & timestamp
|
||||
|
||||
For i = 1 To colData.Count
|
||||
'Erstmals neue Datei erstellen
|
||||
If NewFile Then
|
||||
NewFile = False
|
||||
'part = part + 1
|
||||
'Partno = LTrim(Str(part))
|
||||
'While Len(Partno) < 2
|
||||
'Partno = "0" + Partno
|
||||
'End While
|
||||
|
||||
owriter = File.CreateText(Global_md_ParamFileOutputPath & sFilename & ".123")
|
||||
End If
|
||||
|
||||
gendok = colData(i)
|
||||
|
||||
'Dokumente nummerieren
|
||||
sDokumentNr = i.ToString.Trim
|
||||
While Len(sDokumentNr) < 3
|
||||
sDokumentNr = "0" + sDokumentNr
|
||||
End While
|
||||
|
||||
'Partner Nummer auslesen
|
||||
Try
|
||||
snrpar00 = gendok.PartnerNr
|
||||
Catch ex As Exception
|
||||
m_log.Log("modMehrfachdruck:gen_txtfile:" + ex.Message + ex.StackTrace, Common.Common.JournalEntryType.Warning)
|
||||
End Try
|
||||
''''NOVA!
|
||||
'While Len(snrpar00) < 9
|
||||
'snrpar00 = "0" + snrpar00
|
||||
'End While
|
||||
|
||||
Dim sDokumentID As String = gendok.DokumentId
|
||||
|
||||
|
||||
|
||||
Select Case gendok.Typ
|
||||
Case clsMehrfachdruck_Data.Enum_Typ.EDOKA
|
||||
owriter.WriteLine(ParsParamDfg(Global_md_ParamCfgEdoka, snrpar00, gendok, sFilename, sDokumentNr))
|
||||
Case clsMehrfachdruck_Data.Enum_Typ.HOST
|
||||
If Len(snrpar00) = 9 Then
|
||||
owriter.WriteLine(ParsParamDfg(Global_md_ParamCfgHost, snrpar00, gendok, sFilename, sDokumentNr))
|
||||
Else
|
||||
owriter.WriteLine(ParsParamDfg(Global_md_ParamCfgAvaloq, snrpar00, gendok, sFilename, sDokumentNr))
|
||||
End If
|
||||
|
||||
Case clsMehrfachdruck_Data.Enum_Typ.ZV
|
||||
owriter.WriteLine(ParsParamDfg(Global_md_ParamCfgZv, snrpar00, gendok, sFilename, sDokumentNr))
|
||||
End Select
|
||||
|
||||
Next
|
||||
owriter.Close()
|
||||
|
||||
Catch ex As Exception
|
||||
log.InsertJournale("EDKB07: Fehler bei der Erstellung des TXT-Files (Mehrfachdruck) " & CType(Now, String) & " Error: " & ex.Message & " DruckjobID: " & iJobID, clsLog.Enum_InfoTyp.Warnung)
|
||||
bError = True
|
||||
Finally
|
||||
Rename(Global_md_ParamFileOutputPath & sFilename & ".123", Global_md_ParamFileOutputPath & sFilename & ".txt")
|
||||
log = Nothing
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Function ParsParamDfg(ByVal sOrgString As String, ByVal snrpar00 As String, ByVal gendok As clsMehrfachdruck_Data, ByVal sFilename As String, ByVal sDokumentNr As String) As String
|
||||
ParsParamDfg = ""
|
||||
'Parsing Parameter
|
||||
'##PartnerNR## = Partner Nummer
|
||||
'##DokID## = Dokument ID
|
||||
'##DokTyp## = Dokumenttyp
|
||||
'##AuftragNr## = Auftrag-Nr
|
||||
'##Paginator## = Paginator
|
||||
'##FileName## = Dateiname
|
||||
Try
|
||||
'Partner Nummer
|
||||
ParsParamDfg = sOrgString.Replace("##PartnerNR##", snrpar00)
|
||||
'Dokument ID
|
||||
ParsParamDfg = ParsParamDfg.Replace("##DokID##", gendok.DokumentId)
|
||||
'DokumentTyp
|
||||
If gendok.Typ = clsMehrfachdruck_Data.Enum_Typ.ZV Then
|
||||
ParsParamDfg = ParsParamDfg.Replace("##DokTyp##", gendok.DokumentTyp.Substring(0, 6))
|
||||
Else
|
||||
ParsParamDfg = ParsParamDfg.Replace("##DokTyp##", gendok.DokumentTyp)
|
||||
End If
|
||||
'AuftragsNr
|
||||
ParsParamDfg = ParsParamDfg.Replace("##AuftragNr##", gendok.Auftragnr)
|
||||
'PaginatorNr
|
||||
ParsParamDfg = ParsParamDfg.Replace("##Paginator##", gendok.DokumentId)
|
||||
'FileName
|
||||
ParsParamDfg = ParsParamDfg.Replace("##FileName##", sFilename + sDokumentNr)
|
||||
Catch ex As Exception
|
||||
m_log.Log("modMehrfachdruck:ParsParakDfg:" + ex.Message + ex.StackTrace, Common.Common.JournalEntryType.Warning)
|
||||
End Try
|
||||
End Function
|
||||
|
||||
'Private Sub send_cmdfile(ByVal userid As String, ByVal timestamp As String, ByVal partno As String, ByVal jobid As Integer, ByRef bError As Boolean)
|
||||
' 'Erstellt das CMD-File mit den Übertragungs-Parameter und führt dieses aus.
|
||||
' Dim log As New clsLog
|
||||
' Try
|
||||
' Dim owriter As System.IO.StreamWriter
|
||||
' Dim scmd As String
|
||||
' Dim i As Integer
|
||||
' owriter = File.CreateText(Global_md_CMDFilePath & userid & partno & timestamp & ".cmd")
|
||||
' 'Command 1
|
||||
' scmd = Global_md_CMDFile1Content.Replace("xfilenamex", userid & partno & timestamp & ".txt")
|
||||
' scmd = scmd.Replace("xfilenameohneendungx", userid & partno & timestamp)
|
||||
' owriter.WriteLine(scmd)
|
||||
' 'Command 2
|
||||
' scmd = Global_md_CMDFile2Content.Replace("xfilenamex", userid & partno & timestamp & ".txt")
|
||||
' scmd = scmd.Replace("xfilenameohneendungx", userid & partno & timestamp)
|
||||
' owriter.WriteLine(scmd)
|
||||
' owriter.Close()
|
||||
' owriter = Nothing
|
||||
' If Not Global_md_UseTestMode Then
|
||||
' i = Shell(Global_md_CMDFilePath & userid & partno & timestamp & ".cmd", AppWinStyle.NormalFocus, True, 120000)
|
||||
' Threading.Thread.Sleep(3000)
|
||||
' log.InsertJournale("EDKB07: Parameterfile Mehrfachdruck per DTO an Cold übergeben " & CType(Now, String) & " DruckjobID: " & jobid, clsLog.Enum_InfoTyp.Keine)
|
||||
' End If
|
||||
' Catch ex As Exception
|
||||
' log.InsertJournale("EDKB07: Fehler bei Übergabe des Parameterfiles Mehrfachdruck an Cold " & CType(Now, String) & " Error: " & ex.Message & " DruckjobID: " & jobid, clsLog.Enum_InfoTyp.Warnung)
|
||||
' bError = True
|
||||
' Finally
|
||||
' log = Nothing
|
||||
' End Try
|
||||
'End Sub
|
||||
|
||||
Private Function WaitForFile(ByVal userid As String, ByVal timestamp As String, ByVal partno As String, ByVal jobid As Integer, ByRef bError As Boolean) As Object
|
||||
WaitForFile = Nothing
|
||||
|
||||
'Wartet auf das PDF File
|
||||
Dim log As New clsLog
|
||||
If bError = True Then
|
||||
log.InsertJournale("EDKB07: Beim Anfordern ist ein Fehler aufgetreten " & CType(Now, String) + " DruckjobID: " & jobid, clsLog.Enum_InfoTyp.Keine)
|
||||
Exit Function
|
||||
End If
|
||||
Try
|
||||
Dim dStartZeit As DateTime
|
||||
Dim icnt As Integer = 1
|
||||
|
||||
dStartZeit = Now()
|
||||
Do While Microsoft.VisualBasic.DateDiff(DateInterval.Minute, dStartZeit, Now()) < Global_md_MaxWaitTime
|
||||
If File.Exists(Global_md_ParamFileOutputPath & userid & partno & timestamp & ".ret") Then
|
||||
If File.Exists(Global_md_ParamFileOutputPath & userid & partno & timestamp & ".pdf") Then
|
||||
Dim fs As New FileStream(Global_md_ColdMDOutputFolder + userid & partno & timestamp & ".pdf", FileMode.OpenOrCreate, FileAccess.Read)
|
||||
Threading.Thread.Sleep(1000)
|
||||
Dim MyData(fs.Length) As Byte
|
||||
fs.Read(MyData, 0, fs.Length)
|
||||
fs.Close()
|
||||
fs = Nothing
|
||||
WaitForFile = MyData
|
||||
Exit Do
|
||||
End If
|
||||
End If
|
||||
If File.Exists(Global_md_ParamFileOutputPath & userid & partno & timestamp & ".FAILED") Then
|
||||
log.InsertJournale("EDKB07: FAILED Rückmeldung: " & CType(Now, String) & " - Benutzer: " & userid & " DruckjobID: " & jobid, clsLog.Enum_InfoTyp.Warnung)
|
||||
Exit Do
|
||||
End If
|
||||
Threading.Thread.Sleep(1000)
|
||||
Loop
|
||||
|
||||
Catch ex As Exception
|
||||
log.InsertJournale("EDKB07: Beim Warten auf das Cold-Mehrfachdokument " & CType(Now, String) & " Error: " & ex.Message & " DruckjobID: " & jobid, clsLog.Enum_InfoTyp.Warnung)
|
||||
bError = True
|
||||
Finally
|
||||
log = Nothing
|
||||
End Try
|
||||
End Function
|
||||
|
||||
#End Region
|
||||
|
||||
End Module
|
||||
Reference in New Issue
Block a user