UpdateConnector (REST/JSON)
Een externe applicatie kan records in de Profit-database toevoegen, wijzigen of verwijderen via een UpdateConnector (de mogelijkheden verschillen per connector).
Voorbereiding:
- Je kunt alleen UpdateConnectoren aanroepen die in de app connector geactiveerd zijn.
- Lees de algemene toelichting bij XML-UpdateConnectoren.
- Lees de informatie over de aanroep van de REST-connectoren.
Let op:
Je vindt alle endpoints voor connectoren op de centrale pagina URL's van REST Services.
Inhoud |
Meta-info UpdateConnector raadplegen
Je kunt een lijst opvragen met de naam, de omschrijving en alle velden van een UpdateConnector. In de veldenlijst zie je de veldnaam, het type, de lengte, etc.
Meta-info raadplegen:
- Roep de Profit REST Services aan.
- Selecteer de connector.
- Klik op Metainfo.
Speciale tekens
Je moet speciale tekens (zoals é, ü, ï) in de indeling UTF-8 aanbieden. Zo niet, dan zie je in Profit een vraagteken in plaats van bijvoorbeeld zoals é, ü, ï.
Let op:
Dit onderwerp is alleen geschikt voor JSON. Voor XML raadpleeg je dit onderwerp.
Bij Windows Powershell gebruik je bij een Invoke-WebRequest de parameter -ContentType 'application/json;charset=utf-8'.]
Voorbeeld:
In dit voorbeeld wordt de omschrijving van een dossieritem gewijzigd:
$token = '<token><version>1</version><data>12345678901234567890123456789012345678901234567890</data></token>'
$encodedToken = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($token))
$authValue = "AfasToken $encodedToken"
$Headers = @{
Authorization = $authValue
}
$url = '<endpoint>/connectors/KnSubject'
$file = '{
"KnSubject": {
"Element": {
"@SbId": 1957,
"Fields": {
"Ds": " öndèrwérp aziëlaan JSON"
}
}
}
}'
Invoke-WebRequest -Uri $url -ContentType 'application/json;charset=utf-8' -Method PUT -Headers $Headers -Body $file
UpdateConnector uitvoeren
Een externe applicatie kan records in de Profit-database toevoegen, wijzigen of verwijderen via een UpdateConnector (de mogelijkheden verschillen per connector). Je kunt alleen UpdateConnectoren aanroepen die in de app connector geactiveerd zijn.
Beschikbare methoden:
- POST: gegevens toevoegen (INSERT)
- PUT: gegevens wijzigen (UPDATE)
- DELETE: gegevens verwijderen
UpdateConnector uitvoeren via de Tool:
- Roep de Profit REST Services aan.
- Selecteer een connector en de juiste methode. De URL wordt getoond.
- Vul de velden in. Verplichte velden worden gemarkeerd met een sterretje.
- Klik op: Execute.
- Je ziet de JSON-code en het resultaat van de aanroep:
Gecombineerde aanroep PUT en POST
Je kunt in één aanroep gegevens wijzigen en toevoegen. Dit geldt alleen voor connectoren die bestaan uit een hoofdrecord en subrecords.
Voorbeelden:
- Een debiteur heeft een hoofdrecord met algemene gegevens en o.a. een tabel met bankrekeningnummers (dit is het subrecord). Je kunt in één aanroep de algemene gegevens van de debiteur wijzigen én een bankrekening toevoegen.
- Een medewerker heeft een hoofdrecord met algemene gegevens en o.a. een tabel met salarisregels (dit is het subrecord). Je kunt in één aanroep de algemene gegevens van de medewerker wijzigen én een salarisregel toevoegen.
UpdateConnector uitvoeren via de Tool:
in dit voorbeeld wijzig je de gegevens van een organisatie en voeg je een bankrekening toe.
- Selecteer een connector.
- Selecteer de methode POST.
- Selecteer Insert sub record, update main record.
- Selecteer het sub record (sub element) dat je wilt toevoegen.
- Vul de code van het te wijzigen hoofdrecord in, in dit bijvoorbeeld de code van de te wijzigen organisatie.
- Vul bij het hoofdrecord alleen de velden die je wilt wijzigen.
- Zoek het subrecord op, in dit voorbeeld het subrecord KnBankAcccount, en vul de gegevens in voor het record dat je wilt toevoegen.
- Klik op: Execute.
Codevoorbeeld PUT
$token = '<token><version>1</version><data>5DEFA8EC26234BB2993040350BDAB18754DB8AF8484301AD1C6CB7BBA20AC16D</data></token>'
$encodedToken = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($token))
$authValue = "AfasToken $encodedToken"
$Headers = @{
Authorization = $authValue
}
$url = '<eindpoint>/connectors/KnSubject'
$file = '{
"KnSubject": {
"Element": {
"@SbId": 9769,
"Fields": {
"Ds": "Gewijzigd onderwerp JSON"
}
}
}
}'
Invoke-WebRequest -Uri $url -ContentType application/json -Method PUT -Headers $Headers -Body $file
Codevoorbeeld POST
$token = '<token><version>1</version><data>5DEFA8EC26234BB2993040350BDAB18754DB8AF8484301AD1C6CB7BBA20AC16D</data></token>'
$encodedToken = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($token))
$authValue = "AfasToken $encodedToken"
$Headers = @{
Authorization = $authValue
}
$url = '<endpoint>/connectors/KnSubject'
$file = '{
"KnSubject": {
"Element": {
"@SbId": 2,
"Fields": {
"StId": 2,
"Ds": "Uitgaande telefoongesprek",
"St": true,
"SbBl": true
},
"Objects": {
"KnSubjectLink": {
"Element": {
"@SbId": 2,
"Fields": {
"SfTp": 3,
"SfId": "666"
}
}
}
}
}
}
}'
Invoke-WebRequest -Uri $url -ContentType application/json -Method POST -Headers $Headers -Body $file
Codevoorbeeld DELETE
$token = '<token><version>1</version><data>5DEFA8EC26234BB2993040350BDAB18754DB8AF8484301AD1C6CB7BBA20AC16D</data></token>'
$encodedToken = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($token))
$authValue = "AfasToken $encodedToken"
$Headers = @{
Authorization = $authValue
}
$url = '<endpoint>/connectors/KnSubject/KnSubject/@SbId/2'