Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Introduction

In order to keep the Accela addresses synchronized Accela APO records must be kept  synchronized with EAS addresses , I am proposing that we use a change notification web service.

We have an working example in production. Here is the message format and here is the code.

With - regardless of how we build this it's convenient to think of this as a sort of custom replication service. We've already done this successfully with DBIs AVS as described here and here. With Accela however, we need to insert into and ESRI SDE oracle table.
There While there are a number of ways to do this.
However, it appears that one possible simple seems like the simplest approach is to use the ArcGIS rest API for query, add, and update.

Implementation

I have written most of that code which you can see here. I do not have access to an arcgis server yet - see below for log file output.

Next Steps

Before we can continue with testing we need to do the following.

  •  clean up APO data model on arcgis server
    •  fix timestamp fields
    •  fix field name widths
    •  include address_x_parcel_id
    •  remove unnecessary fields
    •  rename some fields to improve clarity
  •  reload APO data using refactored model
  •  enable arcgis feature service
  •  provide user credentials for EAS user
  •  limit EAS user access to APO table

...

I'd also like to do the following.

  •  design review
  •  code review
  •  discuss strategy for cut-over from AVS to Accela (see this line) (currently hard coding timestamp)

...

JSON Example

Code Block
2012-10-31 14:04:34,340 - XMIT_ACCELA - INFO - posting JSON
2012-10-31 14:04:34,340 - XMIT_ACCELA - INFO - host:accelaGis.sfgov.org
2012-10-31 14:04:34,340 - XMIT_ACCELA - INFO - port:80
2012-10-31 14:04:34,340 - XMIT_ACCELA - INFO - path:/easToAccelaDev/featureService/
2012-10-31 14:04:34,340 - XMIT_ACCELA - INFO - url:/addFeatures
2012-10-31 14:04:34,341 - XMIT_ACCELA - INFO - user:TODO
2012-10-31 14:04:34,341 - XMIT_ACCELA - INFO - password:TODO
2012-10-31 14:04:34,341 - XMIT_ACCELA - INFO - json:
2012-10-31 14:04:34,341 - XMIT_ACCELA - INFO - {
    "geometry": {
        "y": 2110391.1163551975,
        "x": 6005506.037626389
    },
    "attributes": {
        "Y": null,
        "UNIT_TYPE_DESCRIPTION": null,
        "AXP_CREATE": null,
        "LOT_NUM": null,
        "ZIPCODE": null,
        "DISPOSITION_DESCRIPTION": null,
        "STREET_TYPE": null,
        "ADDRESS_BASE_ID": 483692,
        "AXPACTIVATE_CHANGE_REQUEST_ID": null,
        "ADDRESS_BASE_CHANGE": null,
        "FLOOR_DESCRIPTION": null,
        "ADD_ACTIVATE_CHANGE_REQUEST_I": null,
        "BLOCK_NUM": null,
        "BLK_LOT": null,
        "ADDRESS_BASE_CREATE": null,
        "BASE_ADDRESS_SUFFIX": null,
        "AXP_RETIRE": null,
        "ADD_RETIRE_CHANGE_REQUEST_ID": null,
        "AXP_LAST_CHANGE": null,
        "OBJECTID": null,
        "BASE_ADDRESS_NUM": null,
        "CNN": null,
        "X": null,
        "ADDRESS_BASE_FLG": null,
        "UNIT_NUM": null,
        "MAILABLE_FLG": null,
        "BASE_STREET_NAME": null,
        "ADDRESS_BASE_RETIRE": null,
        "SUB_ADDRESS_CREATE": null,
        "AXP_RETIRE_CHANGE_REQUEST_ID": null,
        "SUB_ADDRESS_ID": 725566,
        "ADD_UPDATE_CHANGE_REQUEST_ID": null,
        "SUB_ADDRESS_RETIRE": null,
        "STREET_SEGMENT_ID": null,
        "COMPOSITE_ADDRESS": null
    }
}