Workforce Scripts

A set of Python scripts and notebooks to help administer and configure Workforce projects.

Notebooks

Several example Jupyter notebooks are provided to demonstrate some more advanced workflows that are possible via the ArcGIS API for Python and Workforce:

Notebooks used for previous demos are also available:

In addition, we have uploaded our AGOL-compatible notebooks into a publicly accessible group of Hosted Notebooks in ArcGIS Online

Scripts

Supports:

  • Python 3.6+
  • Python API for ArcGIS 1.8.3+

The Workforce team released a new version of the app supporting offline-enabled Projects in July 2020. To work with those projects in Python and deploy the corresponding scripts in this repo, users will need to update their version of the Python API to 1.8.3. This can be downloaded in Conda prior to 1.8.3's official release via:

conda install -c esri/label/prerelease -c esri arcgis

A set of Python scripts using the ArcGIS API for Python v1.8.3+. These scripts support Workforce in both ArcGIS Online and ArcGIS Enterprise.

Note that some may scripts may work with a Python API for ArcGIS version that is less than 1.8.3 but this cannot be guaranteed.

Features

FunctionalityScript
Create Assignment Typescreate_assignment_types.py
Import Workersimport_workers.py
Import Dispatchersimport_dispatchers.py
Create Assignments From CSVcreate_assignments_from_csv.py
Copy Assignments To Feature Servicecopy_assignments_to_fs.py
Export Assignments to CSVexport_assignments_from_csv.py
Check Assignment Completion Locationcheck_completion_location.py
Delete Assignmentsdelete_assignments.py
Delete Assignment Typescreate_assignment_types.py
Assignment Monitor (Slack Integration)assignment_monitor.py
Migrate to Version 2 Projectmigrate_to_v2.py
Reset Stale Workersreset_stale_workers.py
Report Incomplete Assignments with Work Ordersreport_incomplete_assignments_with_work_orders.py
Report Complete Assignments without Work Ordersreport_complete_assignments_without_work_orders.py
Create Default Ops Dashboardcreate_ops_dashboard.py
Create Joined Viewcreate_joined_view

Instructions

  1. Install ArcGIS API for Python package via Conda as described here.
  2. Clone or download this repository
  3. In terminal/cmd navigate to the scripts folder
  4. Create Conda environment
  5. Install Anaconda
  6. Run conda env create --file environment.yml to create the virtual environment with the correct dependencies
  7. Run conda activate workforce-scripts to activate the environment
  8. (Optional - dev only) Configure pre-commit to run flake8 linting on pushes
  • pre-commit install --hook-type pre-push

To run in ArcGIS Notebooks:

  1. Visit our AGOL Hosted Notebooks group
  2. Click on "Content"
  3. Choose a notebook you'd like
  4. Click on the thumbnail for "Open Notebook" to open in ArcGIS Notebooks

Resources

Issues

Although we do our best to ensure these scripts and notebooks work as expected, they are provided as is and there is no official support.

If you find a bug, please let us know by submitting an issue.

Contributing

Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.

Licensing

Copyright 2020 Esri

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

A copy of the license is available in the repository's LICENSE file.

GitHub - Esri/workforce-scripts: A set of scripts to help administer Workforce projects.
A set of scripts to help administer Workforce projects. - GitHub - Esri/workforce-scripts: A set of scripts to help administer Workforce projects.