Via een access form worden de rapporten gezet in het zaaksysteem.
Met de knop “zet in zaaksysteem” wordt het rapport gestuurd naar ZaaksysteemUrl . Als alles goed loopt krijg je een melding "Zaak aangemaakt in het zaaksysteem onder nummer " + ZaakId + ". Als er geen verbinding met de server is of er een fout in de DB ontstaat, dan verschijnt deze melding “Kon de zaak niet aanmaken. Controleer of er een verbinding met internet is, anders neem contact op met de beheerder." We krijgen vaak melding dat de zaak niet kon aangemaakt worden.
Bij controle in het zaaksysteem blijkt toch dat een zaak is aangemaakt, ondanks een melding dat het niet aangemaakt is. Er wordt door gebruikers herhaaldelijk op de knop “zet in zaaksysteem” gedrukt, waardoor veel dubbelingen in het zaaksysteem ontstaat.
Enig idee hoe dit ontstaat en wat er aan te doen is?
Met de knop “zet in zaaksysteem” wordt het rapport gestuurd naar ZaaksysteemUrl . Als alles goed loopt krijg je een melding "Zaak aangemaakt in het zaaksysteem onder nummer " + ZaakId + ". Als er geen verbinding met de server is of er een fout in de DB ontstaat, dan verschijnt deze melding “Kon de zaak niet aanmaken. Controleer of er een verbinding met internet is, anders neem contact op met de beheerder." We krijgen vaak melding dat de zaak niet kon aangemaakt worden.
Bij controle in het zaaksysteem blijkt toch dat een zaak is aangemaakt, ondanks een melding dat het niet aangemaakt is. Er wordt door gebruikers herhaaldelijk op de knop “zet in zaaksysteem” gedrukt, waardoor veel dubbelingen in het zaaksysteem ontstaat.
Enig idee hoe dit ontstaat en wat er aan te doen is?
Code:
Private Sub ZetInZaaksysteem_Click()
ZetInZaaksysteem.Enabled = False 'zet knopje tijdelijk uit (voorkom dubbelklik)
Dim FileName As String
Dim FilePath As String
FileName = Me.Projectnummer + " " + Me.Projectnaam + " " + Me.Woonplaats
FilePath = "output.pdf"
Dim Buitengebied As Boolean
If Trim(Woonplaats.Value) = "Amsterdam" Then
Buitengebied = False
ElseIf Trim(Woonplaats.Value) = "AMSTERDAM" Then
Buitengebied = False
Else
Buitengebied = True
End If
If Buitengebied = True Then
DoCmd.OutputTo acOutputReport, "Hoofdrapport buitengebieden", acFormatPDF, FilePath
Else
DoCmd.OutputTo acOutputReport, "Hoofdrapport", acFormatPDF, FilePath
End If
Dim ZaakClient As New WebClient
ZaakClient.BaseUrl = "http://bvawaternet.nl/api/v1/"
Const STR_BOUNDARY As String = "3fbd04f5-b1ed-4060-99b9-fca7ff59c113"
Dim ZaakAuth As New HttpBasicAuthenticator
ZaakAuth.Setup "beheerder", "jL8mHUucxN4XN"
Set ZaakClient.Authenticator = ZaakAuth
Dim Request As New WebRequest
Request.Resource = "case/prepare_file"
Request.Method = WebMethod.HttpPost
Request.ResponseFormat = Json
Request.ContentType = "multipart/form-data; boundary=" & STR_BOUNDARY
Dim nFile As Integer
Dim baBuffer() As Byte
Dim sPostData As String
' --- read file
nFile = FreeFile
sFileName = "Bodem-en-veiligheidadvies.pdf"
Open "output.pdf" For Binary Access Read As nFile
If LOF(nFile) > 0 Then
ReDim baBuffer(0 To LOF(nFile) - 1) As Byte
Get nFile, , baBuffer
sPostData = StrConv(baBuffer, vbUnicode)
End If
Close nFile
' --- prepare body
sPostData = "--" & STR_BOUNDARY & vbCrLf & _
"Content-Disposition: form-data; name=""file""; filename=""" & Mid$(sFileName, InStrRev(sFileName, "\") + 1) & """" & vbCrLf & _
"Content-Type: application/octet-stream" & vbCrLf & vbCrLf & _
sPostData & vbCrLf & _
"--" & STR_BOUNDARY & "--"
Request.Body = sPostData
Dim response As New WebResponse
Set response = ZaakClient.Execute(Request, True)
If response.StatusCode = Ok Then
Dim FileId As String
FileId = response.Data("result")("instance")("references").Keys()(0)
Else
MsgBox ("Kon de zaak niet aanmaken. Controleer of er een verbinding met internet is, anders neem contact op met de beheerder.")
Exit Sub
End If
Dim SecondRequest As New WebRequest
SecondRequest.Resource = "case/create"
SecondRequest.Format = WebFormat.Json
SecondRequest.ResponseFormat = Json
SecondRequest.Method = WebMethod.HttpPost
SecondRequest.AddBodyParameter "casetype_id", "527262d4-b06d-4720-9ccb-de4744dde290"
SecondRequest.AddBodyParameter "source", "webformulier"
Dim Values As New Dictionary
' Naam in het zaaksysteem (magic string), naam in VBA
Values.Add "opdrachtgever", Array([Form_accessdata BOB].Opdrachtgever.Value)
Values.Add "aanvrager", Array([Form_accessdata BOB].Aanvrager.Value)
Values.Add "werkorder", Array([Form_accessdata BOB].Projectnummer.Value)
Values.Add "adres", Array([Form_accessdata BOB].Projectnaam.Value)
Values.Add "plaats", Array([Form_accessdata BOB].Woonplaats.Value)
Values.Add "x", Array([Form_accessdata BOB].Xcoördinaat.Value)
Values.Add "y", Array([Form_accessdata BOB].Ycoördinaat.Value)
Values.Add "werkomschrijving", Array([Form_accessdata BOB].Werkomschrijving.Value)
Values.Add "startdatum", Array(Format([Form_accessdata BOB].VoorlopigeStartdatum.Value, "d-m-yyyy"))
Values.Add "diepte_werkzaamheden_in_m", Array([Form_accessdata BOB].Dieptewerkzaamheden.Value)
Values.Add "omvang_grondwerk_lxbxd_in_m3", Array([Form_accessdata BOB].Omvanggrondwerk.Value)
Values.Add "duur_van_de_werkzaamheden_in_dagen", Array([Form_accessdata BOB].Duurwerkzaamheden.Value)
Values.Add "werkzaamheden ondergrondwaterspiegel", Array([Form_accessdata BOB].Grondwaterspiegel.Value)
Values.Add "klasse_toxiciteit_en_flammable", Array([Form_accessdata BOB].Veiligheidsklasse.Value)
Values.Add "bijzonderheden", Array([Form_accessdata BOB].Bijzonderheden.Value)
Values.Add "opmerking", Array([Form_accessdata BOB].Bodemonderzoek.Value)
Values.Add "veiligheidsadvies", Array(FileId) ' Zet het bestand in de zaak
If Buitengebied = True Then
Values.Add "buitengebied", Array("Ja")
Else
Values.Add "buitengebied", Array("Nee")
End If
SecondRequest.AddBodyParameter "values", Values
Dim SecondResponse As New WebResponse
Set SecondResponse = ZaakClient.Execute(SecondRequest)
If SecondResponse.StatusCode = Ok Then
Dim ZaakId As String
ZaakId = SecondResponse.Data("result")("instance")("number")
[Form_accessdata BOB].Zaaknummer.Value = ZaakId
MsgBox ("Groeten van Tatjana Simic: kijk in mijn checkbox hiernast " + ZaakId + ".")
Else
MsgBox ("Kon de zaak niet aanmaken. Controleer of er een verbinding met internet is, anders neem contact op met de beheerder.")
End If
ZetInZaaksysteem.Enabled = True
End Sub