Pre-requisite

The following are the pre-requisites for opening query results in an external application:

Application Linking is disabled by default in Spectrum Spatial Analyst . You can enable Application Linking by performing given steps:

  1. Add/update the following properties in controller.properties (available at ANALYST_INSTALL_LOCATION/customerconfigurations/analyst) of Spectrum Spatial Analyst.
    applicationLinkingEnabled=true
    applicationLinkingHostIP=127.0.0.1 
    applicationLinkingHostPort=9001,
    shortCircuitApplicationLinkingRegistration=true

    Spectrum Spatial Analyst server needs to be restarted for changes in these properties to be effective.

    Note: Port can be changed as per port availability value other than 9001. Please run your node server on port configured in controller.properties only. In order to change port of ApplicationLinking please change applicationLinkingHostPort value in controller.properties to desired PORT_NUMBER value instead of default 9001.
  2. Browser Registration Application Linking (Optional)
    Once the application linking is enabled by the above step, this functionality is available to all the users who have installed the application linking utility on their computers. This can be further fine-controlled by mandating the browser registration step as mentioned below.
    1. Set shortCircuitApplicationLinkingRegistration=false in controller.properties of Spectrum Spatial Analyst. By default, this is set to true. If this flag is set to false, then the user will not be able to use Application Linking without going through registration process.
    2. Login to Spectrum Spatial Analyst from the machine where Application Linking needs to be used.
      Note: Chrome and Firefox are supported.
    3. Open the new browser tab and key in below URL:
      http://<Analyst_Host>:8010/connect/analyst/registerAppLinkingUser.jsp
    4. Click on Register button.
    5. Once successful, close this browser tab and save the response of registration for port reference.
    6. Log out of Spectrum Spatial Analyst .
      Note: Application Linking registration is sensitive to the browser information. It internally uses browser fingerprint to identify browser uniquely, thus enabling Application Linking on given browser for user. If there are any changes in browser fingerprint like addition/removal of plugin, upgrade of browser etc. You may need to re-register through AppLinking registration process. In case you don’t want to use Application Linking anymore, please contact Spectrum Spatial Analyst administrator with the Hashcode key received as a part of successful registration response.

    Deregistration of Application Linking User

    To de-register user for Application Linking, Analyst admin needs to locate the file Named RegisterAppLinkingUsersFileStore.txt under analyst folder in customer configuration typically (ANALYST_INSTALL_LOCATION/CustomerConfiguration/analyst). Take the key provided by user who wants to get deregistered. Locate that key in file store and remove it. No need to restart the server. Second time when user signs in to analyst Application Linking will not be visible to the user.

Application Linking Setup
  1. Open AppLinking.xml and set the properties given below to their appropriate values:

    LinkOutFileLoc location of Link-out file, where node generated Link-out file will be kept.

    LinkInFileLoc location of linkin file, where Generic Link Framework/External Application Bridge generated Link-in file will be kept and watched by Node server.

    Note: The LinkInFileLoc and LinkOutFileLoc must be at two different locations.
Link-outs
  1. LinkOuts tag contains list of Link-out against each table. You must configure them appropriately. A tableName is corresponding to tables on Spectrum Spatial Analyst side.
  2. Name attribute of Link-out is the name given during configuration of Link-out in Generic Link Framework/External Application Bridge.
  3. BindColumn is the column of table on Spectrum Spatial Analyst side whose value will be passed as a part of selectionId.
  4. StaticArgs is a tag where a set of Static Arguments can be specified for a particular LinkOut. Sample StaticArgs configuration will look like –
    <StaticArgs>                          
     <Value>Key1=value1</Value>
     <Value>Key2=value2</Value>                         
     <Value>debug</Value>              
    </StaticArgs>

    Provisioned values can be in from of “key=value” pair or constants like ‘debug’. Exactly constants are not known but the functionality has been developed to ingest value mentioned between Value tag under normal circumstances. Functionality works as expected when Static Arguments are entered either as Key=value pair or a plain constant (which gets interpreted either by intermediate application, for example- Generic Link Framework/External Application Bridge).

    Static Arguments are per LinkOut, so for each LinkOut tag there can be a set of Static Arguments. There is no as such upper limit defined on number of static arguments that can be provided.

    Note: Static Arguments are not applicable for the application link-in flow.
  5. Target and ExternalApp are for providing location and name of external application for which the application Link-outs are configured.
  6. Title specifies a friendly name or relevant text for a LinkOut. Text provided here will be displayed in Connect wherever applicable (For example, in LinkOut drop-down and on callouts).
Link-ins
  1. LinkIns tag holds set of Link-in for Node server functioning. LinkIn name is name of Link-in configured in Generic Link Framework/External Application Bridge.
  2. MapConfig tag holds Name of MapConfig whch is used to locate configuration file representing current workspace view in Spectrum Spatial Analyst .
    Note: MapConfig tag is deprecated in applinking.xml from SSA 8.0 but for old connect to have LinkIn working you should have applinking.xml with MapConfig.

    If you create applinking.xml for LinkIn without MapConfig, it will only work with new Mobile interface. If you create applinking.xml for LinkIn with MapConfig tag, it will only work with old connect interface.

    Valid LinkIn config for old connect interface
    <LinkIn name="Asset_Parks"><!--LinkIn name is a unique identifier -->        
     <MapConfig>defaultmap</MapConfig>
     <Table>/QA-Maps/NamedTables/Roads</Table>          
     <!-- The Column from where we will pick the Selection ID-->   
     <BindColumn>Central_Asset_Id</BindColumn> 
     <Title>Title for LinkIn 2.</Title>
                 </LinkIn>
    Valid linkin config for new mobile interface
    <LinkIn name="Asset_Parks"> <!--LinkIn name is a unique identifier -->   
    <Table>/QA-Maps/NamedTables/Roads</Table>          
    <!-- The Column from where we will pick the Selection ID-->   
     <BindColumn>Central_Asset_Id</BindColumn> 
    <Title>Title for LinkIn 2.</Title>
       </LinkIn>
  3. Table tag represents the table which will be queried for getting more information about the link-in data in Spectrum Spatial Analyst.
  4. BindColumn is the column of the table whose value will be matched with the link-in data in Spectrum Spatial Analyst.
  5. Title specifies friendly name or relevant text for a Link-in. Text provided here will be displayed in Spectrum Spatial Analyst in Search Result panel when a particular Link-in event gets successfully fired into Connect).