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 the following 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 the port configured in controller.properties only. In order to change the port of ApplicationLinking, please change the applicationLinkingHostPort value in controller.properties to the desired PORT_NUMBER value instead of the 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 the registration process.
    2. Log in 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 the 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 each browser uniquely, thus enabling Application Linking on the given browser for the user. If there are any changes in the browser fingerprint like addition/removal of a plug-in, upgrade of browser etc. You may need to re-register through the 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 the successful registration response.

    Deregistration of Application Linking User

    To de-register a user for Application Linking, the Analyst admin needs to locate the file named RegisterAppLinkingUsersFileStore.txt under the analyst folder in customer configuration, typically (ANALYST_INSTALL_LOCATION/CustomerConfiguration/analyst). Take the key provided by the user who wants to get de-registered. Locate that key in file store and remove it. No need to restart the server. The second time when the 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 the configuration of Link-out in Generic Link Framework/External Application Bridge.
  3. BindColumn is the table column 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’. Exact 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 the 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 the location and name of an 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 the name of Link-in configured in Generic Link Framework/External Application Bridge.
  2. MapConfig tag holds Name of MapConfig which 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 the 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 the friendly name or relevant text for a Link-in. Text provided here will be displayed in Spectrum Spatial Analyst in the Search Result panel when a particular Link-in event gets successfully fired into Connect).