FileConnector (REST/JSON)

Profit Connector voor het uploaden en downloaden van bestanden.

Inhoud

Bestand ophalen uit Profit

Je hebt de GUID en de originele bestandsnaam van de bijlage nodig, deze kun je ophalen met een GetConnector. Daarna roep je de FileConnector aan en haal je het bestand op.

Je kunt de FileConnector alleen gebruiken voor het ophalen van bestanden als de SubjectConnector in de app connector geactiveerd is.

Guid en bestandsnaam opvragen via GetConnector:

  1. Ga naar: Algemeen / Uitvoer / Beheer / GetConnector.
  2. Voeg een GetConnector toe op basis van de gegevensverzameling Bestanden bij dossier.
  3. De gegevensverzameling bevat standaard de velden Bijlage (GUID) en Naam (bestandsnaam).

Bestand ophalen met de connector:

  1. Roep de Profit REST Services aan.
  2. Aanroep:

    <endpoint>/fileconnector/{GUID}/{filename}

    Voorbeeld:

    <endpoint>/fileconnector/F64BB8E942BBC5E94FC747904E19FE1B/Invoice3734.pdf

    Let op:

    Je vindt alle endpoints voor connectoren op de centrale pagina URL's van REST Services.

    De bestandsnaam moet de originele naam zijn die je uit Profit hebt opgehaald. Je mag dus niet zelf een naam verzinnen. Zie ook hieronder bij 'Spaties en speciale tekens'.

  3. Je slaat het bestand op op één van de volgende manieren:
    • Base64-string
    • Originele bestandsindeling met de originele bestandsnaam (Binary)

Error handling

HTTP 404: Als een bestand niet bestaat of je geen rechten hebt op een bestand krijg je een HTTP 404 File not found error. Controleer of het bestand bestaat. Als het bestand bestaat pas dan de autorisatie aan. De oorzaak hiervan zal zijn dat de gebruikersgroep geen rechten heeft op het gegevensfilter van de dossieritems. Zie voor meer informatie: Dossier autoriseren via gegevensfilters.

Spaties en speciale tekens:

Voor de aanroep op de webservice moeten vreemde tekens encoded (zogenaamd escape/escaping) encoded worden. Voor meer informatie en andere tekens dan de onderstaande, zie https://www.w3schools.com/tags/ref_urlencode.asp.

Voorbeeld:

Bestandsnaam van een bijlage: Gabriëls 123456.pdf

In de aanroep wordt dit: Gabri%C3%ABls%20123456.pdf"

De speciale tekens zijn als volgt omgezet: %C3%AB is ë en %20 is spatie

De volledige aanroep, inclusief de GUID: /fileconnector/5B57047D42C6B5F245E864BDF5BFAFC5/Gabri%C3%ABls%20123456.pdf

Hieronder zie je de belangrijkste tekens en de bijbehorende encoding. In deze lijst staan ook tekens die niet zijn toegestaan in een bestandsnaam, hiervoor gelden dezelfde regels als voor Windows-bestandsnamen.

Teken

Encoding

/

_2F

#

_23

&

_26

:

_3A

?

_3F

*

_2A

<

_3C

>

_3E

%

_25

+

_2B

~

_7E

-

_2D

@

_40

!

_21

$

_24

_ (underscore)

_5F

' (enkele quote)

_27

Bestand uploaden naar Profit

Je kunt de FileConnector alleen gebruiken voor het uploaden van bestanden als de juiste UpdateConnector in de app connector geactiveerd is. Gebruik een geschikte UpdateConnector, zoals KnSubject.

Je kunt dit proces niet testen via AFAS Connect. Gebruik de onderstaande voorbeeldcode om je eigen toepassing te bouwen.

$posturl = 'https://12345.rest.afas.online/ProfitRestServices/fileconnector/KnSubject/IMG_20202206_173801.jpg'

#locatie bestand input

$FilePath = "C:\temp\IMG_20200706_173801.jpg"

#Load file

$fileBytes = [System.IO.File]::ReadAllBytes($FilePath);

#hash file

$fileEnc = [System.Text.Encoding]::GetEncoding('UTF-8').GetString($fileBytes);

#set boundary

$boundary = [System.Guid]::NewGuid().ToString();

#set linefeed as variable

$LF = "`r`n";

#Create content for request

$bodyLines = (

    "--$boundary",

    "Content-Disposition: form-data; name=`"file`"; filename=`"temp.txt`"",

    "Content-Type: application/octet-stream$LF",

    $fileEnc,

    "--$boundary--$LF"

) -join $LF

#Set security requirements

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;

#Execute request

$Result = Invoke-RestMethod -Uri $posturl -Headers $Headers -Method Post -ContentType "multipart/form-data; boundary=`"$boundary`"" -Body $bodyLines

Direct naar

  1. Profit Rest Services (JSON)
  2. Overzicht REST API voor ontwikkelaars
  3. Connector aanroepen via Profit Rest Service
  4. App connector toevoegen voor Profit Rest Service
  5. Token genereren voor de Profit Rest Service
  6. XML omzetten naar JSON
  7. GetConnector aanroepen
  8. UpdateConnector aanroepen
  9. ReportConnector aanroepen
  10. SubjectConnector aanroepen
  11. FileConnector aanroepen
  12. ImageConnector aanroepen
  13. ProfitVersionConnector aanroepen