Skip to content

Create a Task


Tasks exist in the context of the service that provides the actions executed on it. Like repositories, the service name is part of the endpoint URL. For document creation see the Create a Document use case.


Tasks are created by a POST request to the service endpoint URL. The request body contains the properties and metadata described in Tasks. Only the name property is mandatory.

Example - endpoint URL for creating a task in the operator-p4 service

/v1/services/operator-p4/tasks

The result will be the created task including administrative properties such as the task ID (tid property) and the href URL.


Code Examples

Bash

Run the Create a Document example first and call the script with the returned href.

#!/bin/bash

if [ -z $1 ]; then
  echo "Please call with href as parameter"
  exit 0
fi

# !Assuming $TOKEN contains a valid JWT access token!
AUTH="Authorization: Bearer $TOKEN"
JSON="Content-Type:application/json"

# create print task for operator-p4 service
TASK=$(jq -c -n '{
  "name":"My Task",
  "metadata": {
    "description": "Print task",
    "Printer": "LocalPrinter"
  },
  "lists": {
    "input": {
      "embedded": {
        "listItems": [
          {
            "href": "/v1/services/operator-fileupload/repo/'$1'"
          }
        ]
      }
    }
  }
}')
RES=$(curl -k -s -X POST -H "$AUTH" -H "$JSON" -d "$TASK" "https://localhost:3008/v1/services/operator-p4/tasks")
TASKID=$(echo "$RES" | jq -r '.tid')
echo "Created task with taskId $TASKID"

JavaScript

Run the Create a Document example first and call the function with the returned href.

'use strict';

const request = require('request-promise-native');

const createTask = async function(token, href) {
  // create print task for operator-p4 service
  let req = {
    url: 'https://localhost:3008/v1/services/operator-p4/tasks',
    headers: {
      Authorization: `Bearer ${token}`
    },
    body: {
      name: 'My Task',
      metadata: {
        description: 'Print task',
        Printer: 'LocalPrinter'
      },
      lists: {
        input: {
          embedded: {
            listItems: [
              {
                href
              }
            ]
          }
        }
      }
    },
    resolveWithFullResponse: true,
    json: true,
    strictSSL: false
  };
  let res = await request.post(req);
  const taskId = res.body.tid;
  console.log(`Created task with taskId ${taskId}`);
};

Special Metadata Values

DPF Connector

For the DPF connector there is a special task metadata value DpfFileNameType to control the filename creation of the document within the DPF servers job directory. The value is only set for the respective task.

Available values:

  • unique

    Each filename is created by using a UUID version 4 string as basename followed by the document index and an extension (e.g. 5794d469-f734-4603-a00e-086af643dcf4_0.pdf).

  • original

    The name property of the document is used as filename. The task creator is responsible that the same document name is not used multiple times in the task input list.

Default: unique

Example

{
  "name":"My DPF Task",
  "panelType":"dpf4convert",
  "metadata": {
    "DpfFileNameType": "original"
  },
  "lists": {
    "input": {
      "embedded": {
        "listItems": [
          {
            "href": "/v1/services/operator-fileupload/repo/'$1'"
          }
        ]
      }
    }
  }
}

Back to top