RoboFlowHelp.1.18
!!! warning "Legacy Documentation" This page contains documentation for the original RoboFlow application. Some features described here may not exist in the new Damtoolkit WAP interface.
Watchfolder (Synchronize files from folder structure with catalog)
The Watchfolder workflow checks a folder (directory) and its subfolders in every time-loop.
Every file (and file in a subfolder) is processed. These files are processed one by one.
The file is looked up in a Cumulus Catalog.
If the record is present, the record is checked if it needs updating. If so, it updates.
If the Record is not present, the file is cataloged.
If a record is present of which the file isn't, the record is deleted
NOTE: This workflow assumes that it has full control over this catalog. While this workflow is running, no other users/workflows can add or remove records to this catalog.
This workflow works best with an "asset handling set" that has all creation of sub-assets disabled (e.g. no PDF-pages, PPT-slides, ZIP-subfiles,...) The purpose of this workflow is to give a “one to one” representation of a folder and its subfolders. One record for one file.
Functionality can be added for new files in the Action Script for Files and for updated records in Action Scripts for Records.
Parameters
Hotfolder
Path to the folder to watch (synchronize)
=> Type in the path or click on the button to select a folder
CumulusCatalog
Name of the Catalog you want to watch (only one catalog can be specified)
=> Type in the name of click on the button to connect and select a catalog
CumulusAssetHandlingSet
Name of the AssetHandlingSet to use for catalogging and updating
=> Type in the name or click on the button to select one
FileFilter
The file extensions specified here will not be processed, other files will be ignored (not case sensitive)
- every file-extension starts with a point (.)
- to invert the FileFilter: start it with !
| File | File-Filter | Process | Description |
| test.Tif | yes | ||
| test.Tif | .xmp.xml.txt | yes | files not ending with .xmp or .xml or .txt are processed |
| test.Tif | .xmp.xml.txt.tif | no | files ending with .xmp or .xml or .txt .tif are NOT processed |
| test.Tif | !.tif.jpg | yes | only files ending with .tif or .jpg are processed |
| Test | .xmp.. | no | files ending with .xmp or without file-extension are NOT processed |
| test.jpg | [regex]tes.* | no | files starting with "tes" are NOT processed |
| test.jpg | ![regex]tes.* | yes | only files starting with "tes" are processed |
For more information see Regular Expressions Tutorial.
• FolderFilter
=> Specify the folder names separated by "#" to exclude these folders from being processed (not case sensitive).
NOTE: Subfolders of excluded folders are NOT processed; e.g. layout#layouts so all folders called layout or layouts are not processed
NOTE: To invert the FolderFilter: start it with "!"
| Folder (root=...) | Folder-filter | Process | Process files | Process subfolders | Process files in subfolders | Description |
| ... | yes | yes | yes | yes | no folder-filter so everthing is processed | |
| ... | #subfolder# | yes | yes | yes if not "subfolder" | yes if not in "subfolder" | all subfolders are processed except "subfolder" |
| ... | subfolder | yes | yes | yes if not "subfolder" | yes if not in "subfolder" | all subfolders are processed except "subfolder" |
| .../subfolder | subfolder | no | no | no | no | not processed (folder name equals "subfolder") |
| .../folder | subfolder | yes | yes | yes if not "subfolder" | yes if not in "subfolder" | all subfolder are processed except "subfolder" |
| .../folder/subfolder | subfolder | no | no | no | no | not processed (folder name equals "subfolder") |
| .../folder/subfolder | subfolder#another | no | no | no | no | not processed (folder name equals "subfolder") |
| .../folder | sub* | yes | yes | yes if not "sub*" | yes if not in "sub*" | all subfolders are processed except if name starts with "sub" |
| .../folder/subfolder | sub* | no | no | no | no | not processed (folder starts with "sub") |
| .../folder/subfolder | *sub | yes | yes | yes if not "*sub" | yes if not in "*sub" | all subfolders are processed except if name ends with "sub" |
| .../folder/subfolder | *bfolder | no | no | no | no | not processed (folder name ends with "bfolder") |
| .../folder/subfolder | *subfolder | no | no | no | no | not processed (folder name ends with "subfolder") |
| .../folder | [regex]sub.* | yes | yes | yes if not "[regex]sub.*" | yes if not in "[regex]sub.*" | all subfolders are processed except if name starts with "sub" |
| .../folder/subfolder | [regex]sub.* | no | no | no | no | not processed (folder starts with "sub") |
| .../folder/subfolder | [regex].*sub.* | yes | yes | yes | yes if not in "[regex]*.sub.*" | all subfolders are processed except if name contains "sub" |
| .../folder/subfolder | [regex].*sub | yes | yes | yes if not [regex]*.sub | yes if not in "[regex]*.sub" | all subfolders are processed except if name ends with "sub" |
| Folder (root=...) | Folder-filter with ! | Process | Process files | Process subfolders | Process files in subfolders | description |
| ... | !#subfolder# | yes | no | yes | only if called "subfolder" | only files of a subfolder called "subfolder" are processed, anywhere |
| ... | !subfolder#another | yes | no | yes | only if called "subfolder" | only files of a subfolder called "subfolder" are processed, anywhere |
| .../folder | !subfolder | yes | no | yes | only if called "subfolder" | only files of a subfolder called "subfolder" are processed, anywhere |
| .../subfolder | !subfolder | yes | yes | yes | only if called "subfolder" | only files of a subfolder called "subfolder" are processed, anywhere |
| .../subfolder/folder | !subfolder | yes | no | yes | only if called "subfolder" | only files of a subfolder called "subfolder" are processed, anywhere |
| .../subfolder/folder/subfolder | !subfolder | yes | yes | yes | only if called "subfolder" | only files of a subfolder called "subfolder" are processed, anywhere |
| .../folder | !!subfolder | yes | no | yes | yes inside "subfolder"-path | all files inside a subfolder called "subfolder" and its subfolders, anywhere |
| .../folder/subfolder | !!subfolder | yes | yes | yes | yes inside "subfolder"-path | all files inside a subfolder called "subfolder" and its subfolders, anywhere |
| .../subfolder/folder | !!subfolder | yes | yes | yes | yes inside "subfolder"-path | all files inside a subfolder called "subfolder" and its subfolders, anywhere |
| .../folder | !!!subfolder | no | no | no | no, only inside "subfolder" | only files in subfolder called "subfolder" |
| .../folder/subfolder | !!!subfolder | no | no | no | no, only inside "subfolder" | only files in subfolder called "subfolder" |
| .../subfolder | !!!subfolder | yes | yes | yes | only if called "subfolder" | only files in subfolder called "subfolder" |
| .../subfolder/folder | !!!subfolder | no | no | no | no, only inside "subfolder" | only files in subfolder called "subfolder" |
| .../folder | !!!!subfolder | no | no | no | no, only inside "subfolder" | only files in subfolder called "subfolder" or it's subfolders |
| .../folder/subfolder | !!!!subfolder | no | no | no | no, only inside "subfolder" | only files in subfolder called "subfolder" or it's subfolders |
| .../subfolder | !!!!subfolder | yes | yes | yes | only if root is called "subfolder" | all files in subfolder called "subfolder" or it's subfolders |
| .../subfolder/folder | !!!!subfolder | yes | yes | yes | only if root is called "subfolder" | all files in subfolder called "subfolder" or it's subfolders |
| .../folder | !sub* | yes | no | yes | only if starts with "sub" | only files of a subfolder starts with "sub" are processed, anywhere |
| .../subfolder | !sub* | yes | yes | yes | only if starts with "sub" | only files of a subfolder starts with "sub" are processed, anywhere |
| .../subfolder/folder | !sub* | yes | no | yes | only if starts with "sub" | only files of a subfolder starts with "sub" are processed, anywhere |
| .../subfolder/folder/subfolder | !sub* | yes | yes | yes | only if starts with "sub" | only files of a subfolder starts with "sub" are processed, anywhere |
| .../folder | !!sub* | yes | no | yes | yes inside "sub*"-path | all files inside a subfolder starts with "sub" and its subfolders, anywhere |
| .../folder/subfolder | !!sub* | yes | yes | yes | yes inside "sub*"-path | all files inside a subfolder starts with "sub" and its subfolders, anywhere |
| .../subfolder/folder | !!sub* | yes | yes | yes | yes inside "sub*"-path | all files inside a subfolder starts with "sub" and its subfolders, anywhere |
| .../folder | !!!sub* | no | no | no | no, only inside "sub*" | only files in subfolder starts with "sub" |
| .../folder/subfolder | !!!sub* | No | no | no | no, only inside "sub*" | only files in subfolder starts with "sub" |
| .../subfolder | !!!sub* | yes | yes | yes | only if starts with "sub" | only files in subfolder starts with "sub" |
| .../subfolder/folder | !!!sub* | no | no | no | no, only inside "sub*" | only files in subfolder starts with "sub" |
| .../folder | !*bfolder | yes | no | yes | only if ends with "bfolder" | only files of a subfolder ends with "bfolder" are processed, anywhere |
| .../subfolder | !*bfolder | yes | yes | yes | only if ends with "bfolder" | only files of a subfolder ends with "bfolder" are processed, anywhere |
| .../subfolder/folder | !*bfolder | yes | no | yes | only if ends with "bfolder" | only files of a subfolder ends with "bfolder" are processed, anywhere |
| .../subfolder/folder/subfolder | !*bfolder | yes | yes | yes | only if ends with "bfolder" | only files of a subfolder ends with "bfolder" are processed, anywhere |
| .../folder | !!*bfolder | yes | no | yes | yes inside "*bfolder"-path | all files inside a subfolder end with "bfolder" and its subfolders, anywhere |
| .../folder/subfolder | !!*bfolder | yes | yes | yes | yes inside "*bfolder"-path | all files inside a subfolder end with "bfolder" and its subfolders, anywhere |
| .../subfolder/folder | !!*bfolder | yes | yes | yes | yes inside "*bfolder"-path | all files inside a subfolder end with "bfolder" and its subfolders, anywhere |
| .../folder | !!!*bfolder | no | no | no | no, only inside "*bfolder" | only files in subfolder end with "bfolder" |
| .../folder/subfolder | !!!*bfolder | no | no | no | no, only inside "*bfolder" | only files in subfolder end with "bfolder" |
| .../subfolder | !!!*bfolder | yes | yes | yes | only if ends with "bfolder" | only files in subfolder end with "bfolder" |
| .../subfolder/folder | !!!*bfolder | no | no | no | no, only inside "*bfolder" | only files in subfolder end with "bfolder" |
| .../folder | ![regex]sub.* | yes | no | yes | only if starts with "sub" | only files of a subfolder starts with "sub" are processed, anywhere |
| .../subfolder | ![regex]sub.* | yes | yes | yes | only if starts with "sub" | only files of a subfolder starts with "sub" are processed, anywhere |
| .../subfolder/folder | ![regex]sub.* | yes | no | yes | only if starts with "sub" | only files of a subfolder starts with "sub" are processed, anywhere |
| .../subfolder/folder/subfolder | ![regex]sub.* | yes | yes | yes | only if starts with "sub" | only files of a subfolder starts with "sub" are processed, anywhere |
| .../folder | !![regex]sub.* | yes | no | yes | yes inside "sub*"-path | all files inside a subfolder starts with "sub" and its subfolders, anywhere |
| .../folder/subfolder | !![regex]sub.* | yes | yes | yes | yes inside "sub*"-path | all files inside a subfolder starts with "sub" and its subfolders, anywhere |
| .../subfolder/folder | !![regex]sub.* | yes | yes | yes | yes inside "sub*"-path | all files inside a subfolder starts with "sub" and its subfolders, anywhere |
| .../folder | !!![regex]sub.* | no | no | no | no, only inside "sub*" | only files in subfolder starts with "sub" |
| .../folder/subfolder | !!![regex]sub.* | no | no | no | no, only inside "sub*" | only files in subfolder starts with "sub" |
| .../subfolder | !!![regex]sub.* | yes | yes | yes | only if starts with "sub" | only files in subfolder starts with "sub" |
| .../subfolder/folder | !!![regex]sub.* | no | no | no | no, only inside "sub*" | only files in subfolder starts with "sub" |
CumulusCategoryStartingPoint
If set this workflow will create a category-folder-structure (tree).
=> Specify where it should start. In other words, which part of path to the file it should skip.
e.g. assuming file's source is C:/DATA/customer1/job123/photo.jpg
Setting this to 2 will result in a category-structure /customer1/job123/
Setting this to 0 will disable this functionality.
CumulusCategoryPrefix
=> Specify where to put the category-path of the file (defined above).
e.g. select $Categories and based on the example above the result will be $Categories/customer1/job123/
if the Prefix is not in the list, select "type-in-a-value" and type it in your self
e.g. type in "$Images" and based on the example above the result will be $Images/customer1/job123/ ($Images must exist up front)
type in "$Categories/myImages" and based on the example above the result will be $Categories/myImages/customer1/job123/
CumulusDeleteEmptyCategory
CumulusDeleteEmptyCategory: delete empty categories that were used in deleted records choices: do not delete, always delete, delete if from watchfolder [default], delete if from watchfolder or Cumulus-Directory-category, delete if from watchfolder and folder deleted, delete if from watchfolder and parentfolder deleted
WatchFolderFullUpdate
NOTE: Should not be changed from its default unless suggested by Canto support!
Watchfolder-workflow can run a full update all the time or only once every so many runs which can improved the speed of updating the catalog. In between full updates it will only perform an update towards to files, not check manually deleted records
e.g. Only full update every 5 runs, means it will perform a full update the first, the sixth, eleventh, ...
Only full update in first run, means it will only perform a full update when starting the workflow the first time
WatchFolderCheckFilesFor
NOTE: Should not be changed from its default unless suggested by Canto support!
By default, this workflow checks for new, modified, renamed, moved or deleted files.
NOTE: Disabling some (unnecessary) functions can improve performance but I can make your catalog out of sync as well. So be careful!
Possible values :
-
Check everything (Default)
-
No check for moved or renamed files
-
No check for updated files
-
No check for updated, moved or renamed files
-
No check for missing, moved or renamed files
-
No check for missing or updated files
-
No check for updated, missing, moved or renamed files
Additional parameters that can be added
hotquery
By default this workflow checks all records in the catalog – unless you add this parameter with a query on the categories. By doing this you could have several watchfolder workflows watch a different folder and thus different records underneath a category.
MaxLenghtFolderPath
By default this workflow allows folder-paths to have a length of 200 characters because some operating systems have trouble with longer file-paths.
By adding this parameter and setting it to e.g. 400 you allow the workflow to have longer folder-paths