Create Spatial Views

Rather than using Join Layers to create the Calls and Load Points layers, you can use Spatial Views. All other Responder layers are created using XY Event Layers or Query Layers. With this method, Responder users may see an increase in performance.

IMPORTANT:

Feeder Manager 2.0: Nested queries do not always behave as expected.

  1. First, have your Database Administrator create Spatial Views in the database.

    Sample Oracle Script

    Calls:

    sdetable -o create_view -T CALLS_SPVIEW -t ARCFM.SERVICEPOINT,RESPONDER.RX_CALLS –c
    ARCFM.SERVICEPOINT.OBJECTID,RESPONDER.RX_CALLS.ID,RESPONDER.RX_CALLS.DEVICE_OID,RESPONDER.RX_CALLS.DEVICE_FCID,
    RESPONDER.RX_CALLS.INCIDENT_ID,RESPONDER.RX_CALLS.CUSTOMER_ACCOUNT,RESPONDER.RX_CALLS.TROUBLE_AT_ACCOUNT -w
    "ARCFM.SERVICEPOINT.OBJECTID=RESPONDER.RX_CALLS.DEVICE_OID" -i sde:oracle10g -u username -p password@server -s server
    

    Load Points:

    sdetable -o create_view -T LOADPOINTS_SPVIEW -t ARCFM.SERVICEPOINT,RESPONDER.RX_LOADPOINTS 
    -c ARCFM.SERVICEPOINT.OBJECTID,RESPONDER.RX_LOADPOINTS.ID,RESPONDER.RX_LOADPOINTS.DEVICE_OID,RESPONDER.RX_LOADPOINTS.DEVICE_FCID,
    RESPONDER.RX_LOADPOINTS.INCIDENT_ID -w "ARCFM.SERVICEPOINT.OBJECTID=RESPONDER.RX_LOADPOINTS.DEVICE_OID" -i sde:oracle10g 
    -u username -p password@server -s server
    

    Sample MSSQL Script

    If you are using one database setup for your GIS and Responder data, then this sample SQL script will help you create the spatial view.

    For MSSQL, create a view using SQL Server Management Studio. Below is a sample SQL that the view can run for the Loadpoints spatial view:

         SELECT gisadmin.SERVICEPOINT.OBJECTID, gisadmin.SERVICEPOINT.Shape, Responder.RESPONDER.RX_LOADPOINTS.ID, Responder.RESPONDER.RX_LOADPOINTS.DEVICE_OID,
         Responder.RESPONDER.RX_LOADPOINTS.DEVICE_FCID, Responder.RESPONDER.RX_LOADPOINTS.INCIDENT_ID FROM Responder.RESPONDER.RX_LOADPOINTS INNER JOIN
         gisadmin.SERVICEPOINT ON Responder.RESPONDER.RX_LOADPOINTS.DEVICE_OID = gisadmin.SERVICEPOINT.OBJECTID
    NOTE: The shape field is also included to make it a spatial view.

    Once your Database Administrator has created these views in the database, you can add them to your Responder_cached group in ArcMap.
           

    If you have separate databases for your GIS and Responder data, then use the following steps:

    1. Create views in the GIS database that point to tables in the Responder database. For MSSQL, create a view using SQL Server Management Studio. Below is a sample SQL that the view can run for the Calls spatial view:
      create view GISDATABASENAME.RESPONDERDATAOWNER.rx_calls_view as select * from RESPONDERDATABASENAME.RESPONDERDATABASEOWNER.rx_calls
    2. Create the Loadpoints spatial view:
      create view GISDATABASENAME.RESPONDERDATAOWNER.rx_loadpoints_view as select * from RESPONDERDATABASENAME.RESPONDERDATABASEOWNER.rx_loadpoints
    3. Create the spatial views.
      sdetable -o create_view -T calls_spview -t GISDATABASENAME.GISDATABASEOWNERNAME.servicepoint,GISDATABASENAME.RESPONDERDATABASEOWNER.rx_calls_view -c GISDATABASENAME.GISDATABASEOWNERNAME.servicepoint.shape,GISDATABASENAME.GISDATABASEOWNERNAME.servicepoint.objectID,GISDATABASENAME.GISDATABASEOWNERNAME.servicepoint.phasedesignation,GISDATABASENAME.RESPONDERDATABASEOWNER.rx_calls_view.ID,GISDATABASENAME.RESPONDERDATABASEOWNER.rx_calls_view.device_OID,GISDATABASENAME.RESPONDERDATABASEOWNER.rx_calls_view.device_FCID,GISDATABASENAME.RESPONDERDATABASEOWNER.rx_calls_view.incident_ID,GISDATABASENAME.RESPONDERDATABASEOWNER.rx_calls_view.customer_account,GISDATABASENAME.RESPONDERDATABASEOWNER.rx_calls_view.trouble_at_account -w "GISDATABASENAME.GISDATABASEOWNERNAME.servicepoint.objectID=GISDATABASENAME.RESPONDERDATABASEOWNER.rx_calls_view.device_OID" -i sde:sqlserver:DATABASEINSTANCENAME -u RESPONDERDATABASEOWNER -p RESPONDERDATABASEOWNERPASSWORD -s DATABASESERVERNAME.DOMAINNAME.COM -D GISDATABASENAME
      sdetable -o create_view -T loadpoints_spview -t GISDATABASENAME.GISDATABASEOWNERNAME.servicepoint,GISDATABASENAME.RESPONDERDATABASEOWNER.rx_loadpoints_view -c GISDATABASENAME.GISDATABASEOWNERNAME.servicepoint.shape, GISDATABASENAME.GISDATABASEOWNERNAME.servicepoint.objectID, GISDATABASENAME.RESPONDERDATABASEOWNER.rx_loadpoints_view.ID, GISDATABASENAME.RESPONDERDATABASEOWNER.rx_loadpoints_view.device_OID, GISDATABASENAME.RESPONDERDATABASEOWNER.rx_loadpoints_view.device_FCID, GISDATABASENAME.RESPONDERDATABASEOWNER.rx_loadpoints_view.incident_ID -w "GISDATABASENAME.GISDATABASEOWNERNAME.servicepoint.objectID=GISDATABASENAME.RESPONDERDATABASEOWNER.rx_loadpoints_view.device_OID" -i sde:sqlserver:DATABASEINSTANCENAME -u RESPONDERDATABASEOWNER -p RESPONDERDATABASEOWNERPASSWORD -s DATABASESERVERNAME.DOMAINNAME.COM -D GISDATABASENAME
      NOTE: There cannot be any spaces between table names and column names (after the -t and -c). You have to use -u (username) as responder (the schema owner of the responder tables) and -D is the destination database name (in the example below we use GISDATABASENAME).
    4. Assign permissions.
  2. In ArcMap, right-click Responder_cached on the Display tab and select Add Data.
  3. Browse to and select the views for Calls (e.g., CALLS_SPVIEW) and Load Points (e.g., LOADPOINTS_SPVIEW).

     

  4. Click OK.

For an additional performance improvement, do not display these layers at large scales.

QR code for this page

Was this helpful?