This commit is contained in:
Jonathan Jenne 2017-12-05 11:47:21 +01:00
parent ecf7788c00
commit feac055ae7
2 changed files with 58 additions and 17 deletions

View File

@ -204,46 +204,85 @@ Public Class clsDateiverarbeitung
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "clsDateiverarbeitung.Rename_File_Vektor")
End Try
End Function
Public Shared Function BNSjsonDownload(WMFile As WMObject, userId As String)
Private Shared Function GetWMAPILink(docId As String, userId As String)
Dim hostname = "http://documents.mylogitservices.syncreon.com:8100"
Dim link As String = $"{hostname}/WMWebApi/windream.web.api/DigitalData/BNSDownload?docId={docId}&userId={userId}"
Return link
End Function
''' <summary>
''' Generiert einen Link für BNS und fügt das Dokument WMFile
''' ins BNS ein
''' </summary>
''' <param name="WMFile">Das WMObject, dass das aktuelle Dokument repräsentiert</param>
''' <param name="userId">Die eindeutige Benutzer Kennung für die Authentifizierung in Windream</param>
Public Shared Sub BNSjsonDownload(WMFile As WMObject, userId As String)
Try
'den Wert des Indexes für das aktuelle Dokument auslesen
' Indizes für das aktuelle Dokument auslesen
Dim SENDUNGNR = WMFile.GetVariableValue("Sendungnr")
Dim DOKID = WMFile.GetVariableValue("Dokument-ID")
Dim DOKART = WMFile.GetVariableValue("Dokumentart")
'Add Info to JsonArray
'......
Dim hostname = "91.229.192.183:8100"
Dim link As String = $"http://{hostname}/WMWebApi/windream.web.api/DigitalData/BNSDownload?docId={DOKID}&userId={userId}"
Dim now As DateTime = DateTime.Now
' Download Link für Dokument erstellen
Dim link As String = GetWMAPILink(DOKID, userId)
' JSON Payload erstellen und serialisieren
Dim doc As New BNSDocument()
doc.Bemerkung = DOKART
doc.Ivalidfrom = now
doc.Ivaliduntil = now.AddDays(30)
doc.Pfad = link
doc.Kategorie.Add(DOKART)
Dim json = JsonConvert.SerializeObject(doc, Formatting.None)
Dim bytes = Encoding.Default.GetBytes(json)
Dim json As String = JsonConvert.SerializeObject(doc, Formatting.Indented)
Dim bytes As Byte() = Encoding.Default.GetBytes(json)
' HTTP Request machen
' URL Anpassen!
Dim mandatenId As Integer = 1 ' Mandanten ID ist Standartmäßig 1
Dim geschaeftsObjekt = "Sendung"
Dim geschaeftsId = SENDUNGNR
Dim baseURL As String = "https://mylogitservices.syncreon.com/onwebui/api"
Dim url As String = $"{baseURL}/Customer/{mandatenId}/{geschaeftsObjekt}/{geschaeftsId}/dokument"
Dim url As String = "http://{Domain}:{Port}/Customer/{Kunden ID}/{Geschäftsobjekt}/{GeschäftsobjektID}/dokument"
clsLogger.Add($"Generiertes JSON: {json}", False, "BNSjsonDownload")
clsLogger.Add($"Creating WebRequest for {url}", False, "BNSjsonDownload")
Using wc As WebClient = New WebClient()
Dim req As HttpWebRequest = DirectCast(WebRequest.Create(url), HttpWebRequest)
wc.Headers.Add(HttpRequestHeader.ContentType, "application/json")
Dim response As Byte() = wc.UploadData(url, bytes)
Dim responseString = Encoding.Default.GetString(response)
req.Method = "POST"
req.ContentType = "application/json"
req.ContentLength = bytes.Length
req.Timeout = 3000
req.ServicePoint.Expect100Continue = False
clsLogger.Add($"Datei geschrieben! docId: {DOKID}, dokart: {DOKART}, userId: {userId}", "BNSjsonDownload")
Dim reqStream As Stream = req.GetRequestStream()
reqStream.Write(bytes, 0, bytes.Length)
reqStream.Close()
clsLogger.Add($"Datei wird hochgeladen... docId: {DOKID}, dokart: {DOKART}, userId: {userId}", False, "BNSjsonDownload")
clsLogger.Add($"Upload URL: {url}", False, "BNSjsonDownload")
Using res As HttpWebResponse = req.GetResponse()
Dim code As HttpStatusCode = res.StatusCode
Dim text As String = res.StatusDescription
' Status 201 Created bedeutet: Alles okay!
If code = HttpStatusCode.Created Then
clsLogger.Add($"Datei geschrieben! docId: {DOKID}, dokart: {DOKART}, userId: {userId}", False, "BNSjsonDownload")
End If
res.Close()
Throw New Exception($"Server Error (HTTP {code}: {text})")
End Using
Catch ex As Exception
clsLogger.AddError("Unvorhergesehener Fehler: " & ex.Message, "BNSjsonDownload")
Return False
End Try
End Function
End Sub
Public Shared Function RUN_ORACLE_COMMAND(WMFile As WMObject, OracleCS As String, OracleCommandRAW As String)
Try
Dim result = REGEX_REPLACE(WMFile, OracleCommandRAW)
@ -338,6 +377,7 @@ Public Class clsDateiverarbeitung
Public Ivaliduntil As DateTime
Public Bemerkung As String
Public Primaer As Boolean = False
Public Kategorie As List(Of String)
Public Sub New()
End Sub

View File

@ -444,6 +444,7 @@ Public Class frmMain
lblString1.Text = "Email-Empfänger:"
Case 2 'json BNS
lblString1.Text = "User Kunde:"
lblString2.Text = "BNS Kundennummer:"
End Select
End Sub