The RightNow Scanner component performs full and incremental scans over a RightNow server, maintaining a snapshot of the server and comparing it with the current content to establish what content has been updated. Updated content is then submitted to the configured pipeline in AspireObjectis attached to Jobs. As well as the URL of the changed item, the AspireObject will also contain metadata extracted from the repository. Updated content is split in to three types: add, update, and delete. Each type of content is published on a different event so that it may be handled by different Aspire pipelines
The scanner reacts to an incoming job. This job may instruct the scanner to start, stop, pause or resume. Typically the start job will contain all information required by the job to perform the crawl. However, the scanner can be configured with default values via application.xml file. When pausing or stopping, the scanner will wait until all the jobs it published have completed before itself completing.
Optionally, the scanner can utilize the services of a Connector Job Status component to update a database with progress and statistics.
RightNow Scanner | |
---|---|
Factory Name | com.searchtechnologies.aspire:aspire-rightnow-connector |
subType | defaut |
Inputs | AspireObject from a content source submitter holding all the information required for a crawl |
Outputs | Jobs from the crawl |
The scanner recognizes the following parameters on the control Job:
Element | Type | Description |
---|---|---|
id | int | The database id from the aspire_content_sources table. |
@crawlId | int | The crawl id from the content database. |
@action | String | The control job action - start, stop, pause or resume. |
@actionProperties | String | Properties for the crawl - full or incremental. |
connectorSource/displayName | String | The name of the crawl. |
The scanner recognizes the following configuration parameters:
Element | Type | Description |
---|---|---|
objectUrl | String | The URL that links the object through its id. This is the URL that displays the object. Add a String wildcard (%s) where the id should be placed in this URL. |
username | String | The username to use when accessing RightNow server. |
password | String | The password to use when accessing RightNow server. |
wsdlLocation | String | URL to the Right Now WSDL. Note: It is the URL without specifying the WSDL version (Example: <domain>.custhelp.org/cgi-bin/<interface>.cfg/services/soap) |
objectType | String | Define the object type to be fetched. For example 'Answer', 'Incident', etc. To see the complete list of objects, go to RightNow Object List |
crawlQuery | String | The query (see ROQL Configuration) to discover new objects. This query should contain only the necessary information for the connector to determine if the content has changed or not and check if the there are attachments. Use a decimal integer wildcard (%d) to make an dynamic offset for the query. For example: SELECT ... FROM ... OFFSET %d |
indexQuery | String | The query (see ROQL Configuration) to fetch the all the information required for indexing. There must be a WHERE clause with a condition that compares the object 'id' with the id wildcard ({id}), that the connector is eventually going to replace with the actual id values. For example: SELECT ... FROM ... WHERE id={id} |
subQueries/subQuery | String | Add description to subQuery (see ROQL Configuration). Also need to be restricted to the object 'id' with the id wildcard ({id}), that the connector is eventually going to replace with the actual id values. For example: SELECT ... FROM ... WHERE id={id} |
For crawlQuery, indexQuery and subQuery parameters, ROQL (RigthNow Object Query Language) syntax is used. For more information about how to build ROQL queries, please visit the official documentation:
This component publishes to the onAdd, onDelete and onUpdate, so a branch must be configured for each of these three events.
Element | Type | Description |
---|---|---|
branches/branch/@event | string | The event to configure - onAdd, onDelete or onUpdate. |
branches/branch/@pipelineManager | string | The name of the pipeline manager to publish to. Can be relative. |
branches/branch/@pipeline | string | The name of the pipeline to publish to. If missing, publishes to the default pipeline for the pipeline manager. |
SELECT Answer.id, Answer.updatedTime, Answer.FileAttachments.FileAttachmentList.ID FROM Answer WHERE Answer.FileAttachments.FileAttachmentList.ID IS NOT NULL AND (NOT StatusWithType.Status.Name='Private') LIMIT 10000 OFFSET %d;
SELECT Answer.id as id, Answer.Name as name, Answer.Question as question, Answer.Solution as solution, Answer.Summary as summary, Answer.UpdatedTime as lastmodified, Answer.AssignedTo.Account.name as AssignedTo, Answer.StatusWithType.Status.name as type, Answer.StatusWithType.StatusType.name as statustype, Answer.AnswerType.name as recordMimeType, Answer.URL as url, Answer.Keywords as keywords FROM Answer WHERE id={id};
SELECT Answer.AccessLevels.namedidlist.name as accessLevels FROM Answer WHERE id={id};
SELECT Answer.FileAttachments.id as attachment FROM Answer WHERE id={id};