Job Delivery Service

   Journey Manager (JM) The transaction engine for the platform.  |    System Manager / DevOps  |  All versions This feature is related to all versions.

Manager allows you to create a job delivery service, which performs a delivery of form submitted data. Unlike some other service types like Fluent Function or Job Action, the job delivery doesn’t require you to write any code. You simply give your service a name and indicate which delivery channel it’s supposed to tickle when invoked. When your collaboration job has done all the things you need doing, finish off with a step that invokes your job delivery service.

You can create and update a job delivery service using the Manager UI, as well as Fluent or Core API.

To create a job delivery service:

  1. Select Services > Job Services and click New .
  2. Select job delivery from the Service Type dropdown list. For more information, see service types.
  3. Select a template from the Service Template dropdown list, which can be one of the following:
    • Fluent Job Expiry
    • Groovy Job Expiry
  4. Click Save to update the changes.

To configure a job expiry service:

  1. Locate a job delivery service.
  2. Configure the service definition.
  3. Configure the job definition. You can configure an action to call a Groovy service from a job controller, as shown below.
    {
      "jobDetails": { 
        "name": "Basic Onboarding Job Controller",  
        "version": "4.1.0"
      },
      "jobGroups": [
      ],
      "steps": [
        {
          "name": "Application Start",
          "type": "start",
          "actions": [
            {
              "name": "Handle Submission",
              "type": "Job Form Start",
              "properties": [
                { "name": "Process Message Send Email",  "value": "false" }
              ]
            }
          ],
          "routes": [
            { "name": "Default",  "nextStep": "Deliver" }
          ]
        },
        {
          "name": "Deliver",
          "type": "",
          "actions": [
            {
              "name": "Onboarding Job Delivery",
              "type": "Job Delivery"
            },
            {
              "name": "Application Delivery Wait",
              "type": "Job Delivery Wait"
            }
          ],
          "routes": [
            { "name": "Default",  "nextStep": "Done" }
          ]
        },
        {
          "name": "Done",
          "type": "endpoint"
        }
      ]
    }

    You can see that the job step Deliver has two actions, one of type Job Delivery and another of type Job Delivery Wait. The reason for that is a bit technical. You see, Manager has a Collaboration Job Controller service that runs as a scheduled job and, as its name implies, manages collaboration jobs. It has a separate service called Transaction Processing, which does other stuff. Well, the job delivery is handled by the Transaction Processing service, not the Collaboration Job Controller service, so this wait business is just about the latter waiting for the former. You could think of the Onboarding Job Delivery action as instructing Job Controller to prepare this job for delivery by the Transaction Processor while the Application Delivery Wait action instructs the Job Controller to wait about until the delivery is complete.

  4. Click the Job Services tab to view the Repeating Get Item service used in the action definition.
  5. Click on the service name to open this service's Groovy script.
  6. Click Save to update the changes.

To create a job delivery service using API:

Core API

com.avoka.fc.core.service.job.impl.JobDeliveryService
com.avoka.fc.core.service.job.impl.GroovyJobDeliveryService

For more information, see Core API

Fluent API

com.avoka.fc.core.service.fluent.FluentJobDeliveryService

For more information, see Fluent API

Next, learn how to view job services.