27 January 2016

1. Create Jobs Programmatically

TIF jobs can be created from your java classes. This is done by using com.technia.tif.enovia.client.asynch.CreateNewJob.

Example:

package com.technia.tif.examples;

import com.technia.tif.enovia.client.asynch.CreateNewJob;

public class JobCreator {

    public void createJob() {
        // Input
        String objectId = "1.2.3.4";
        String jobCfg = "tvc:jobcfg/PartData.xml";
        String queue = "part-queue";

        Map<String, String[]> params = new HashMap<>();
        params.put("key", new String[] { "value "});

        // Set exclusive flag as true if you want to trigger a job
        // *only if* there is no other *uncompleted* job triggered
        // with the same combination of object id and job configuration.
        ExclusiveMode exclusiveMode = ExclusiveMode.NON_EXCLUSIVE;

        // Create TIF Job
        CreateNewJob action = new CreateNewJob(exclusiveMode);


        // Object id of the object in context for the job
        action.setObjectId(objectId);

        // Which job to execute
        action.setJobCfg(jobCfg);

        // Optional: Queue to post job on
        action.setQueueName(queue);

        // Optional: Parameters to pass to the job
        action.setParamMap(params);

        // Using request parameters
        // action.setParamMap(RequestUtils.getRequestMap(req));

        // Create the job object
        //
        // NOTE: *In case of exclusive job*, the returned jobObjectId
        // might be null if the job was not triggered!!! See
        // comments regarding exclusive variable.
        String jobObjectId = action.run();
    }
}