This topic provides information about basic concepts associated with job execution.
A job is a task or a sequence of tasks that will be executed by the server. A job consists of the following parts (some of them are optional): input parameters, execution steps, triggers, credentials and various settings. Every job has an execution result that can be successful, failed, or interrupted/unknown. For details, see Statistics.
The degree of complexity of a job can vary, depending on your business needs and requirements. A job can consist of a single step (e.g., sending an email) or can be configured to perform multiple actions and pass the result (e.g., a file) as a parameter to another job. For details about job configuration, see Job Configuration.
In FlowForce Server, parameters are similar to function arguments in a programming language. Parameters can be of various types: e.g., file and directory references, text, numbers, Boolean values, and others. In a job, there are two types of parameters: (i) job input parameters and (ii) function parameters.
Under certain conditions, job input parameters become automatically available on the configuration page of your job. For example, when you add a file system or HTTP trigger to your job, the triggerfile input parameter is added automatically. You can use the triggerfile in a step function, for example, to upload this file to an FTP server. For an example, see the system/ftp/store function.
For more information about parameters, see Input Parameters.
When you create a job, you must specify conditions that will start the job. These conditions are known as triggers. FlowForce Server executes the job whenever the trigger condition is met.
In FlowForce Server, steps define what a job must do (e.g., delete a file, execute a MapForce mapping, send an email). In its simplest form, a step is an operation with failed or successful outcome. Each step must execute a function. You can create as many steps as required for your job and set the order in which the steps must be executed. You can also use the result of a step in other steps.
To find out more about steps, see Job Execution Steps.
In FlowForce Server, there are two types of functions: (i) step functions and (ii) expression functions. Step functions are instructions that perform different operations on the target file system. Each execution step requires a step function. For example, the system/mail/send function instructs FlowForce Server to send an email to the specified recipients. The following types of step functions are available:
Most step functions have parameters. Parameters can accept different values, including expressions and expression functions. Expression functions manipulate values supplied as arguments, for example, to join strings (see the concat function). For an example of a job that uses expression functions, see Example 2 in the send-mime function.
In FlowForce Server, you can work with the execution result at two levels: (i) at step level and (ii) at job level. The result of a step defines what is returned after the step has been executed (e.g., a file). You can use the step result in other execution steps. See Example 1 in the send-mime function, in which the result of the second step is used in the Message body parameter of the last step. At job level, you must specify the return type of the execution result if you want to cache the job result. Declaring the return type of the job result might also be meaningful If you intend to use this result in other jobs.
For more information, see Step/Job Result.
A credential object stores authentication information. This is typically the combination of user name and password associated with a user account on the operating system where the FlowForce Server job runs. It can also be a set of HTTP or FTP credentials, or OAuth security details.
For more information about credentials, see Credentials.
When you create a job, you can configure the following optional settings:
•Make the job available as a Web service.
•Define queue settings that specify the number of instances running in parallel for the same job.