Trigger service

The web service is reachable by this HTTP URL:

			/DataCleaner-monitor/repository/{tenant}/jobs/{job}.trigger
		

The response from the trigger web service is a JSON document that looks like this:

			{
			  "status":"PENDING",
			  "logOutput":null,
			  "endDate":null,
			  "beginDate":null,
			  "resultId":"Customer completeness-1349876418933",
			  "triggeredBy":"admin"
			}
		

Optionally you can also add these parameters:

Table 17.1. Job triggering HTTP parameters

ParameterDescription
blockSet to 'true' if the server should wait until the job has executed before responding. This will ensure that the client is able to read a 'status' which is either 'SUCCESS' or 'FAILURE' (unless a timeout occurs).
timeoutMillisTo be used in combination with 'block'. Set this to the max number of milliseconds to wait before responding.

Using these parameters, a typical response will look like this:

			{
			  "status":"SUCCESS",
			  "logOutput":
			    "2012-10-10 16:04:02 - Job execution BEGIN\n
			    2012-10-10 16:04:02 - Row processing of table Table[name=CUSTOMERS,type=TABLE,remarks=null] BEGIN\n
			     - Query: SELECT \"CUSTOMERS\".\"PHONE\", \"CUSTOMERS\".\"POSTALCODE\", \"CUSTOMERS\".\"ADDRESSLINE1\",
			    \"CUSTOMERS\".\"COUNTRY\", \"CUSTOMERS\".\"CUSTOMERNUMBER\", \"CUSTOMERS\".\"CONTACTFIRSTNAME\", \"CUSTOMERS\".\"CITY\",
			    \"CUSTOMERS\".\"CUSTOMERNAME\", \"CUSTOMERS\".\"CONTACTLASTNAME\" FROM PUBLIC.\"CUSTOMERS\"\n
			     - Expected row count: 133\n
			    2012-10-10 16:04:02 - Row processing of table Table[name=CUSTOMERS,type=TABLE,remarks=null] SUCCESS\n
			    2012-10-10 16:04:02 - Result gathered from analyzer: ImmutableAnalyzerJob[name=null,analyzer=Completeness analyzer]\n
			    2012-10-10 16:04:03 - Job execution SUCCESS",
			  "endDate":"Wed Oct 10 16:04:03 CEST 2012",
			  "beginDate":"Wed Oct 10 16:04:02 CEST 2012",
			  "resultId":"Customer completeness-1349877840924",
			  "triggeredBy":"admin"
			}
		

It is possible to override configuration elements. This can be done in three manners: do a text/plain HTTP POST with a body containing key/value pairs, do an application/json HTTP POST with a body containing json, do a multipart/form-data HTTP POST with a properties file.

For instance a HTTP POST where you override the filename of the Customers datastore will look like this:

			POST /DataCleaner-monitor/repository/{tenant}/jobs/{job}.trigger
		

With the 'Content-Type' header 'text/plain' and the body:

			datastoreCatalog.Customers.filename=customers2.csv
		

Or with the 'Content-Type' header 'application/json' and the body:

			{
              "datastoreCatalog.Customers.filename" : "customers2.csv"
            }
		

See Dynamically overriding configuration elements for more information on overriding configuration elements.