Vaak is ETL geen eenmalige actie, herhaling <\/STRONG>is nodig om gegevenswijzigingen in de loop van de tijd op te nemen. Tot de releases van ArcGIS Pro 3.4 en ArcGIS Enterprise 11.4 omvatten de ondersteunde automatiseringspatronen<\/STRONG> hiervoor ArcGIS Data Pipelines<\/STRONG> en geplande Notebooks <\/STRONG> of tools die gebruikmaken van de REST API taakplanner<\/A>, maar een nieuwe no-code optie, web tool scheduling<\/A>, wordt geleverd in ArcGIS Pro 3.4 en ArcGIS Enterprise 11.4!<\/STRONG><\/P> Je kunt elk type geoprocessingtool gebruiken om je geplande webtool te maken - kernsysteemtool, ModelBuilder-tool, Python-scripttool of Spatial ETL-tool. <\/STRONG> Voor mijn blogonderwerp gebruik ik een ArcGIS Data Interoperability Spatial ETL-tool, omdat deze mijn brongegevens kan verwerken, een RSS<\/A>-feed, specifiek een Common Alerting Protocol<\/A> (CAP)-feed, zoals gepubliceerd door veel instanties wereldwijd, waaronder FEMA<\/A> in de VS. Mijn CAP-gegevens zijn weeralarmen in Nieuw-Zeeland<\/A>, die twee keer per dag worden vernieuwd. De feed zal geen vermeldingen bevatten als het weer goed is 😉<\/span>. CAP is XML-gebaseerd en wordt gemakkelijk verwerkt door ArcGIS Data Interoperability<\/STRONG>. Ik wil de status van de CAP-feed spiegelen naar een hosted feature layer in ArcGIS Online.<\/P>Hieronder staat een voorbeeld van een waarschuwingsstatuskaart in ArcGIS Pro, voor 9 oktober 2024. De blogdownload bevat een paar CAP-waarschuwings-XML-documenten, als je wat ruwe data wilt zien.<\/P>CAP Weather Alerts<\/span><\/span><\/P>Zoals de labeling suggereert, is het gele object een waarschuwing voor harde wind, de blauwe lijnen (ingezoomd, oranje polygonen) zijn sneeuwwaarschuwingen voor wegen door enkele bergpassen. Als we inzoomen op het meest noordelijke object kunnen we het inspecteren. Het is Lewis Pass, dat twee geothermische bronresorts langs de route heeft, dus als je vertraging oploopt door sneeuw kun je comfortabel wachten!<\/P>Snow alert through Lewis Pass<\/span><\/span><\/P>Enkele dagen later is er een waarschuwing voor zware regen:<\/P>Fiordland rain watch<\/span><\/span><\/P>Voor het gebied komt regen slechts in één type voor - zwaar - dus het is geen verrassing dat de voorspelling van een upgrade van waarschuwing van watch naar warning (oranje) waar werd bij de volgende update na 12 uur, plus dat er nieuwe waarschuwingen arriveerden:<\/P>West Coast rain<\/span><\/span><\/P>En de volgende dag - nog meer weer!<\/P>Yet more weather!<\\/span><\\/span><\\/P>Regelmatige updates zoals deze zijn een klassiek geval voor een geplande webtool, feitelijk zo werden de gegevens voor mij 's nachts ververst. Hoe ziet die ETL eruit? <\\/P>Mijn datastroom onderhoudt een hosted feature layer in ArcGIS Online vanuit de huidige CAP-status. Mijn ETL-tool is vrij eenvoudig, hier is hij (ook in de blogdownload, vereist ArcGIS Data Interoperability voor Pro 3.4 en ArcGIS Enterprise 11.4 als gedeeld als webtool). <\\/P>CAP alert ETL tool<\\/span><\\/span><\\/P>Eerst wordt een token gegenereerd (met behulp van een EsriOnlineTokengetter<\\/A>, voor een lokaal portal zou je een EsriPortalTokenGetter<\\/A> gebruiken), dan leest de bovenste stroom de RSS-feed en schrijft een upsert<\\/STRONG>-transactie naar de doel-feature layer - nieuwe waarschuwingen worden nieuwe features en eventuele gegevenswijzigingen aan bestaande features worden toegepast. Upsert-ondersteuning vereist dat de data een uniek geïndexeerd niet-nul veld in de laag hebben, zoals besproken in een eerdere blog<\\/A>. De onderste stroom test op verlopen waarschuwingen en verwijdert deze. Let op dat de ETL-tool geen parameters heeft, omdat de invoer-RSS-feed en uitvoer-feature layer niet veranderen en daarom niet gepubliceerd hoeven te worden tijdens het maken. <\\/P> Ik laat hier een nieuw,<\\/STRONG> aangeraden<\\/STRONG> ETL-patroon<\\/STRONG><\\/EM> zien voor het onderhoud van hosted feature layers, namelijk het genereren van een portal-token binnen de ETL-tool in plaats van webverbindingen delen<\\/A> met de hostingserver, wat een lastige stap is die we kunnen vermijden. De doel-feature service wordt gelezen en geschreven met behulp van het Esri ArcGIS Server Feature Service<\\/STRONG>-formaat en een meegeleverd token, met de optie om SSL-certificaten te verifiëren uitgeschakeld. Als je beveiligingseisen dit vereisen, moet je een vertrouwd certificaat leveren.
Je kunt elk type geoprocessingtool gebruiken om je geplande webtool te maken - kernsysteemtool, ModelBuilder-tool, Python-scripttool of Spatial ETL-tool. <\/STRONG> Voor mijn blogonderwerp gebruik ik een ArcGIS Data Interoperability Spatial ETL-tool, omdat deze mijn brongegevens kan verwerken, een
Ik laat hier een nieuw,<\\/STRONG> aangeraden<\\/STRONG> ETL-patroon<\\/STRONG><\\/EM> zien voor het onderhoud van hosted feature layers, namelijk het genereren van een portal-token binnen de ETL-tool in plaats van
Nu staat niets je nog in de weg om je ETL te automatiseren!<\/STRONG><\/P>\n <\/P>
@AdamRepsher_BentEar There is some problem with the token getting, if you copy the transformer into a new workspace and try out the Python it might give a clue. Once you establish generateToken isn't working you could open a support call.
@BruceHarold - our ArcGIS Online MFA is not enforced, and the ArcGIS login is still an option.
Hello Adam
It looks like the method used (generateToken) in the initial EsriOnlineTokenGetter is now blocked in your environment. This can happen if the security environment is altered, for example by enforcing multi-factor authentication (MFA). If this cannot be undone I think the tool will need to be refactored so the FeatureReader and FeatureWriter transformers use a web connection that is shared to the server, and the EsriOnlineTokenGetter is replaced with a simple Creator to kick things off.
You are not alone, MFA is enforced for me and I see the same error with the EsriOnlineTokenGetter custom transformer.
Hi @BruceHarold !I have recently upgraded Pro (3.5.2) and Enterprise (11.5) - and I have been having issues with Python exceptions in any new FME workspace that I create. In your WebToolScheduling project, I immediately hit this:
Any suggestions would be helpful.
Current FME version: FME 2025.0.0.0 (20250228 - Build 25208 - WIN64)
OS Locale Name : en_US
OS Locale Encoding : windows-1252
Process Encoding : UTF-8
I have made sure that both Preferred Python Interpreter (in Options) and Python Compatibility (in the project) are set the same.--Adam
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.