Primeur Online Docs
Data Mover 1.20
Data Mover 1.20
  • 🚀GETTING STARTED
    • What is Primeur Data Mover
    • Main features of Primeur Data Mover
    • Primeur Data Mover deployment
    • Navigate through Primeur Data Mover
  • 📚INFRASTRUCTURE
    • STENG, clusters and servers
      • Adding a cluster and a STENG
      • Deleting a STENG
    • DMZ Gateways
      • Blocking users automatically at the DMZ level 🚀
    • DMZ Clusters
      • Load balancing across active DMZ clusters for outbound file transfers 🚀
  • 👥Actors
    • Who are the actors
    • Create your first actor
    • Configure an actor 🚀
      • Users Tab
      • Groups Tab
      • VFS Tab
      • File Resource Tab
      • Connection Contract Tab
      • Client Connections Tab
    • Search files by actor
    • Actor Lineage 🚀
      • Aggregation of flows by protocol 🚀
      • Lineage with connection contracts 🚀
      • Lineage with input, mediation and output contracts 🚀
      • Lineage with any contract type 🚀
  • 🗄️VIRTUAL FILE SYSTEMS
    • Virtual File Systems (VFS) 🚀
      • Creating a VFS 🚀
      • Configuring a VFS
      • Adding Virtual Paths
      • Modifying and Deleting a VFS
    • Searching files in all VFS
    • Storage Classes 🚀
      • Storage Class: SMB v3 or later versions 🚀
      • Storage Class: Azure Blob Storage 🚀
      • Storage Class: Amazon S3 🚀
      • Storage Class: Google Storage 🚀
      • Storage Class: Local File System 🚀
    • Retention Classes
  • 📝Contracts
    • What is a contract
    • Create your first contract
      • Create an Input Contract
        • Define the contract info
        • Associate the contract with the actor
        • Define the contract actions
        • Set the contract variables
      • Create a Mediation Contract
      • Create an Output Contract
      • Create a Connection Contract
        • Create a contract clause
        • Associate the VFS with file processing rules
        • File Processing Rules
    • Managing contracts 🚀
    • File Resources
      • Creating File Resources
      • Navigating File Resources
      • How to use File Resources
  • 🧱Workflows
    • What is a workflow
    • Create your first workflow template
    • Trigger types
      • Trigger types for input contracts
      • Trigger types for mediation and output contracts
    • Service tasks
      • Standard service tasks
      • Triggerable service tasks 🚀
      • Spazio selectors and filebox metadata management
      • Error management
    • Variables
      • Variables in workflows and contracts
      • Handling process variables
    • Workflow templates
      • System workflow templates
        • Workflow templates for input contracts
        • Workflow templates for mediation contracts
        • Workflow templates for output contracts
      • Custom workflow templates
        • Workflow template toolbar
        • Workflow template Shape repository panel
        • Workflow template working area
        • Workflow template BPMN-diagram panel
      • Error workflow templates
    • Editing workflow templates
    • DataFlow Instance Context (DFIC) 🚀
  • 🛸TRANSPORT PROTOCOLS AND CONNECTORS
    • Data Mover client and server roles
    • Client Connections
      • Client Connection: FTP
      • Client Connection: FTPS
      • Client Connection: SFTP
      • Client Connection: HTTP
      • Client Connection: HTTPS
      • Client Connection: PESIT
      • Client Connection: SMB v3 or later versions
      • Client Connection: POP3 or IMAP
      • Client Connection: SMTP
      • Client Connection: PR4/PR4S
      • Client Connection: PR5
      • Client Connection: PR5S
      • Client Connection: HDFS
      • Client Connection: HDFSS
      • Client Connection: Amazon S3 🚀
      • Client Connection: Google Cloud Storage
        • Credentials
      • Client Connection: Azure Blob Storage
      • Client Connection: IBM Sterling Connect:Direct
      • Client Connections retry settings
    • Server Connections 🚀
      • Server Connection: FTP
      • Server Connection: FTPS
      • Server Connection: SFTP
      • Server Connection: HTTP
      • Server Connection: HTTPS
      • Server Connection: PeSIT
      • Server Connection: PR4
      • Server Connection: PR5
      • Server Connection: PR5S 🚀
      • Server Connection: IBM Sterling Connect:Direct
    • Protocol Connections Reference
    • Stopping all servers in one go
  • 💻API
    • HTTP MFT Rest API
    • Job Manager APIs 🚀
    • SFTP Server sessions APIs 🚀
    • Audit Logs APIs 🚀
  • 🔓Security
    • Identity and Access Management
    • Users & Groups
      • Setting the password policy
      • Creating Internal Users 🚀
      • Creating Internal Groups
      • Creating External Users
      • Creating External Groups
    • Key Stores and Trust Stores
      • Key Store 🚀
        • Creating a Key 🚀
        • Creating a Certificate 🚀
        • Importing a Key or a Certificate
        • Creating a Symmetric key
        • Examples
      • Trust Store 🚀
        • Importing Keys 🚀
        • Importing Certificates
      • Untrusted Cache 🚀
      • Trusting Keys and Certificates
      • PGP Key Store and PGP Trust Store
        • PGP Key Store
        • Importing keys into the PGP Trust Store
    • ICAP
      • Configuring ICAP
      • Defining an ICAP rule
  • 🎧FILE EVENT LISTENER
    • What is the File Event Listener
    • Configuring File Event Listeners
      • Setting the File Event Listener Engine
      • Defining a contract for the File Event Listener
      • Setting events to be monitored 🚀
    • RegEx Rules 🚀
    • Monitoring File Event Listeners
  • 👑FILE MANAGER
    • What is the File Manager
    • Logging into File Manager
    • Managing the File Manager 🚀
      • The list of results
      • Creating new folders
      • Uploading files
      • Downloading files 🚀
      • Searching for files and folders
      • Deleting files 🚀
      • Bulk actions 🚀
    • File Manager and VFS
    • Customizing File Manager externals
      • The configuration-wui.json file 🚀
      • How to customize the Login window and the logo
      • How to customize the footer
      • How to configure the Upload with Metadata option
      • How to customize bulk actions 🚀
  • 🧑‍⚖️FILE ROUTING
    • What is File Routing 🚀
    • Routing Rules
      • The Rules tab
      • The Categories tab
      • The Output tab
    • How to create a rule 🚀
      • Add metadata 🚀
      • Select ACTIONS
      • Select OUTPUTS
      • Policy for the selection of metadata rules
    • Configuration of the environment in Data One
      • Set up Storage Classes
      • Set up Retention Classes
      • Configure the Actor
      • Set up File Resources
    • Associate the Routing Rule with a Contract
    • Example
  • 📩NOTIFICATION CHANNELS
    • What are Notification Channels
    • Configuring the default Email Notification Channel
    • Configuring a new Email Notification Channel
    • Trusting Certificates
    • Managing Templates
      • Data Watcher Macros
      • Contract Macros
      • ICAP Macros
      • Central Log Macros
      • Email Templates
      • Editing default templates
      • Loading a new template
  • 💬LOGS & AUDIT
    • Logs 🚀
      • Logs options 🚀
      • Troubleshooting error analysis in Logs
    • Audit Options 🚀
      • Export audit logs 🚀
      • List of Audit entity types 🚀
      • Audit message codes 🚀
    • Log Notifiers 🚀
      • FEL message codes
  • 🕒MONITORING
    • Jobs
      • Details about Jobs 🚀
      • jobman.sh CLI
    • Job Manager
    • Job Queues
      • Managing Job Queues
    • File Transfers
      • Ongoing
      • Finished
      • Reports
    • File Transfers Rules
      • Configuring Rules
  • 🧐HOW TO...
    • ... use different DNS names 🚀
    • ... configure a Cron Expression
    • ... configure an application
    • ... customize the header
    • ... run searches in Data Watcher 🚀
    • ... use Data Shaper graphs in Data Mover contracts
    • ... modify DMCFG and deploy it
    • ... tune Data One data retention
    • ... fine tune Data Mover
      • Email sender for the Notification Channel
  • 🗒️RELEASE NOTES
    • Data One 1.20.10
    • Data One 1.20.9
    • Data One 1.20.8
    • Data One 1.20.7
      • Data One 1.20.7.1
    • Data One 1.20.6
    • Data One 1.20.5
    • Data One 1.20.4
    • Data One 1.20.3
    • Data One 1.20.2
    • Data One 1.20.1
    • Data One 1.20.0
Powered by GitBook
On this page
  • Process Variable Objects
  • FileDetail
  • ExternalFile
  • Properties
  • GBIFlowInput
  • GBIFlowOutput
  1. Workflows
  2. Variables

Handling process variables

When modeling a process, it may be necessary to check the value of a variable (RC variables are the most obvious example) or to access the values of a variable if it is not a simple string but a complex type with methods (e.g. the FileDetail variable type when activating an instance with the NewFile trigger).

Process variables are persistent entities that live within each process instance, identified by a name and a value.

Each time a process instance is started, the variables required to create the contract are activated and assigned their value. Any variables declared in each service task are activated during execution when that particular service task is encountered and executed without error.

The way to get the value of a simple variable is to enclose it in ${variableName}. If it is a complex variable like the one described in Process Variable Objects below, it will contain multiple values that can be accessed with its getter method: e.g. ${file.getRegistryId()}.

If the value of a variable is to be checked, in the case of an exclusive gateway, the condition must be between brackets: ${variableValue == 0} or [${file.getRegistryId() == 12}].

All variable names are in the same "bucket" as the entire flow instance. So, any service task writing a variable named "RC" will overwrite the previous one having the same name. To avoid undesired overwrites, use UNIQUE variable names in the same process model.

When testing a process variable value in a conditional execution, keep in mind all possible scenarios when implementing the condition. If you design a conditional flow with something like: ${variableValue.equals("go here")}, you are actually assuming that the variable exists and that it is not null. Any condition should consider first of all that a variable exists, then that it is not null, and then if it has or is not a specific value. A statement like this: ${execution.getVariable("variableValue") != null && variableValue != null && variableValue.equals("go here")} will verify that variableValue exists, that its value is not null, and that it has a value that matches the "go here" string.

Process Variable Objects

These are variables of type "Object" that can be found in a process instance. The user modeling a process won't be able to access a variable value just by its name, that is what happens with non-object variables:

${myCustomVariable}

but since those are objects, there are methods providing access to the object's internal desired value:

i.e. ${myCustomVariable.getVariableValue()}

FileDetail

FileDetail is a Java Object returned from the New File Event and available as a predefined variable --> file.

Parameter
Type
Function to retrieve the result
Description

registryId

Long

getRegistryId()

The Id Fileset inserted in the Databox (ex: ${file.getRegistryId()})

clusterName

String

getClusterName()

The Cluster name where the file has been received (ex: ${file.getClusterName()})

virtualPath

String

getVirtualPath()

The Databox (Virtual Path) where the file has been inserted. The format is vfsName:vfsPath (ex: ${file.getVirtualPath()}) Sample value: epoLAB-vfs-unsigned:/eMail_attachment

name

String

getName()

The Original File Name (ex: ${file.getName()})

virtualFolder

String

getVirtualFolder()

The Databox Folder where the file has been inserted. The format is vfsPath (ex: ${file.getVirtualPath()}) Sample value: /eMail_attachment

virtualFs

String

getVirtualFS()

The Databox FileSystem name where the file has been inserted. The format is vfsName (ex: ${file.getVirtualFS()}) Sample value: epoLAB-vfs-unsigned

extension

String

getExtension()

File extension

nameNoExtension

String

getNameNoExtension()

File name without extension

absoluteFileName

String

getAbsoluteFileName()

The absolute file name of the file (ex: ${file.getAbsoluteFileName()})

metadata

String

getMetadataValue(String key)

Get a file metadata value by key

metadata

List <String>

getMetadatakeys()

Get file metadata values (list of values) NOTE: available only when the ${file} variable is created by an Incoming Update Metadata Event.

ExternalFile

ExternalFile is a Java object returned by service tasks of the following types: Spls, DataboxSpls, RemoteSpls, and VirtualBox LS. Each service task returns a variable --> fileList that is a List. In the following examples, we assume that the current element of the list is referenced as --> currentFile.

Parameter
Type
Function to retrieve the result
Description

fileId

Long

getFileId()

The Id Fileset inserted in the Databox (ex: ${currentFile.getFileId()}). This is available only from DataboxSpls that lists files in a Databox, otherwise is NULL

size

Long

getSize()

The size file attribute provided by the subsystem that created this entry

dateModified

Date

getDatemodified()

The date of the last file modification

directory

Boolean

getDirectory()

If true the file is a Directory (ex: ${currentFile.getDirectory()})

filePath

String

getFilePath()

The full path of the file (ex: ${currentFile .getFilePath()})

fileName

String

getFileName()

File Name (ex: ${currentFile.getFileName()})

fileNameNoExtension

String

getFileNameNoExtension()

File Name only without extension (ex: ${currentFile.getFileNameNoExtension()})

size

Long

getSize()

The size of the file (ex: ${currentFile.getFileSize()})

Properties

Properties is a Java Object returned from Command Server service tasks: Spprop. The return variable is --> property and is a Map<String, String> read from a property file.

Parameter
Type
Function to retrieve the result
Description

value

String

getProperty(key)

Get the value of the property with Key=key (ex: ${property.getProperty("MyKey")})

GBIFlowInput

GBIFlowInput is a Java object that contains all parameters required to start a new GBI Process.

Parameter
Type
Function to retrieve the result
Description

flowId

String

getFlowId()

The GBI Flow Identifier

parameters

Map<String, String>

getParameters()

Map of all Input Parameters required by GBI Flow

correlationId

String

getCorrelationId()

System generated correlationId to be used as input in Camunda object that waits for GBI Flow termination

GBIFlowOutput

GBIFlowOutput is a Java object that contains all parameters returned from GBI Process.

Parameter
Function to retrieve the result
Type
Description

outcome

getOutcome()

String

The GBI Flow return code

parameters

getParameters()

Map<String, String>

Map of all Output Parameters returned by GBI Flow

correlationId

getCorrelationId()

String

System generated correlationId used for process correlation

PreviousVariables in workflows and contractsNextWorkflow templates

Last updated 21 days ago

🧱