Overzicht
GitHub: https://github.com/brianmcleer/add-edit-etl-widget
Add, Map & Edit Data is een aangepaste widget die twee standaardwidgets van Esri combineert: Add Data en Edit. Tussen die twee wordt een stap voor veldtoewijzing ingevoegd. De widget is ontstaan uit een terugkerend probleem waar ik steeds tegenaan liep. Iemand heeft een spreadsheet of een laag die diegene in een bestaande bewerkbare laag wil opnemen, maar de binnenkomende veldnamen komen nooit overeen met die van de doellaag. Daardoor moeten de gegevens buiten Experience Builder opnieuw worden ingedeeld voordat iemand ze kan bewerken. Ik wilde dat het hele proces — toevoegen, toewijzen, laden en bewerken — in één widget kon plaatsvinden, zonder de app te verlaten.
De gebruiker voegt gegevens toe zoals met de standaardwidget Add Data: vanuit een bestand, een URL of ArcGIS-content. Vervolgens worden de binnenkomende velden toegewezen aan de velden van de doellaag. De toewijzing ondersteunt een-op-een, veel-op-een, een-op-veel en veel-op-veel. Zo kun je een paar velden samenvoegen tot één veld, één veld opsplitsen in meerdere velden, waarden combineren, een vaste waarde invoegen of een kleine expressie schrijven wanneer dat nodig is. Na een snelle controle en voorbeeldweergave worden de records in batches in de doellaag geladen. Daarna kunnen ze op de kaart worden bewerkt met de gewone Edit-tools.
Net als bij mijn andere widgets staan de doellaag en alle opties in het instellingenpaneel. Je kunt de widget dus op je eigen laag richten zonder code aan te passen. Toewijzingen kunnen ook worden geëxporteerd en geïmporteerd als XML. Zo kun je een toewijzing die je voor een terugkerende lading hebt gemaakt opslaan en opnieuw gebruiken, in plaats van die telkens opnieuw op te bouwen.
Je gegevens toevoegen
De stap voor toevoegen werkt zoals de standaardervaring van Add Data. De bron kan dus op drie manieren worden opgehaald:
- Een bestand van je computer. Ondersteunde uploads zijn shapefile, file geodatabase, CSV, GeoJSON, KML en GPX. Shapefiles en file geodatabases moeten zijn ingepakt in een ZIP-bestand. De limieten van Esri zijn van toepassing: maximaal 1.000 records voor CSV en 4.000 voor de andere typen, met een limiet van 2 MB voor shapefiles en 10 MB voor alle overige bestanden, en maximaal 30 bestanden tegelijk.
- Een URL naar een webservice. Je kunt verwijzen naar een feature service, map service, vector tile service, image service, scene service, WFS, WMS, WMTS, KML, GeoJSON of CSV.
- ArcGIS-content. Doorzoek je eigen content, je groepen, je organisatie en openbare content, waaronder ArcGIS Living Atlas of the World.
Ongeacht de bron worden de velden na het toevoegen in de toewijzingsstap gekoppeld aan je doellaag. Het oorspronkelijke bestandsformaat maakt dus niet uit wanneer de records worden weggeschreven.
Functies
Dit is in feite een eenvoudige ETL-tool die binnen Experience Builder draait. Add zorgt voor het extraheren, de toewijzingsstap voor het transformeren en het schrijven naar de doellaag voor het laden. Zo vindt het herstructureren dat je normaal gesproken in een desktoptool of met een aparte ETL-stap zou doen, gewoon in de app plaats.
- Een eenvoudige ETL-workflow in de app: extraheer met Add Data, transformeer met de veldtoewijzing en laad in je doellaag, zonder aparte desktoptool of ETL-stap.
- Add Data, veldtoewijzing, laden en Edit in één begeleide widget.
- Veldtoewijzing voor een-op-een, veel-op-een, een-op-veel en veel-op-veel, met typeconversie en validatie voordat er iets wordt weggeschreven.
- Een stap voor controle en voorbeeldweergave, gevolgd door een lading in batches met een voortgangsindicator.
- Toewijzingen exporteren en importeren als XML voor herhaalbare, herbruikbare ladingen.
- Optioneel de doellaag aan de kaart toevoegen, met zoomen naar de geladen objecten en naar een object wanneer dit tijdens het bewerken wordt geselecteerd.
- Een instelbare zoomschaal, zodat zoomen naar een object de schaal daadwerkelijk wijzigt en niet alleen de kaart verschuift.
- De bewerkingsmachtigingen, snapopties en geavanceerde bewerkingstools zijn beschikbaar in het instellingenpaneel.
- Toegankelijke bediening via het toetsenbord en labels voor schermlezers in de hele widget.
Vereisten
ArcGIS Experience Builder Developer Edition 1.19 of 1.20, die React 19 gebruiken. EB 1.18 en ouder gebruiken React 18 en worden niet ondersteund.
Installeren
Download het bijgevoegde ZIP-bestand en pak het uit. Plaats de map add-edit-etl in client\your-extensions\widgets, zodat manifest.json direct in client\your-extensions\widgets\add-edit-etl staat en niet nog een niveau dieper. Voer npm install uit in de map client en start de app daarna opnieuw. De volledige stappen, inclusief de oplossing voor dubbele namen, staan in de README op GitHub.
Feedback
Dit is de eerste versie, dus verwacht nog enkele ruwe kantjes. Als je een bug tegenkomt of een idee hebt voor een functie, laat het dan achter in de reacties op dit bericht. Dan neem ik een kijkje.
Credits en licentie
Dit afgeleide werk is gebaseerd op de widgets Add Data en Edit van Esri, beide ontwikkeld door het Esri R&D Center Beijing en uitgebracht onder de Apache-licentie, versie 2.0. De widgets zijn gecombineerd, aangepast en uitgebreid door de City of Grand Junction, CO. Uitgebracht onder Apache-2.0. Copyright op het oorspronkelijke werk: Esri; copyright op de aanpassingen: City of Grand Junction, CO.
Wijzigingen
12-10-2026: De widget volgt nu de taal van de app (?locale=, de taalschakelaar, het ArcGIS-profiel of de browser) in 39 talen, inclusief de hulpgids.
Heb je zelf aangepaste widgets? Met dezelfde gratis tool, exb-i18n-kit, kun je ze met één opdracht vertalen: localize. Zo wordt elke zin ingevuld:
- Eerst Esri. De tool haalt de vertalingen op die al in je Experience Builder-installatie staan. Zo gebruikt een zin als ‘Zoomen naar’ dezelfde formulering als de eigen widgets van Esri.
- Standaardtermen.Eenheden zoals voet en acre zijn afkomstig uit Unicode CLDR, dezelfde gegevens die browsers gebruiken.
- Gedeeld vertaalgeheugen. Alles wat daarna nog overblijft, komt uit een gedeeld woordenboek dat is opgebouwd met LibreTranslate, een openbronvertaler, en de Opus-MT-modellen van Helsinki-NLP voor het Bosnisch, Kroatisch en Servisch. De tool draait gratis op GitHub, dus je hebt geen API-sleutel of account nodig.
- Koppeling. De tool vindt ook Engelse tekst die buiten het vertaalbestand van de widget is vastgelegd, zoals een standaardinstelling of een hulpgids, en koppelt die zodat ook die wordt vertaald.
Handmatige correcties hebben altijd voorrang op de machinevertaling en worden nooit overschreven. Sommige vertalingen zijn automatisch gemaakt. Reageer hier dus met een betere formulering als je een vertaling tegenkomt die niet klopt.
23 juli 2026:
- v1.2.1 werkt de widget bij voor compatibiliteit met Experience Builder 1.21. De versies in het manifest en het package zijn bijgewerkt naar 1.21 en er is een tsconfig op widgetniveau toegevoegd voor een betere typeherkenning in de editor.
7 juli 2026:
- Invoegen, bijwerken of upserten. Kies een sleutelveld en bij een nieuwe lading worden records bijgewerkt in plaats van gedupliceerd.
- Controleer gegevens voordat je ze laadt. De tool rapporteert null-waarden, ongeldige waarden, domeinovertredingen en dubbele sleutels zonder iets weg te schrijven.
- Nieuwe transformaties: datumparsing met een formaathint, waardetoewijzingen voor hercodering, eenheidsconversie en sjablonen met {field}.
- Mislukte rijen kunnen als CSV worden gedownload, met voor elke rij de foutmelding.
- De XML-export bevat nu alles, inclusief de laadmodus en sleutel.
23 juni 2026: meerdere doellagen toevoegen en de symboliek op de kaart bewerken; het symboliekpaneel verplaatsen en de stijl ervan aanpassen.
22 juni 2026: eerste uitgave, nu op GitHub.