# Standard service tasks

Service tasks are actions that finish once the task code is executed, allowing the flow to continue.

This section lists all standard service tasks of Data Mover, with a **description of the service task** itself and the **variables** it includes.

**Standard service tasks - in alphabetical order**

* [Generate Uuid](#generate-uuid)
* [Get Files](#get-files)
* [Get Metadata](#get-metadata)
* [Get Spazio2 Selector](#get-spazio2-selector)
* [Insert Spazio2 SYSTEM Selector](#insert-spazio2-system-selector)
* [Insert Spazio2 USER Selector](#insert-spazio2-user-selector)
* [Local SpProp](#local-spprop)
* [Local VirtualPath SpRm](#local-virtualpath-sprm)
* [Logging (file or syslog)](#logging-file-or-syslog)
* [Now](#now)
* [Raise Business Error](#raise-business-error)
* [Rename File](#rename-file)
* [Republish File](#republish-file)
* [REST Invoker](#rest-invoker)
* [Send Email](#send-email)
* [Set File External Destination](#set-file-external-destination)
* [Set Generic Metadata](#set-generic-metadata)
* [Set Spazio2 Metadata](#set-spazio2-metadata)
* [SOAP](#soap)
* [SubString](#substring)
* [Today](#today)
* [Update Spazio2 Selector](#update-spazio2-selector)
* [Virtual Path From String](#virtual-path-from-string)
* [Virtual Path To String](#virtual-path-to-string)

## Generate Uuid

**Description:** It invokes the Uuid Service that generates a Universally Unique Identifier.

**Variables**

<table><thead><tr><th width="154.00006103515625">Parameter</th><th width="199">Type</th><th width="106">Required</th><th>Description</th></tr></thead><tbody><tr><td>Result variable</td><td>String</td><td>Y</td><td>The workflow variable where the final result will be written</td></tr></tbody></table>

## Get Files

**Description:** This service task retrieves all metadata associated with the file identified by the `File ID` parameter, which corresponds to the fileset ID. If a specific metadata name is specified in the `Single Value` parameter, the service returns only the value of that requested metadata instead of the complete metadata list.

**Triggerable:** No

**Variables:**

<table><thead><tr><th width="136.5555419921875">Parameter</th><th width="129.22216796875">Type</th><th width="106.111083984375">Required</th><th>Description</th></tr></thead><tbody><tr><td>File ID</td><td>Long</td><td>Y</td><td>ID of the file for which metadata must be retrieved.</td></tr><tr><td>List</td><td>String</td><td>Y</td><td>Variable that will contain the list of metadata retrieved for the specified file. <br>Default: <code>filelist</code></td></tr><tr><td>Single Value</td><td>String</td><td>N</td><td>Name of the specific metadata to retrieve. If set, only the value of this metadata is returned.<br>E.g., <code>vfsVirtualPath</code></td></tr></tbody></table>

## Get  Metadata

**Description:** It invokes the GetMetadata Service.

The GetMetadata service task can be used to request metadata from different classes:

* Generic Metadata
* eMail Metadata
* Spazio2 file

**Generic Metadata class**

When selecting the **Generic Metadata** class, the **GetMetadata** service task returns custom metadata and these 3 system metadata: ID\_FILESET, ID\_ROW, and ID\_FILE.\
So, the **GenericMetalist** variable shown below contains the list of all custom metadata and the 3 system metadata:\
{ID\_FILESET=30378, ID\_ROW=178, ID\_FILE=0, genericMetadata1=value1}, \
{ID\_FILESET=30378, ID\_ROW=179, ID\_FILE=0, genericMetadata2=value2} &#x20;

<figure><img src="/files/LFY4lGKAoPV8ufdbZaqy" alt="" width="417"><figcaption></figcaption></figure>

A **single metadata** item can be requested by specifying the name of the requested metadata and the metadata class to which it belongs.\
For example, to obtain the value of the custom metadata item **genericMetadata1** belonging to the **Generic Metadata** class, fill in the variables as follows:

<figure><img src="/files/0yyjIIfipD4wjxbg8OFm" alt="" width="413"><figcaption></figcaption></figure>

The **genericMetadata** variable will contain the value of the **genericMetadata1** custom metadata.\
The **GenericMetadata** variable will contain the 3 system metadata and the **genericMetadata** (custom metadata) of the file:\
{ID\_FILESET=30378, ID\_ROW=178, ID\_FILE=0, genericMetadata1=value1}.

Note that **to get the value of a specific metadata item, you need to know its name**. This is because it is custom metadata and both its name and value have been entered by a user.

**eMail Metadata class**

When selecting the **eMail Metadata** class, the **GetMetadata** service task returns eMail metadata:

<figure><img src="/files/f49XmYaX8gpoLnMZqdr5" alt="" width="418"><figcaption></figcaption></figure>

The **eMailMetalist** variable contains the list of email metadata associated with the file. This list includes both set and empty metadata (whose value is set to null):

{ID\_FILESET=37601, MAIL\_RECEIVED\_DATE=2025-09-08T05:52:55.000Z, MAIL\_SIGN\_CERT=null, MAIL\_SUBJECT=Order 174382238 shipped, MAIL\_BCC=, MAIL\_CERT\_LABEL=null, MAIL\_FROM=<info@bestcarrier.com>, ID\_ROW=10740, ID\_FILE=0, MAIL\_SENT\_DATE=2025-09-08T05:52:55.000Z, MAIL\_TO=<customer23765@home.com>, MAIL\_SIGN\_DN=null, MAIL\_SIGN\_DATE=null, MAIL\_BODY\_BLOB=null, MAIL\_RAW\_SIZE=null, MAIL\_CC=, MAIL\_SIGN\_STATE\_MSG=ATTACHMENT NOT FOUND, MAIL\_SIGN\_STATE=2}

Each metadata name returned in this list can be used in the same service task to obtain the value of a **single metadata**. \
For example, to obtain the value of the **MAIL\_TO** metadata, fill in the variables as follows:

<figure><img src="/files/3od3wy8ElZ6yg08hGoCM" alt="" width="398"><figcaption></figcaption></figure>

The **eMailMetalist** variable contains the **MAIL\_TO** metadata value of the file. In our case, the value is **<customer23765@home.com>**, as you can see in the list of metadata above.&#x20;

**Spazio2 file** **class**

When selecting the **Spazio2 file** class, the **GetMetadata** service task returns all Spazio2 metadata:

<figure><img src="/files/1VbSRzEOJif74NXlWBTS" alt="" width="419"><figcaption></figcaption></figure>

The **Sp2Metalist** variable contains a list of **Spazio2** metadata associated with the file. This list includes both set and empty metadata (whose value is set to null):

{Z\_COMPRESS=null, FILE\_LENGTH=null, FORMAT=null, ORIGIN\_MESSAGE\_FILE\_ID=null, EOR\_EOF=0, USER\_ID=null, CODEPAGE=null, PRIORITY=5, ORIGIN\_QUEUE=null, PUT\_APPLICATION\_TYPE=null, ORIGIN\_INTERNAL\_NUMBER=null, LOCALLY\_EXTERNAL=null, ORIGIN\_ACK\_LEVEL=null, ORIGIN\_CODED\_CHARSET\_ID=null, APPLICATION\_IDENTITY\_DATA=null, USER\_CLASS=CLA1, APPLICATION\_ORIGIN\_DATA=null, DESTINATION\_PATHNAME=null, REPLY\_TO\_QUEUE\_MANAGER\_NAME=null, START\_PUT\_DATE=null, ORIGIN\_USER\_CLASS=SYSP, BINARY\_FILE=0, CORRELATION\_ID=correlationID, ACCOUNTING\_TOKEN=null, ACK\_LEVEL=null, ID\_FILESET=4648, ORIGIN\_CODEPAGE=null, QUEUE\_MANAGER\_NAME=QMgr, SENDER=sender1, ID\_FILE=null, QUEUE\_NAME=Queue1, DESTINATION\_EXTERNAL=1, INTERNAL\_NUMBER=null, NODE\_NAME=nodeName, DESTINATION\_FILENAME=null, LAST\_READ\_DATE=null, PUT\_APPLICATION\_NAME=null, FIRST\_READ\_DATE=null, MESSAGE\_FILE\_ID=null, EXPIRY\_DATE=null, ORIGIN\_ENCODING=null, DESCRIPTION=null, ARRIVAL\_DATE=null, ORIGINAL\_FILENAME=testAcademy1.txt, REPLY\_TO\_QUEUE\_WRITE\_PASSWORD=null, DSTK=null, ADDRESS\_TYPE=0, ID\_ROW=2, REPLY\_TO\_QUEUE\_NAME=null, ORIGIN\_QUEUE\_MANAGER=null, CODED\_CHARSET\_ID=null, REPLY\_TO\_QUEUE\_ADDRESS\_TYPE=0, ENCODING=null, SESSION\_ID=null, ORIGINAL\_FILESIZE=null}

Each metadata name returned in this list can be used in the same service task to obtain the value of a **single metadata**. \
For example, to obtain the value of the **CORRELATION\_ID** metadata belonging to the **Spazio2File** metadata class, fill in the variables as follows:

<figure><img src="/files/DJYM7dysPejhlB5xtZqQ" alt="" width="415"><figcaption></figcaption></figure>

The **sp2metadata** variable contains the **CORRELATION\_ID** metadata value of the file. In our case, the value is **correlationID**, as you can see in the list of all Spazio metadata above. \
To retrieve a specific metadata value, the input in the  **Single Value** variable must match the value in the **Spazio2** metadata list.

**Variables**

These parameters are common to all metadata classes:

| Parameter      | Type   | Required | Description                                                                                                                                  |
| -------------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| File ID        | Long   | Y        | ID of the file from which metadata will be extracted.                                                                                        |
| Single Value   | String | N        | Use this variable to get a single metadata item. Enter the name of the metadata and the metadata class to which it belongs.                  |
| MetaData Class | Enum   | Y        | <p>Metadata class to filter metadata types: <br>- Generic Metadata<br>- eMail Metadata<br>- Ghibli System (do not use)<br>- Spazio2 file</p> |
| List           | String | Y        | List of metadata returned.                                                                                                                   |

## Get Spazio2 Selector

**Description:** It invokes the Sp2GetSelector Service.

**Variables**

| Parameter | Type   | Required | Description                                    |
| --------- | ------ | -------- | ---------------------------------------------- |
| File ID   | Long   | Y        | The ID of the file to get its Spazio2 selector |
| Output    | String | Y        | The output variable name                       |
| Code      | String | Y        | The code selector to be retrieved              |

## Insert Spazio2 SYSTEM Selector

**Description:** It invokes the Sp2InsertSelector Service for area type SYSTEM.

**Variables**

| Parameter | Type   | Required | Description                                    |
| --------- | ------ | -------- | ---------------------------------------------- |
| File ID   | Long   | Y        | The ID of the file to set its Spazio2 selector |
| Code      | String | Y        | The selector code to insert                    |
| Type      | Enum   | Y        | The selector type to insert                    |
| Length    | String | Y        | The selector length to insert                  |
| Name      | String | N        | The selector name to insert                    |
| Value     | String | Y        | The selector value to insert                   |

## Insert Spazio2 USER Selector

**Description:** It invokes the Sp2InsertSelector Service for areatype USER.

**Variables**

| Parameter | Type   | Required | Description                                    |
| --------- | ------ | -------- | ---------------------------------------------- |
| File ID   | Long   | Y        | The ID of the file to set its Spazio2 selector |
| Code      | String | Y        | The selector code to insert                    |
| Type      | Enum   | Y        | The selector type to insert                    |
| Length    | String | Y        | The selector length to insert                  |
| Name      | String | N        | The selector name to insert                    |
| Value     | String | Y        | The selector value to insert                   |

## Local SpProp

**Description:** This service task retrieves the properties from a .properties file configured in the Path parameter and writes them in the Variable parameter with comma-separated pairs.&#x20;

In the .properties file, commented lines are ignored.&#x20;

**Triggerable:** No

**Variables:**

<table><thead><tr><th width="166">Parameter</th><th width="127.199951171875">Type</th><th width="106.1998291015625">Required</th><th>Description</th></tr></thead><tbody><tr><td>Cluster</td><td>Cluster</td><td>Y</td><td>The cluster to be used.</td></tr><tr><td>Path</td><td>String</td><td>Y</td><td>The path where the property file will be read. Example:<br><code>/opt/dataone/data_123.properties</code></td></tr><tr><td>Variable</td><td>String</td><td>N</td><td>A process variable that will be filled in with all comma-separated properties read from the file. Default: <code>property</code>. </td></tr><tr><td>Return Code</td><td>String</td><td>N</td><td>The workflow variable where the final return code will be written. Default: <code>rc</code>.</td></tr></tbody></table>

## Local VirtualPath SpRm

**Description:** This service task removes a file from the VFS specified in the `VFS Name` and `VFS path` parameters.

**Triggerable:** No

**Variables:**

| Parameter            | Type    | Required | Description                                                                                                                                                                                             |
| -------------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Cluster              | Cluster | Y        | The cluster to be used                                                                                                                                                                                  |
| FileSet ID           | Long    | Y        | <p>ID of the file to be removed. Use this or VFS Name+VFS Path. </p><p>Tip: if the file is in a <code>FileDetail</code> variable, its ID can be retrieved with <code>${file.getRegistryId()}</code></p> |
| VFS Name             | String  | Y        | VfsName of the file to be deleted. It MUST exist along with the VFS Path if the File ID is not selected                                                                                                 |
| VFS Path             | String  | Y        | VfsPath of the file to be deleted. It MUST exist along with the VFS Name if the File ID is not selected                                                                                                 |
| Return Code Variable | String  | Y        | Workflow variable where the final return code will be written. If the file to be removed does not exist, the return code will be 0.                                                                     |

## Logging (file or syslog)

**Description:** This service task writes the message log specified by the user into the **Message Content** field (mandatory). The message is then logged either:

* to a **file** (if the `filepath` parameter is specified)
* to the **messages.log** file (if the `filepath` parameter is empty). &#x20;

The message is recorded using a specific **date/time format**.

**Triggerable:** No

**Variables:**

<table><thead><tr><th width="166.22222900390625">Parameter</th><th width="125.8887939453125">Type</th><th width="108.777587890625">Required</th><th>Description</th></tr></thead><tbody><tr><td>Date Format</td><td>String</td><td>N</td><td>Format in which the <strong>date and time</strong> should be written in the log message.<br>Example: yyyy-MM-dd'T'HH:mm:ss.SSS </td></tr><tr><td>Log level</td><td>Enum</td><td>N</td><td>Trace level to be logged. Choose one of the following options: Error, Warning, Info, or Debug.<br>It must be the same value as the package in trace.xml: com.primeur.ghibli.workflow.bpm.boundary.services.log.BpmLogService=<em>log-level</em><br>See <a href="/spaces/foEoE9wUeqRuZEPjYoFD/pages/AOOXnNhh7AumdJSaXnll#dataone.sh-trace">dataone.sh trace</a>.</td></tr><tr><td>Filepath</td><td>String</td><td>N</td><td>Full path and file name of the log file. If this parameter is empty, the log is written to the <code>messages.log</code> file.<br>If the file path is empty and the log level is set to DEBUG or TRACE, the message is also written to the <code>trace.log</code> file.</td></tr><tr><td>Message content</td><td>String</td><td>Y</td><td>Message to be logged. This field is <strong>mandatory</strong> and must contain the text that will be written.</td></tr></tbody></table>

## Now

**Description:** It invokes the Current DateTime Service that gets a formatted string containing current date and time.

**Variables**

| Parameter       | Type   | Required | Description                                                                                                                                             |
| --------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Pattern         | String | N        | The date pattern to use (Tip: it uses java format. "dd-MM-yyyy" -> "02-01-2018" or "E, dd MMMM yyyy HH:mm:ss z" -> "Tue, 02 January 2018 18:07:59 IST") |
| TimeZone        | String | N        | The timezone to use                                                                                                                                     |
| Result Variable | String | N        | The workflow variable where the final return code will be written                                                                                       |

## Raise Business Error

**Description:** This service task requires a specific license. It enables users to create customized messages and error codes for the workflow template, in the event of a specific condition. For instance, it can be used when an unexpected file name or size is received. With this configuration, when a file with an unexpected name or size is received and the Raise Business Error service task is configured, a ![](/files/C4aOm1fWK47YEyakU2Ua) business error will be displayed in the Dataflow Inquiry section of Data Watcher.

A notification can be generated when a file reporting this error arrives.

**Variables**

<table><thead><tr><th>Parameter</th><th width="208">Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>errorMsg</td><td>String</td><td>N</td><td>User-defined message appearing when a specific error occurs. </td></tr><tr><td>errorCode</td><td>String</td><td>N</td><td>User-defined code appearing when a specific error occurs. </td></tr><tr><td>fileId</td><td>Long</td><td>Y</td><td>Id of the file issuing the error.</td></tr><tr><td>fileName</td><td>String</td><td>Y</td><td>Name of the file issuing the error.</td></tr></tbody></table>

## Rename File

**Description:** It invokes the RenameFile Service that renames a file.

**Variables**

| Parameter     | Type   | Required | Description                  |
| ------------- | ------ | -------- | ---------------------------- |
| File ID       | Long   | Y        | The ID of the file to rename |
| New File Name | String | Y        | The new file name to use     |

## Republish File

**Description:** It invokes the RepublishFile Service that republishes a file to a different virtual path.

**Variables**

| Parameter         | Type        | Required                     | Description                                                                           |
| ----------------- | ----------- | ---------------------------- | ------------------------------------------------------------------------------------- |
| File              | File        | N (from DataOne-1.0.0-TF001) | The file to be republished, File or FilesetID are mandatory                           |
| FilesetID         | Long        | N (from DataOne-1.0.0-TF001) | The fileset ID to be republished, File or FilesetID are mandatory                     |
| Destination       | VirtualPath | Y                            | The virtual path destination                                                          |
| FilesetID created | String      | Y                            | Name of the variable that will contain the RegistryID (FilesetID) of the created file |

## REST Invoker

**Description:** HTTP TASK - REST Invoker.&#x20;

**Triggerable:** No

**Variables:**

<table><thead><tr><th width="210.00006103515625">Parameter</th><th width="119">Type</th><th width="107">Required</th><th>Description</th></tr></thead><tbody><tr><td>Throw exception</td><td>Boolean</td><td>N</td><td>When selected, an exception will be thrown if a failure occurs. You can handle this exception by catching it with a boundary error event or letting it escalate to terminate the process.</td></tr><tr><td>Disallow redirects</td><td>Boolean</td><td>N</td><td>Determines whether HTTP redirects are allowed or not. By default, redirects are allowed. </td></tr><tr><td>Handle status codes</td><td>String</td><td>N</td><td>List of status codes for which the task throws a <code>BpmnError</code> which can be caught by a boundary error event. Code ranges can be set with an X: Example: 400, 404, 5XX. <br>Status codes in <code>handleStatusCodes</code> override those in <code>failStatusCodes</code> when they are set in both.</td></tr><tr><td>Request body</td><td>String</td><td>N</td><td>Request body to be sent, for example a JSON file. <br>You can use <em>EL expressions</em>, e.g. <code>{'clientId': ${clientId}, 'name': ${name}}</code></td></tr><tr><td>Request body encoding</td><td>String</td><td>N</td><td>Http Request body encoding expression, for example UTF-8</td></tr><tr><td>Request headers</td><td>String</td><td>N</td><td>HTTP request headers. Each request header must be on a new line. For example:<br><code>Content-Type: application/json</code><br><code>Accept: application/json</code></td></tr><tr><td>Request method</td><td>Long</td><td>Y</td><td>Request method to be used in the HTTP call: GET, POST, PUT or DELETE.</td></tr><tr><td>Request timeout</td><td>Integer</td><td>N</td><td>Request timeout in milliseconds.</td></tr><tr><td>Request URL</td><td>String</td><td>Y</td><td>Request URL of the HTTP call.<br>It can contain <em>EL expressions</em>, e.g. <code>'http://your-system.example.com/your-endpoint/${someVariable}'</code></td></tr><tr><td>Response variable name</td><td>String</td><td>Y</td><td>The variable name where the HTTP response is stored.</td></tr><tr><td>Result variable prefix</td><td>String</td><td>N</td><td>A prefix that is added to the result variable name for easier grouping. The following variables are affected: <code>responseProtocol</code>, <code>responseReason</code>, <code>responseStatusCode</code>, <code>responseHeaders</code>, <code>responseBody</code>, <code>errorMessage</code>.</td></tr><tr><td>Save request variables</td><td>Boolean</td><td>N</td><td>Determines whether all request variables are stored. By default, only response related variables are stored as variables.</td></tr><tr><td>Save response parameters</td><td>Boolean</td><td>N</td><td>Determines whether response variables including HTTP status, headers, etc. are stored. By default, only the response body is stored as a variable.</td></tr><tr><td>Save response variable as Json</td><td>Boolean</td><td>N</td><td>Determines whether the response variable is stored as a JSON variable instead of a String.</td></tr></tbody></table>

## Send Email

**Description:** It sends an Email.

**Variables**

<table><thead><tr><th>Parameter</th><th>Type</th><th width="147">Required</th><th>Description</th></tr></thead><tbody><tr><td>Recipients</td><td>String</td><td>Y</td><td>The email recipients</td></tr><tr><td>Subject</td><td>String</td><td>Y</td><td>The email subject</td></tr><tr><td>Body</td><td>String</td><td>Y</td><td>The email body</td></tr><tr><td>Template ID</td><td>String</td><td>N</td><td>The identifier to the HTML template to be used for the body</td></tr><tr><td>File name</td><td>String</td><td>N</td><td>Name of the file to be used to fill in the HTML email template</td></tr><tr><td>File size</td><td>Long</td><td>N</td><td>Size of the file to be used to fill in the HTML email template</td></tr><tr><td>File path</td><td>String</td><td>N</td><td>Path of the file to be used to fill in the HTML email template</td></tr><tr><td>File date</td><td>String</td><td>N</td><td>Date of the file to be used to fill in the HTML email template</td></tr></tbody></table>

## Set File External Destination

**Description:** It sets or overrides existing file external destination flag.

**Variables**

| Parameter      | Type    | Required | Description                                                                                                               |
| -------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------- |
| File ID        | Long    | Y        | The ID of the file to associate insert selector in                                                                        |
| Force override | Boolean | Y        | If the file already has a destination set, this flag overrides its existing setting with the desired "Set external" value |
| Set external   | Boolean | Y        | Set the file to be treated for external destination                                                                       |

## Set Generic Metadata

**Description:** It invokes the SetGenericMetadata Service that sets metadata on a file.

**Variables**

| Parameter | Type   | Required | Description                                |
| --------- | ------ | -------- | ------------------------------------------ |
| File ID   | Long   | Y        | The ID of the file to set its new metadata |
| Name      | String | Y        | The metadata name                          |
| Value     | String | Y        | The metadata value                         |

## Set Spazio2 Metadata

**Description:** It invokes the Spazio2Metadata Service.

**Variables**

<table><thead><tr><th>Parameter</th><th width="198">Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>File ID</td><td>String</td><td>Y</td><td>The ID of the file to set its new Spazio2 type metadata</td></tr><tr><td>Node Name</td><td>String</td><td>N</td><td>The node name of metadata</td></tr><tr><td>Manager Name</td><td>String</td><td>N</td><td>The manager name of metadata</td></tr><tr><td>Queue Name</td><td>String</td><td>N</td><td>The queue name of metadata</td></tr><tr><td>AdressType</td><td>String</td><td>N</td><td>The AdressType of metadata</td></tr><tr><td>Internal Number</td><td>String</td><td>N</td><td>The internal number of metadata</td></tr><tr><td>Message FileId</td><td>String</td><td>N</td><td>The file id message of metadata</td></tr><tr><td>CorrelationId</td><td>String</td><td>N</td><td>The correlation id of metadata</td></tr><tr><td>Sender</td><td>String</td><td>N</td><td>The sender of metadata</td></tr><tr><td>User Class</td><td>String</td><td>N</td><td>The user class metadata</td></tr><tr><td>File Size</td><td>String</td><td>N</td><td>The size of the file</td></tr><tr><td>Priority</td><td>String</td><td>N</td><td>The priority of metadata</td></tr><tr><td>UserId</td><td>String</td><td>N</td><td>The userId of metadata</td></tr><tr><td>SessionId</td><td>String</td><td>N</td><td>The sessionId of metadata</td></tr><tr><td>Origin Queue Manager</td><td>String</td><td>N</td><td>The origin queue manager of metadata</td></tr><tr><td>Origin Queue</td><td>String</td><td>N</td><td>The origin queue of metadata</td></tr><tr><td>Origin User Class</td><td>String</td><td>N</td><td>The Origin User Class of metadata</td></tr><tr><td>Origin Message FileId</td><td>String</td><td>N</td><td>The origin message fileId of metadata</td></tr><tr><td>Origin Internal Number</td><td>String</td><td>N</td><td>The origin internal number of metadata</td></tr><tr><td>Accounting Token</td><td>String</td><td>N</td><td>The accounting token of metadata</td></tr><tr><td>AckLevel</td><td>String</td><td>N</td><td>The ackLevel of metadata</td></tr><tr><td>Identity Data</td><td>String</td><td>N</td><td>The identity data of metadata</td></tr><tr><td>Origin Data</td><td>String</td><td>N</td><td>The origin data of metadata</td></tr><tr><td>Format</td><td>String</td><td>N</td><td>The format of metadata</td></tr><tr><td>Origin AckLevel [</td><td>String</td><td>N</td><td>The origin ackLevel of metadata</td></tr><tr><td>Origin Code Page</td><td>String</td><td>N</td><td>The origin code page of metadata</td></tr><tr><td>Origin Encoding</td><td>Enum</td><td>N</td><td>The origin encoding of metadata</td></tr><tr><td>Put Application Name</td><td>String</td><td>N</td><td>The put application name of metadata</td></tr><tr><td>Reply To Queue Address Type</td><td>Enum</td><td>N</td><td>The reply to queue address type of metadata</td></tr><tr><td>Reply To Queue Manager Name</td><td>String</td><td>N</td><td>The reply to queue address type of metadata</td></tr><tr><td>Reply To Queue Name</td><td>String</td><td>N</td><td>The reply to queue name of metadata</td></tr><tr><td>Reply To Queue Write Password</td><td>String</td><td>N</td><td>The reply to queue write password of metadata</td></tr><tr><td>Destination External File</td><td>Boolean</td><td>N</td><td>Destination external file</td></tr></tbody></table>

## SOAP

**Description:** It invokes the SOAP Service configured in the `URL` parameter.&#x20;

**Triggerable:** No

**Variables:**

| Parameter          | Type    | Required | Description                                                                                                                                                                                                                            |
| ------------------ | ------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Connection Timeout | Integer | Y        | Maximum time, in milliseconds, to wait when opening a communication link to the SOAP service                                                                                                                                           |
| Envelope           | String  | Y        | <p>The full envelope of  the SOAP service request. <br>See below. </p>                                                                                                                                                                 |
| Response           | String  | Y        | The workflow variable where the SOAP response will be written. Default: `soapResponse`                                                                                                                                                 |
| Response Code      | String  | Y        | <p>The HTTP response code of the SOAP service invocation will be saved in the declared variable<br>The workflow variable where the HTTP response code of the SOAP service invocation will be written. <br>Default: <code>rc</code></p> |
| URL                | String  | Y        | <p>The url of the soap service to be called.<br>Per configurare la URL come variabile, inserire:<br><code>${WSDL\_url}</code></p>                                                                                                      |

Use the SOAP official format: Envelope → Header → Body.&#x20;

```
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope>
    <soap:Header>
        ...
    </soap:Header>
    <soap:Body>
        ...
    </soap:Body>
</soap: Envelope>
```

## SubString

**Description:** It invokes the SubString Service that extracts a SubString from a source string.

**Variables**

| Parameter       | Type    | Required | Description                                                  |
| --------------- | ------- | -------- | ------------------------------------------------------------ |
| String          | String  | N        | The String                                                   |
| Begin Index     | Integer | N        | The begin index of substring                                 |
| End Index       | Integer | N        | The end index of substring                                   |
| Result variable | String  | N        | The workflow variable where the final result will be written |

## Today

**Description:** It invokes the Today Service that gets a formatted string containing the current date.

**Variables**

<table><thead><tr><th>Parameter</th><th width="192">Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>Pattern</td><td>String</td><td>N</td><td>The date pattern to use (Tip: it uses java format. "dd-MM-yyyy" -> "02-01-2018")</td></tr><tr><td>TimeZone</td><td>String</td><td>N</td><td>The timezone to use</td></tr><tr><td>Result variable</td><td>String</td><td>N</td><td>The workflow variable where the final return code will be written</td></tr></tbody></table>

## Update Spazio2 Selector

**Description:** It invokes the Sp2UpdateSelector Service.

**Variables**

| Parameter   | Type   | Required | Description                                                        |
| ----------- | ------ | -------- | ------------------------------------------------------------------ |
| File ID     | Long   | Y        | The ID of the file to set its Spazio2 selector                     |
| Code        | String | Y        | The selector code to update                                        |
| Value       | String | Y        | The selector value to update                                       |
| Return code | String | Y        | The workflow variable where final return code will be written into |

## Virtual Path fromString

**Description:** It makes a virtual path from the string Service.

**Variables**

| Parameter           | Type   | Required | Description                                                  |
| ------------------- | ------ | -------- | ------------------------------------------------------------ |
| Virtual Path String | String | Y        | The string virtual path                                      |
| Result variable     | String | Y        | The workflow variable where the final result will be written |

## Virtual Path toString

**Description:** It makes a virtual path to the string Service.

**Variables**

| Parameter       | Type        | Required | Description                                                  |
| --------------- | ----------- | -------- | ------------------------------------------------------------ |
| Virtual Path    | VirtualPath | Y        | The virtual path                                             |
| Result variable | String      | Y        | The workflow variable where the final result will be written |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.primeur.com/data-mover-1.21/workflow-templates/service-tasks/standard-service-tasks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
