Automation with ArcGIS Enterprise

Automation in the context of ArcGIS Enterprise can refer to two separate areas of functionality. First is IT automation, deployment automation or software automation, which usually refers to the automation options available to automate a deployment of software to an IT system, re-deploy based on some trigger, or automate the upgrade or modification of this system. This type of automation is covered specifically in a separate topic in this pillar, Software deployment automation.

A second type of automation (and the focus of this section) is content and workflow automation. Once the software is deployed, a wide array of manual workflows can be developed and conducted, but many systems truly reach enterprise adoption and impact when those foundational workflows are automated, to remove user input and improve consistency. ArcGIS Enterprise connects closely with other applications and tools in ArcGIS to enable user workflows. The software introduces several additional automation approaches that can assist with workflow automation and efficiency improvements for enterprise systems.

Notebook Server

ArcGIS Notebook Server, an optional federated server role in ArcGIS Enterprise, supports the ability to create and run Python Notebooks for users with appropriate privileges.  

Notebooks can be authored, tested, and run interactively, but can also be scheduled to run at a fixed time in the future, either once or on a recurring basis. Creating tasks to schedule notebooks allows you to automate routine workflows, run data-intensive processes during off-peak usage hours, and regularly update datasets. For example, you can schedule a notebook to do the following:

  • Import data from an online source that updates monthly, automatically clean the data and apply necessary transformations, and move the data to your workspace.
  • Run a big data analysis workflow that requires heavy processing power overnight, when your machine resources are otherwise unused.
  • Manage users who have created accounts in your portal during the past week and send the list to you via email.

Notebook server can also be used within an ArcGIS Enterprise deployment as the receiver for ArcGIS Enterprise content, user and sharing webhooks, which can be used to trigger a notebook without any user interaction. See ArcGIS Notebook Server for details.

Geoprocessing services

Geoprocessing services, which are created from a specifically defined model run or Python script, are another capable automation option. Geoprocessing services provide the advantage of code running on a server, which might open up options for more connectivity, access to certain data, or performance improvements, and can run for long periods of time in asynchronous mode, performing complex workflows while the calling user or system checks back regularly for job completion. Geoprocessing services can play two roles in automation - in their most common role, the service can be used as a step in a larger process, triggered by an external or internal system that makes a RESTful request to initiate a geoprocessing job. Geoprocessing services are often used for some degree of process control or execution management, and can make requests to other systems, automate data edits or management, or even call other geoprocessing services from within another service. Geoprocessing services natively support synchronous or asynchronous jobs through web requests, so they can be used as part of a larger automation pattern by triggering a job to run.

Secondly, when a geoprocessing service finishes a job, a webhook can be sent (with success, failure, or cancellation) to a remote endpoint, which can be used to automate further steps, notify team members, or continue on to another step of a larger automation process. More information on geoprocessing service webhooks and payload can be found in the webhook payloads documentation.

ArcGIS API for Python

Automation can also be used in ArcGIS Enterprise to populate the portal with users, groups, and items, as well as manage them on an ongoing basis. Tasks such as user invitations, group creation, and content sharing can be automated. This can be accomplished using ArcGIS API for Python, which allows ArcGIS administrators, publishers, and users to use the Python environment to automate their workflows and perform repetitive tasks using scripts. Esri provides a variety of samples within the ArcGIS API for Python documentation including notebooks for automating analytics or content creation and management.