jj Änderungen JSON API

This commit is contained in:
Jonathan Jenne 2018-01-03 11:41:34 +01:00
parent 3c6ef71b55
commit 3c02303007
5 changed files with 42 additions and 15 deletions

View File

@ -19,6 +19,9 @@
<setting name="myConnString" serializeAs="String"> <setting name="myConnString" serializeAs="String">
<value>Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security Info=True;User ID=sa;Password=dd</value> <value>Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security Info=True;User ID=sa;Password=dd</value>
</setting> </setting>
<setting name="BNSAPI_HOST" serializeAs="String">
<value />
</setting>
</ResultHandler_Konfig.My.MySettings> </ResultHandler_Konfig.My.MySettings>
</userSettings> </userSettings>
<system.data> <system.data>

View File

@ -78,6 +78,18 @@ Namespace My
Return CType(Me("SQLSERVER_CS"),String) Return CType(Me("SQLSERVER_CS"),String)
End Get End Get
End Property End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("")> _
Public Property BNSAPI_HOST() As String
Get
Return CType(Me("BNSAPI_HOST"),String)
End Get
Set
Me("BNSAPI_HOST") = value
End Set
End Property
End Class End Class
End Namespace End Namespace

View File

@ -13,5 +13,8 @@
&lt;/SerializableConnectionString&gt;</DesignTimeValue> &lt;/SerializableConnectionString&gt;</DesignTimeValue>
<Value Profile="(Default)">Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security Info=True;User ID=sa;Password=dd</Value> <Value Profile="(Default)">Data Source=172.24.12.41\tests;Initial Catalog=DD_ECM_RENOLIT;Persist Security Info=True;User ID=sa;Password=dd</Value>
</Setting> </Setting>
<Setting Name="BNSAPI_HOST" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
</Settings> </Settings>
</SettingsFile> </SettingsFile>

View File

@ -212,13 +212,22 @@ Public Class clsDateiverarbeitung
Return link Return link
End Function End Function
Private Shared Function GetDocTypeCategory(docType As String)
Select Case docType
Case "Abliefernachweis"
Return 5
Case Else
Return 0
End Select
End Function
''' <summary> ''' <summary>
''' Generiert einen Link für BNS und fügt das Dokument WMFile ''' Generiert einen Link für BNS und fügt das Dokument WMFile
''' ins BNS ein ''' ins BNS ein
''' </summary> ''' </summary>
''' <param name="WMFile">Das WMObject, dass das aktuelle Dokument repräsentiert</param> ''' <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> ''' <param name="userId">Die eindeutige Benutzer Kennung für die Authentifizierung in Windream</param>
Public Shared Sub BNSjsonDownload(WMFile As WMObject, userId As String) Public Shared Sub BNSjsonDownload(WMFile As WMObject, userId As String, apiAddress As String)
Try Try
' Indizes für das aktuelle Dokument auslesen ' Indizes für das aktuelle Dokument auslesen
Dim SENDUNGNR = WMFile.GetVariableValue("Sendungnr") Dim SENDUNGNR = WMFile.GetVariableValue("Sendungnr")
@ -235,8 +244,8 @@ Public Class clsDateiverarbeitung
doc.Ivalidfrom = now doc.Ivalidfrom = now
doc.Ivaliduntil = now.AddDays(30) doc.Ivaliduntil = now.AddDays(30)
doc.Pfad = link doc.Pfad = link
doc.Kategorie = New List(Of BNSDocumentCategory) From { doc.Kategorien = New List(Of BNSDocumentCategory) From {
New BNSDocumentCategory With {.Name = DOKART} New BNSDocumentCategory With {.Id = GetDocTypeCategory(DOKART)}
} }
Dim json As String = JsonConvert.SerializeObject(doc, Formatting.Indented) Dim json As String = JsonConvert.SerializeObject(doc, Formatting.Indented)
@ -249,11 +258,10 @@ Public Class clsDateiverarbeitung
Dim geschaeftsObjekt = "Sendung" Dim geschaeftsObjekt = "Sendung"
' Für Tests wird hier die Sendungsnummer verwendet, später hängt der verwendete Index von 'geschaeftsObjekt' ab ' Für Tests wird hier die Sendungsnummer verwendet, später hängt der verwendete Index von 'geschaeftsObjekt' ab
Dim geschaeftsId = SENDUNGNR Dim geschaeftsId = SENDUNGNR
Dim host = "1.2.3.4" Dim url As String = $"http://{apiAddress}/onwebui/api/Customer/{mandatenId}/{geschaeftsObjekt}/{geschaeftsId}/dokument"
Dim url As String = $"http://{host}/onwebui/api/Customer/{mandatenId}/{geschaeftsObjekt}/{geschaeftsId}/dokument"
clsLogger.Add($"Generiertes JSON: {json}", False, "BNSjsonDownload") clsLogger.Add($">> Generiertes JSON: {json}", False, "BNSjsonDownload")
clsLogger.Add($"Creating WebRequest for {url}", False, "BNSjsonDownload") clsLogger.Add($">> Creating WebRequest for {url}", False, "BNSjsonDownload")
Dim req As HttpWebRequest = WebRequest.CreateHttp(url) Dim req As HttpWebRequest = WebRequest.CreateHttp(url)
@ -267,8 +275,8 @@ Public Class clsDateiverarbeitung
reqStream.Write(bytes, 0, bytes.Length) reqStream.Write(bytes, 0, bytes.Length)
reqStream.Close() reqStream.Close()
clsLogger.Add($"Datei wird hochgeladen... docId: {DOKID}, dokart: {DOKART}, userId: {userId}", False, "BNSjsonDownload") clsLogger.Add($">> Datei wird hochgeladen... docId: {DOKID}, dokart: {DOKART}, userId: {userId}", False, "BNSjsonDownload")
clsLogger.Add($"Upload URL: {url}", False, "BNSjsonDownload") clsLogger.Add($">> Upload URL: {url}", False, "BNSjsonDownload")
Using res As HttpWebResponse = req.GetResponse() Using res As HttpWebResponse = req.GetResponse()
Dim code As HttpStatusCode = res.StatusCode Dim code As HttpStatusCode = res.StatusCode
@ -276,10 +284,10 @@ Public Class clsDateiverarbeitung
' Status 201 Created bedeutet: Alles okay! ' Status 201 Created bedeutet: Alles okay!
If code = HttpStatusCode.Created Then If code = HttpStatusCode.Created Then
clsLogger.Add($"Datei geschrieben! docId: {DOKID}, dokart: {DOKART}, userId: {userId}", False, "BNSjsonDownload") clsLogger.Add($">> Datei geschrieben! docId: {DOKID}, dokart: {DOKART}, userId: {userId}", False, "BNSjsonDownload")
Else
Throw New Exception($"Server Error (HTTP {code}: {text})")
End If End If
Throw New Exception($"Server Error (HTTP {code}: {text})")
End Using End Using
Catch ex As Exception Catch ex As Exception
@ -380,11 +388,12 @@ Public Class clsDateiverarbeitung
Public Ivaliduntil As DateTime Public Ivaliduntil As DateTime
Public Bemerkung As String Public Bemerkung As String
Public Primaer As Boolean = False Public Primaer As Boolean = False
Public Kategorie As List(Of BNSDocumentCategory) Public Fremsysid As Integer = 1
Public Kategorien As List(Of BNSDocumentCategory)
End Class End Class
Public Class BNSDocumentCategory Public Class BNSDocumentCategory
Public Name As String Public Id As Integer
End Class End Class
End Class End Class

View File

@ -267,7 +267,7 @@ Public Class clsProfil
End If End If
'Next 'Next
Case "BNS json Download".ToUpper Case "BNS json Download".ToUpper
clsDateiverarbeitung.BNSjsonDownload(WMdok, DR_PR_JB.Item("STRING1")) clsDateiverarbeitung.BNSjsonDownload(WMdok, DR_PR_JB.Item("STRING1"), DR_PR_JB.Item("STRING2"))
End Select End Select