Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Minor changes

...

  • File Watching is used to automatically start workflows in case the event of arrival of a file arrival.
    • Agents watch directories fore for incoming files and add a file order for each file.
  • File Watching is a flexible means for enterprise application integration (EAI) as it enables e.g. 3rd party applications to launch a workflow workflows simply by creating a filefiles.

Trigger Files and Data Files

...

For both Trigger Files and Data Files the workflow is responsible to remove for removing an incoming file before completion of the workflow.

...

The File Order Source is a configuration object that holds the directory and file name pattern to be watched for by an Agent and that assigns resulting file orders to a workflow.

  • The Order ID of file orders for example is created like this: #<ISO date>#F<Seconds since Jan 1st 1970>-<ID of file order source>:<file name>
    • #<ISO date># is the date of appearance of the file, e.g. 2021-03-17., enclosed by #. The date is calculated for the time zone assigned the File Order Source.
    • F is a qualifier to indicate a File Order Source.
    • <Seconds since Jan 1st 1970>-  is what is it says and is appended with a hyphen.
    • <File Order source ID>: is the unique identifier of the File Order Source configuration object followed by a colon.
    • <file name> is the name of the incoming file.
  • Such file orders can be considered triggers for workflow execution, which implies that the workflow can be executed with by the same monitoring Agent or with by different Agents.

File Order Sources are managed with the Configuration -> Inventory view like this:

ExplanationsExplanation:

  • The file name pattern is not a wildcard expression such as *.csv, instead it represents a Java Regular Expression. Consider the following examples:
    • match any files: .*
    • match files with a .csv extension: \.csv$
    • a more elaborated expression to match ISO dates such as 2021-03-27 including support for long-short months and leap years: ^(?:(?=[02468][048]00|[13579][26]00|[0-9][0-9]0[48]|[0-9][0-9][2468][048]|[0-9][0-9][13579][26])\d{4}(?:(-|)(?:(?:00[1-9]|0[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-6])|(?:01|03|05|07|08|10|12)(?:\1(?:0[1-9]|[12][0-9]|3[01]))?|(?:04|06|09|11)(?:\1(?:0[1-9]|[12][0-9]|30))?|02(?:\1(?:0[1-9]|[12][0-9]))?|W(?:0[1-9]|[1-4][0-9]|5[0-3])(?:\1[1-7])?))?)$|^(?:(?![02468][048]00|[13579][26]00|[0-9][0-9]0[48]|[0-9][0-9][2468][048]|[0-9][0-9][13579][26])\d{4}(?:(-|)(?:(?:00[1-9]|0[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-5])|(?:01|03|05|07|08|10|12)(?:\2(?:0[1-9]|[12][0-9]|3[01]))?|(?:04|06|09|11)(?:\2(?:0[1-9]|[12][0-9]|30))?|(?:02)(?:\2(?:0[1-9]|1[0-9]|2[0-8]))?|W(?:0[1-9]|[1-4][0-9]|5[0-3])(?:\2[1-7])?))?)$

...

When an incoming file arrives in a directory then the file might not be completely written at the point in time of appearance.

  • In Windows environments, files that are written by a process cannot be accessed by jobs.
  • In Unix environments, parallel read and write operations to files by jobs and processes are possible - but not desired, as results are unpredictable.

...

  • An interval of (default: 2 seconds) can be specified for which the Agent waits and then checks if the time stamp or the size of the file changed.
  • If the file did change has changed then the Agent will wait for the next interval to apply the same check.

...

It is not considered good practice for a client application to make files with the same name appear and disappear in short sequence, however. However, the situation will be handled by the Agent that creates additional file orders.

...

If an Agent was not available when a file had has been added to a directory then after start of the Agent it will pick up the file and will create a file order.

If the Controller is not available at the point in time when a file order is created then the Agent:

  • can process a workflow for the file order provided that all jobs in this workflow are assigned to this Agent,
  • has to wait for the Controller to become available in order to forward the file order.

...

JS7 will not move or remove files, it's the workflow's responsibility to guarantee that on completion of a workflow the incoming file is not no longer present any longer.

  • A job in a workflow can:
    • move an incoming file to some archive location that is not subject to file watching,
    • remove an incoming file.

...