Inleiding
Het Agentschap Landbouw en Zeevisserij is een Vlaams overheidsagentschap met als kerntaak het ondersteunen, reguleren en ontwikkelen van een duurzame landbouw- en visserijsector in Vlaanderen.
Use case
Percelen en ingezaaide teelten van een landbouwbedrijf opvragen bij het Agentschap Landbouw en Zeevisserij, en per erkende ramp automatisch de teeltoppervlaktes aggregeren binnen het getroffen gebied en de geldigheidsperiode van die ramp. Deze aggregatie wordt onder andere gebruikt om te controleren of de beschadigde oppervlakte van een teelt de 30%-drempel overschrijdt die recht geeft op een tegemoetkoming bij een erkende ramp (bv. het Vlaams Rampenfonds). Zonder deze drempelberekening zou enkel rekening gehouden worden met expliciet gedeclareerde, beschadigde percelen, en niet met de volledige, niet-beschadigde teeltoppervlakte van het bedrijf.
Setup
Onboardingsprocedure
Neem rechtstreeks contact op met het Agentschap Landbouw en Zeevisserij. De connector spreekt een WFS-service (Web Feature Service, een OGC-standaard) aan, beveiligd met een SSL-clientcertificaat. Voor meer info over de WFS-standaard zelf, zie docs.geoserver.org en opengeospatial.org/standards.
Dependency toevoegen in het POM.xml bestand
Om de connector te kunnen gebruiken, voeg je deze eerst als maven dependency toe aan het pom.xml bestand van je applicatie. Deze haalt de code voor de connector op bij het maken van de build voor je app.
<dependency>
<groupId>com.skryv.connectors</groupId>
<artifactId>lv</artifactId>
<version>${skryv.version}</version>
</dependency>
Applicatie eigenschappen
Volgende applicatie eigenschappen kunnen ingesteld worden bij de technische setup van de landbouw en zeevisserij-connector.
|
Eigenschap |
Verplicht |
Default |
Uitleg |
|---|---|---|---|
|
|
Ja |
- |
Basis-URL van de LV WFS-service, bv. |
|
|
Ja (bij |
- |
Object-key (pad) van de keystore binnen die S3-bucket. |
|
|
Ja (bij |
- |
Naam van de S3-bucket waar de keystore staat. |
|
|
Ja (bij |
- |
Pad naar het keystore-bestand met het client-certificaat. |
|
|
Ja (bij |
- |
Wachtwoord van de private key binnen de keystore. |
|
|
Ja (bij |
- |
Wachtwoord van de keystore. |
|
|
Nee |
|
Indien |
|
|
Nee |
|
Bepaalt of de connector via mTLS (client-certificaat) authenticeert. Staat dit op |
Services en functies
Let op: deze connector wordt, in tegenstelling tot de andere connectoren in deze documentatie, niet aangesproken via een BPMN-workflow-expressie, maar uitsluitend rechtstreeks vanuit Java-code. De functies zijn enkel bereikbaar door LVService rechtstreeks als Java-bean te injecteren.
@RequiredArgsConstructor
public class MyOwnService {
private final LVService lvService;
}
Overzicht
|
Functie |
Retourtype |
Info |
|---|---|---|
|
|
Haalt percelen/teelten op voor een bedrijf en jaar, en berekent de teeltoppervlakte-aggregatie voor een specifieke ramp. Voor gebruik vanuit de back-office (KBO-nummer al gekend). |
|
|
|
Zelfde functionaliteit, maar voor gebruik vanuit het e-loket — met een extra controle op het KBO-nummer aan de hand van het dossier-id. |
callLVServiceFromBackoffice
Java-code
LvRefList refList = lvService.callLVServiceFromBackoffice(kboNumber, year, disasterCode, rampenRefList);
Input
|
Inputparameters |
Data type |
Voorbeeld |
Uitleg |
|---|---|---|---|
|
|
String |
'0554768734' |
KBO-nummer (10 cijfers) van het landbouwbedrijf. |
|
|
int |
2018 |
Referentiejaar waarvoor percelen/teelten opgevraagd worden. |
|
|
String |
'a' |
Code van de erkende ramp waarvoor de teeltoppervlakte-aggregatie berekend moet worden. Moet exact overeenkomen met de |
|
|
List<RampenRefList> |
- |
Lijst van alle gekende erkende rampen. Elk item bevat: |
Output
Je krijgt een LvRefList-object terug met één veld items (List<LvRefListItem>). Elk item bevat:
|
Veld |
Uitleg |
|---|---|
|
|
Perceelnummer, aangevuld met de perceelnaam indien gekend ( |
|
|
Gedeclareerde oppervlakte in hectare (de connector zet de m²-waarde van LV automatisch om). |
|
|
NIS-code van de gemeente waarin het perceel ligt. |
|
|
Geldigheidsperiode van de teeltregistratie. |
|
|
Teeltcode en -naam. |
|
|
Som van |
Error-handling
Deze connector gooit uitsluitend rauwe IllegalStateExceptions, geen BpmnError. Bij aanroep vanuit een BPMN-scripttaak resulteert elke fout dus in een Camunda-incident.
|
Situatie |
Exceptie |
|---|---|
|
|
|
|
|
|
|
LV retourneert een WFS-foutrapport (XML in plaats van JSON) |
|
|
Het JSON-antwoord van LV kan niet geparsed worden |
|
callLVServiceFromELoket
Java-code
LvRefList refList = lvService.callLVServiceFromELoket(dossierId, year, disasterCode, kboNumber, rampenRefList);
Input
|
Inputparameters |
Data type |
Voorbeeld |
Uitleg |
|---|---|---|---|
|
|
String |
- |
Id van het dossier. Wordt enkel gebruikt in de foutmelding als |
|
|
int |
2018 |
Referentiejaar. |
|
|
String |
'a' |
Zie hierboven. |
|
|
String |
'0554768734' |
KBO-nummer. Mag hier niet |
|
|
List<RampenRefList> |
- |
Zie hierboven. |
Output
Idem als bij callLVServiceFromBackoffice.
Error-handling
Idem als bij callLVServiceFromBackoffice.