Select to view content in your preferred language

Practical GIS automation for non-IT users

672
1
04-20-2022 06:36 AM
Bud
by
Honored Contributor

I'm a data owner in an Oracle 18c GDB, but I'm not in I.T.

I'm looking for server-based scheduled automation options that I can manage myself, instead of waiting on IT for every little thing.

Requirements:

  1. Weekly: Scheduled emailed notifications (IBM example -- available to all users)
    1. GIS use case: If there are any construction projects in a FC where the status is FUTURE and the date is < sysdate, then send me an email. Those records are out-of-date and need investigation.

  2. Nightly: Scheduled jobs to pre-compute fields and tables (IBM example -- available to power users)
    1. GIS use case: Precompute a HAS_CURVES field in a polyline FC, since we can't get that information via Arcade attribute rules or SDE.ST_GEOMETRY.

Esri options:

If I understand correctly, the current Esri automation offerings don't fit this use case:

  • ArcGIS Notebook Server is generally only used by IT staff. That might not be true for all organizations, but it is for mine...and that's beyond my control.
  • WebHooks are intended for IT staff, not available to power users like me.
  • Scheduled geoprocessing tools are run on the user's local PC and are only run when the PC is turned on and logged in. That's not what I want. I'm looking for something more robust/long-term; something that's server-based.
  • My organization doesn't have any 3rd-party automation tools like FME. 

So, I've come up with some alternative ideas for solving requirements #1 & #2 above:

  1. Weekly: Scheduled emailed notifications
    1. Create a table in the Oracle GDB called SKD_NOTIFICATIONS.
      • Fields: VIEW_NAME, RECIPIENTS (comma delimited)
    2. Create db views to query for rows:
      • CONST_PROJ_ISSUES_VW: Select construction projects in a FC where the status is FUTURE and the date is < sysdate.
    3. Create a Python script that would loop through each record in SKD_NOTIFICATIONS. For each record, if the corresponding db view has any rows, then send the recipients a notification email: "There are records in CONST_PROJ_ISSUES_VW that need to be investigated."
    4. IT: Set up a scheduled job on the GIS server (using Windows Task Scheduler) that would run the Python script on a weekly schedule.
      • The Python script would use a .SDE connection on the GIS server to connect to the GDB.
      • Alternatively, if IT doesn't like the Python option, then we could re-write the script as a PL/SQL procedure and use Oracle Scheduler to run it on a schedule.
    5. IT: Configure SMTP Server so that the script can send emails via MS Outlook Exchange or Office 365.

      Complete. The steps above would be used to send GIS email notifications on a weekly schedule.

  2. Nightly: Scheduled jobs to pre-compute fields and tables
    1. IT: Create a shared network folder on the GIS server (I'd have write access).
    2. Create Python scripts in the folder that precompute GIS fields and tables.
      • Example: Precompute a HAS_CURVES field in a polyline FC.
      • The Python scripts would use a .SDE connection on the GIS server to connect to the GDB.
    3. IT: Set up a scheduled job on the GIS server (using Windows Task Scheduler) that would loop through the Python scripts in the folder and run them.

      Complete. The steps above would be used to pre-compute data on a weekly schedule.

Questions:

Does anyone have experience with that kind of thing? Would either of those ideas work?
Or can you think of something better?

 

0 Kudos
1 Reply