thumb_up
thumb_down
link
Copy link
Copied
insert_emoticon
lmatfy
Copied

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 eindpoints 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) worden op basis van de tabel op de pagina https://www.w3schools.com/tags/ref_urlencode.asp.

Bij vreemde tekens gecodeerd volgens de URL encoding tabel, vervang je het teken % door een underscore _

Voorbeeld:

Het & teken is in de ASCII-tabel %26

In de aanroep wordt dit: _26

Let op:

Uitzondering: de underscore in een bestands_naam vervang je door _5f.

Het bestand Filename_underscore.pdf wordt in de aanroep:

https://12345.rest.afas.online/ProfitRestServices/fileconnector/840C2D084F71330648EA2485657DB7AE/Filename_5funderscore.pdf

Extra voorbeelden:

  • Bestandsnaam met & % tekens.pdf

    https://12345.rest.afas.online/ProfitRestServices/fileconnector/8AE0F5394A3D7C25E207FBBF8A9C4DE2/Bestandsnaam%20met%20_26%20_25%20tekens.pdf

  • Visual C# Object Programming (VCO) 06-12-2018.pdf wordt:

    https://12345.rest.afas.online/ProfitRestServices/fileconnector/779AC137450599F32BB0E960C492ABF7/Visual%20C_23%20Object%20Programming%20_28VCO_29%2006-12-2018.pdf

  • Visual Basic ++ Plusteken.pdf wordt:

    https://12345.rest.afas.online/ProfitRestServices/fileconnector/D96C3F814F3C121A4117B8B0716B6CBE/Visual%20Basic%20_2B_2B%20Plusteken.pdf

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_20200706_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

Process

Connector JSON/REST

Work area

Connectoren