Voor het verzenden via Fedex probeer ik het uploaden van douanedocumenten te automatiseren. Nu heeft Fedex daar een API voor, aanspreekbaar via JSON, en dit gaat tot zover allemaal goed, echter, krijg ik in filemaker het niet voor elkaar om het document te uploaden. De API wordt aangesproken met form data, en er is dus een stuk met daarin de shipment data in JSON ( metadata vooral), en een stuk form data waarin het PDF bestand mee moet. In postman lukt het om een 200 OK reactie van de API terug te krijgen, maar als ik het in filemaker probeer krijg ik een bad request 400 error, dus mijn vermoeden is dat ik iets in de syntax/curl niet goed doe bij de insert from URL scriptstap, maar ik heb inmiddels alle mogelijke variaties geprobeerd en krijg het niet goed, dus mijn hoop is dat er iemand een idee heeft wat er mis gaat..
Ter illustratie: Dit is wat postman doet ( de form data die postman mij weergeeft:
In filemaker heb ik een container aangemaakt met daarin het gewenste PDF bestand, deze wordt scriptmatig via een globale variabele toegevoegd aan de curl.
De document metadata in JSon wordt ook in een script aangemaakt en toegevoegd, de form name wordt ter plekke aangemaakt in de curl. Deze Json werkt als ik deze vanuit filemaker dataviewer direct copy-paste in postman, dus dit stuk is -denk ik- goed.
De curl ziet er als volgt uit:
"
-X POST
--header \"Authorization: Bearer " & $bearertoken & "\"
--header \"Content-Type: multipart/form-data\"
--form \"attachment=" & $$uploadfile & "\"
--form \"name=" & Invoices::_INVOICE ID MATCH FIELD & ".pdf\"
--form \"document="& $Jsoncurl & "\"
-D $header"
De foutmelding die terugkomt is:
{ "path": "/document/v1/etds/upload", "customerTransactionId": "", "error": "Bad Request", "message": "Required request part 'attachment' is not present", "timestamp": "2023-08-17T12:27:16.290+0000", "status": "400"}
In de dataviewer is de $$uploadfile variable echter wel gevuld met de gewenste PDF, maar hij lijkt niet mee te komen.
Question
Samsup
Beste Filemakeraars,
Voor het verzenden via Fedex probeer ik het uploaden van douanedocumenten te automatiseren. Nu heeft Fedex daar een API voor, aanspreekbaar via JSON, en dit gaat tot zover allemaal goed, echter, krijg ik in filemaker het niet voor elkaar om het document te uploaden. De API wordt aangesproken met form data, en er is dus een stuk met daarin de shipment data in JSON ( metadata vooral), en een stuk form data waarin het PDF bestand mee moet. In postman lukt het om een 200 OK reactie van de API terug te krijgen, maar als ik het in filemaker probeer krijg ik een bad request 400 error, dus mijn vermoeden is dat ik iets in de syntax/curl niet goed doe bij de insert from URL scriptstap, maar ik heb inmiddels alle mogelijke variaties geprobeerd en krijg het niet goed, dus mijn hoop is dat er iemand een idee heeft wat er mis gaat..
Ter illustratie: Dit is wat postman doet ( de form data die postman mij weergeeft:
In filemaker heb ik een container aangemaakt met daarin het gewenste PDF bestand, deze wordt scriptmatig via een globale variabele toegevoegd aan de curl.
De document metadata in JSon wordt ook in een script aangemaakt en toegevoegd, de form name wordt ter plekke aangemaakt in de curl. Deze Json werkt als ik deze vanuit filemaker dataviewer direct copy-paste in postman, dus dit stuk is -denk ik- goed.
De curl ziet er als volgt uit:
"
-X POST
--header \"Authorization: Bearer " & $bearertoken & "\"
--header \"Content-Type: multipart/form-data\"
--form \"attachment=" & $$uploadfile & "\"
--form \"name=" & Invoices::_INVOICE ID MATCH FIELD & ".pdf\"
--form \"document="& $Jsoncurl & "\"
-D $header"
De foutmelding die terugkomt is:
{ "path": "/document/v1/etds/upload", "customerTransactionId": "", "error": "Bad Request", "message": "Required request part 'attachment' is not present", "timestamp": "2023-08-17T12:27:16.290+0000", "status": "400"}
In de dataviewer is de $$uploadfile variable echter wel gevuld met de gewenste PDF, maar hij lijkt niet mee te komen.
De curl heb ik overigens uit Postman genomen en deze door de curlparser van soliant heen gehaald https://www.soliantconsulting.com/blog/translating-auto-generated-curl-to-filemaker-curl/
Link to comment
22 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.