ArcGIS Enterprise
Schema updaten van een hosted feature service
Het aanmaken van een hosted feature service voor bijvoorbeeld gebruik in de Field Maps app is een proces dat zelden in een keer het ideale resultaat oplevert. Geregeld zal het nodig zijn om een veldnaam te wijzigen of zelfs een veld of domeinwaarde toe te voegen, om de gewenste data in te winnen. Het is niet altijd mogelijk of gewenst om daarvoor een geheel nieuwe feature service te publiceren.
De structuur waarin de data in een hosted feature service is opgeslagen wordt het schema genoemd. Het gaat dan onder andere over de velden en de eigenschappen daarvan. Dit schema kan in ArcGIS Online via de REST admin pagina worden aangepast. Hieronder wordt uitgelegd hoe.
REST admin pagina
Het aanpassen van het schema van een hosted feature service moet door de eigenaar van de service worden uitgevoerd. Log in op ArcGIS Online en navigeer naar de item details pagina van de service die aangepast moet worden. Klik onder de kaartlaag waar het om gaat op Service-URL.

De REST pagina van de service wordt geopend. Om toegang te krijgen tot de REST admin pagina, zal de URL in je browser wat moeten worden aangepast. In de huidige URL moet, tussen …rest/ en /services… het woord /admin/ worden toegevoegd zoals in het voorbeeld hieronder.

Hoewel de REST pagina op het eerste gezicht weinig lijkt te veranderen zijn er een aantal opties toegevoegd. Helemaal onderaan de pagina staan de ‘Supported Operations’ voor de hosted feature service. Scroll daar naartoe en klik op de ‘Update Definition’ optie om de service aan te passen.

Update Definition
Wanneer de Update Definition pagina is geopend, wordt de JSON van de feature service zichtbaar in de textbox zoals in de afbeelding hieronder. Aan de hand van deze JSON kunnen eigenschappen van de service worden geupdate. Let op! Hoewel de aanpassingen in de textbox bij het updaten gevalideerd worden, wordt toch aanbevolen om:
- De updates in de JSON eerst te testen op een kopie van de hosted feature service voordat aanpassingen op een service die in productie is worden uitgevoerd.
- Valideer de aangepaste JSON (bijvoorbeeld via https://jsonlint.com/) voordat je daadwerkelijk de service update.
- Wanneer de service in gebruik is in de Collector app, zal deze door de gebruikers opnieuw moeten worden gedownload voordat schema-wijzigingen zichtbaar zijn. Zorg er ook voor dat gebruikers alle edits gesynchroniseerd hebben voordat er een aanpassing op de service wordt gedaan.

Kopieer en plak de JSON in een tekst file editor waarin je de opmaak van de JSON kunt behouden. Een goede tool hiervoor is Notepad++. De wijzigingen die in de JSON kunnen worden uitgevoerd staan hieronder beschreven.
Field Properties
Het aanpassen van de field properties geeft bijvoorbeeld de mogelijkheid om de namen of alias te wijzigen of velden bewerkbaar te maken. Een aantal van deze wijzigingen kan ook in de pop-up van een service worden gewijzigd. In een situatie waarin een service in meerdere web maps wordt gebruikt kan het echter handig zijn om dit via rechtstreeks op de service aan te passen. De wijzigingen zijn dan in alle web maps zichtbaar. Meer informatie over welke aanpassingen gedaan kunnen worden is te vinden in het volgende artikel: http://desktop.arcgis.com/en/arcmap/10.5/manage-data/geodatabases/defining-feature-class-properties.htm
- Kopieer de JSON in een tekstverwerker en zoek naar de veldnaam van het veld waarvan de properties aangepast moeten worden, zie afbeelding hieronder.

Pas de properties van het veld aan:
- Wijzigen van het alias: verander “Manufacturer” naar “Manufacturer name”.
- Wijzigen of een veld te bewerken is: verander “editable” : true, naar “editable” : false,
Domein en domeinwaarden
Misschien wel een van de meest voorkomende wijzigingen is het toevoegen van een domeinwaarde aan een hosted feature layer. Dat is vrij eenvoudig te doen door de stappen hieronder te volgen.
- Zoek in de JSON code in de tekstverwerker naar “type” : “codedValue”. In de afbeelding hieronder zijn de fieldproperties en de bijbehorende domeinwaarden te zien.

- Binnen dit domein kunnen:
- Domeinwaarden of namen worden aangepast: “name” : “Clow Corporation” naar “name” : “Clow Inc.” of “code” : “Clow Corporation” naar “code” : “CP”.
- Nieuwe domeinwaarden worden toegevoegd: Let erop dat de juiste JSON syntax wordt gebruikt bij het toevoegen van een waarde:
{
“name” : “Waterous”,
“code” : “W”
},
- Domeinen worden verwijderd: Let er bij het verwijderen van een domein op dat ook de bijbehorende “{}” worden verwijderd.
Edit Templates
Ook de edit templates die voor een service zijn geconfigureerd kunnen worden aangepast. Zo is het bijvoorbeeld mogelijk om de template naam te veranderen of een nieuwe template toe te voegen. Dat kan op de volgende manier.
- Voeg de JSON weer toe aan een tekstverwerker en zoek daar naar “templates” :[.

Wijzig de gewenste proporties:
- Wijzig de naam van de template: “name” : “Hydrants”, naar “name” : “Brandkranen”,
- Wijzig de standaard waarde voor de attributen: “FLOW” : null, naar “FLOW” : 100,
- Het toevoegen of verwijderen van een template. Daarvoor kan de afbeelding hierboven als voorbeeld worden gebruikt.
Max Record Count
Deze waarde geeft aan hoeveel features er maximaal tegelijk getoond en bevraagd kunnen worden in een hosted feature service. Deze is standaard ingesteld op 1000 maar het is mogelijk om dit te verhogen. Let op! Het verhogen van de Max Record Count kan invloed hebben op de performance van de service als deze een grote hoeveelheid data bevat.
Om de maxRecordCount property te wijzigen zoek je in de JSON naar “maxRecordCount” :. Wijzig daar de waarde van “maxRecordCount” : 1000, naar een andere waarde “maxRecordCount” : 2500,.