Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
png
as2_task.png 91.3 kB 2 05-Dec-2023 05:32 Halmágyi Árpád
png
compress_task.png 54.6 kB 1 05-Dec-2023 05:32 Halmágyi Árpád
png
copy_task.png 135.1 kB 5 05-Dec-2023 05:32 Halmágyi Árpád
png
decompress_task.png 53.4 kB 1 05-Dec-2023 05:32 Halmágyi Árpád
png
delete_task.png 118.0 kB 3 05-Dec-2023 05:32 Halmágyi Árpád
png
email_task.png 72.3 kB 3 05-Dec-2023 05:32 Halmágyi Árpád
png
exclude_task.png 44.2 kB 3 05-Dec-2023 05:32 Halmágyi Árpád
png
execute_task.png 96.6 kB 3 05-Dec-2023 05:32 Halmágyi Árpád
png
fileparser_task.png 64.9 kB 1 05-Dec-2023 05:32 Halmágyi Árpád
png
find_task.png 129.1 kB 5 05-Dec-2023 05:32 Halmágyi Árpád
png
findcache_task.png 51.0 kB 2 05-Dec-2023 05:32 Halmágyi Árpád
png
http_task.png 89.5 kB 2 05-Dec-2023 05:32 Halmágyi Árpád
png
java_task.png 51.2 kB 1 05-Dec-2023 05:32 Halmágyi Árpád
png
jump_task.png 77.4 kB 3 05-Dec-2023 05:32 Halmágyi Árpád
png
jump_task_groupby.png 28.6 kB 1 05-Dec-2023 05:32 Ada Csaba
png
kill_task.png 44.5 kB 1 05-Dec-2023 05:32 Halmágyi Árpád
png
link_task.png 49.4 kB 1 05-Dec-2023 05:32 Halmágyi Árpád
png
makedirectory_task.png 109.9 kB 3 05-Dec-2023 05:32 Halmágyi Árpád
png
move_task.png 129.3 kB 4 05-Dec-2023 05:32 Halmágyi Árpád
png
pgp_task.png 61.2 kB 2 05-Dec-2023 05:32 Halmágyi Árpád
png
popimap_task.png 115.0 kB 2 05-Dec-2023 05:32 Halmágyi Árpád
png
preview_task.png 43.9 kB 3 05-Dec-2023 05:32 Halmágyi Árpád
png
rename_task.png 59.7 kB 3 05-Dec-2023 05:32 Halmágyi Árpád
png
sort_task.png 44.7 kB 1 05-Dec-2023 05:32 Halmágyi Árpád
jpg
sql_task.jpg 141.0 kB 1 05-Dec-2023 05:32 Ada Csaba
png
sql_task.png 85.3 kB 1 05-Dec-2023 05:32 Halmágyi Árpád
png
tunnel_task.png 54.2 kB 1 05-Dec-2023 05:32 Halmágyi Árpád
png
unzip_task.png 59.1 kB 3 05-Dec-2023 05:32 Halmágyi Árpád
png
userlist_task.png 68.3 kB 1 05-Dec-2023 05:32 Halmágyi Árpád
png
userslist_task.png 31.9 kB 1 05-Dec-2023 05:32 Ben Spink
png
uservariable_task.png 68.3 kB 3 05-Dec-2023 05:32 Halmágyi Árpád
png
wait_task.png 51.8 kB 3 05-Dec-2023 05:32 Halmágyi Árpád
png
writefile_task.png 90.3 kB 3 05-Dec-2023 05:32 Halmágyi Árpád
png
zip_task.png 58.4 kB 4 05-Dec-2023 05:32 Halmágyi Árpád

This page (revision-81) was last changed on 20-Nov-2024 04:21 by Ben Spink

This page was created on 05-Dec-2023 05:32 by Ben Spink

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 1 changed one line
This plugin allows you to post process files using a powerful set of tasks. You can move files, rename them, copy them, execute external programs, write text files, use date variables, multithread operations, copy to FTP/FTPS/SFTP servers, etc.
__IMPORTANT: due to the security updates since CrushFTP version 10.5.2+ any JDBC driver jar file needs to be placed into the CrushFTP10/plugins/lib/ directory, or it won't load.__
\\
\\
This plugin allows you to post-process files using a powerful set of tasks. You can move files, rename them, copy them, execute external programs, write text files, use date variables, multithread operations, copy to FTP/FTPS/SFTP servers, etc.
At line 3 changed 4 lines
[Example Task Flow #1|CrushTaskExample]\\
[Example Task Flow #2|CrushTaskExample2]\\
[Example Task Flow #3|CrushTaskExample3]\\
[Example Task Flow #4|CrushTaskExample4]\\
[CrushTask Functions] helps explain some of the advanced string manipulation functions you can do in CrushTask, typically in a UserVariable task.
At line 8 changed one line
The source filter is on every task. It will filter out items that don't match the source from being included in the current task item. So you may want to apply certain actions to specific file types on a per task basis.
[Example Task Flow -- Folder monitor triggered task.|CrushTaskExample]\\
[Example Task Flow -- Find local files and copy them to remote servers.|CrushTaskExample2]\\
[Example Task Flow -- Expire users password and email password reset link.|CrushTaskExample3]\\
[Example Task Flow -- Import users from *.csv file.|CrushTaskExample4]\\
[Example Task Flow -- Allow username lookup on internal share.|CrushTaskExample5]\\
[Example Task Flow -- Delete subfolders but keep root folders.|CrushTaskExample6]\\
[Example Task Flow -- Self register and enable accounts.|CrushTaskExample7]\\
[Example Task Flow -- Notify users of expired password.|CrushTaskExample8]\\
[Example Task Flow -- Auto register and set password on first logon.|CrushTaskExample9]\\
[Example Task Flow -- Auto Update CrushFTP.|CrushTaskExample10]\\
[Example Task Flow -- Upload with approval and move files.|CrushTaskExample11]\\
[Example Task Flow -- Looping through files and delete copied files.|CrushTaskExample12]\\
[Example Task Flow -- Find new files and send a notification or process them.|CrushTaskExample13]\\
[Example Task Flow -- Copy or move folders to another location preserving the inner folder structure (Recursive Copy/Move)|CrushTaskExample14]\\
[Example Task Flow -- Find and Copy items older than and newer than X days|CrushTaskExample15]\\
[Example Task Flow -- One-click upload and notify a contact about it|CrushTaskExample16]\\
[Example Task Flow -- Setting up a Controller job for multiple Data Centers and redundancy|CrushTaskExample17]\\
[Example Task Flow -- Renew Azure SAS token via Azure User impersonation| CrushTaskExample18]
At line 27 added 2 lines
The source filter is on every task. It will filter out items that don't match the source from being included in the current task item. So you may want to apply certain actions to specific file types on a per-task basis.
At line 12 changed one line
The error jump field allows you to jump to a particular task item in the list if the current task fails for any reason.
The error jump field allows you to jump to a particular task item in the list if the current task fails for any reason.\\
__Default Failure__ : If a task has this name, then that task will capture all failures without needing to draw lines to it.\\
At line 15 changed one line
The find task will scan a particular folder, or remote FTP, or SFTP server getting directory listings recursively up to the depth allowed. These found items can then be used by future task items. This task is often the starting item in a list of tasks.
The find task will scan a particular folder or remote FTP, or SFTP server getting directory listings recursively up to the depth allowed. These found items can then be used by future task items. This task is often the starting item in a list of tasks.
At line 37 added 2 lines
You can use Regular Expressions in the Find Filter. Regular expressions need to be prefixed with "REGEX:" literal. Also, keep in mind we do a match against the full source URL. Finally, we only support Java-style regular expressions.
At line 23 changed one line
If the FindCache option is used, the items found will further be filters out so prior known items aren't found again.
If the FindCache option is used, the items found will further be filtered out so prior known items aren't found again.
At line 41 changed one line
The wait amount is how long to wait to verify the file is no longer being written to by some outside process. The modified date, and file size are both compared. It will wait put o the max amount of time before giving up and aborting the job.
The wait amount is how long to wait to verify the file is no longer being written to by some outside process. The modified date and file size are both compared. It will wait the maximum amount of time before giving up and aborting the job.
At line 43 changed one line
If you want to work with the copied files, you can have them added intuit he list of files that are being processed for future tasks. Be careful with this because if you do this, and then do a delete, both the original and copy would then be deleted.
If you want to work with the copied files, you can have them added to the list of files that are being processed for future tasks. Be careful with this because if you do this, and then do a delete, both the original and copy would then be deleted.
At line 72 changed one line
This task allows for running an external process. This can allow outside integration processes to be performed. The output of these programs are fed into the log for this task to allow for monitoring of its results. keep in mind in windows, running a bat file requires running cme.exe, and passing int he arguments for cmd.exe to execute the batch file.
This task allows for running an external process. This can allow outside integration processes to be performed. The output of these programs are fed into the log for this task to allow for monitoring of its results.
At line 75 changed one line
---
!input/parameters:
*__Command:__ the name of (or full path to) the external binary. In case running scripts, here comes the script interpreter binary name, cmd.exe for a Windows batch script\\
or sh , /bin/bash , etc. for a linux shell script, etc.\\
*__Argument:__ the list of arguments passed to Command, the list items separated by __Separator__ character ";" (semicolon) by default. In case running scripts, here comes\\
the script file name followed by any arguments to be passed to
*__Working directory:__ the parent path of the binary or script file, we do a change directory into this folder before invoking Command. In case running scripts, here comes\\
the full parent path of the script file
*__Environment variables:__ leave it empty, rarely needed\\
*__Separator:__ by default ; (__semicolon__), needed due to the specific way white spaces are handled. Need to use this instead of whitespace characters in the __Arguments__ list,\\
those will be replaced at run time with white spaces.
!output:
the task will feed it's output to the next task item, if any, can be referenced by the {execute_log} server variable. Alternatively, you can always reference {last_execute_log} which is the last one for that entire job, not specific to one particular one. This is useful when just calling execute and not passing in a list of items to that task.
----
At line 87 changed one line
This task will instantly pass in any found files to the [preview] worker inside of CrushFTP requesting for the files to have their thumbnails generates. This is only useful if you are showing previews of image type files on the [WebInterface].
This task will instantly pass in any found files to the [preview] worker inside of CrushFTP requesting for the files to have their thumbnails generates. This is only useful if you are showing previews of image-type files on the [WebInterface].
At line 97 changed one line
This task will jump to a specified job, and task item. If the job is left empty, then the task in the current job will be located and used. If a job is jumped to, the task that matches the name will be the starting point in that job. Jumping to a job is only possible for enterprise licenses. Once the jumped to job is complete, the task will continue on to the next step of the current job.
This task will jump to a specified job, and task item. If the job is left empty, then the task in the current job will be located and used. If a job is jumped to, the task that matches the name will be the starting point in that job. Jumping to a job is only possible for enterprise licenses. Once the jumped to job is complete, the task will continue on to the next step of the current job.\\
Jump also has the special ability to "group" matching items together and call the "true" task with each grouping of items. This might be useful for example to group files together based on extension, or based on their modified date's Month, etc. The syntax for grouping is to use the left side condition of "GROUPBY" then matches pattern, then use some expression on the right side like {MMM} for example.
At line 102 changed one line
This allows you to make a variable that you will then reference in other future steps. So you might make a "archive" variable, and then reference it in other steps as {archive} so that fi that changed, you would only need to change it in one location.
This allows you to make a variable that you will then reference in other future steps. So you might make a "archive" variable and then reference it in other steps as {archive} so that if that changed, you would only need to change it in one location.
At line 107 changed one line
This will unzip a file that is in the list. Its suggested you filter down on *.zip to only get valid items in case of a mixed list of items. The external unzip method will call the OS's unzip utility to unzip. This will only work on OS X, or Linux / Unix based systems. Otherwise the internal method will work too.
This will unzip a file that is in the list. It's suggested you filter down on *.zip to only get valid items in case of a mixed list of items. The external unzip method will call the OS's unzip utility to unzip. This will only work on OS X, or Linux / Unix-based systems. Otherwise, the internal method will work too.
At line 112 changed one line
This will take all items in the list and zip them into a single file. Its suggested to then do an Exclude task to them remove all items, and then go Find the single zip you just made if you want to do further processing.
This will take all items in the list and zip them into a single file. It's suggested to then do an Exclude task to them remove all items, and then go Find the single zip you just made if you want to do further processing.
At line 127 changed one line
This task allows for taking the items in the list and sending them on to a AS2 server. You can configure all the typical AS2 settings for encryption and signing.
This task allows for taking the items in the list and sending them on to a AS2 server. You can configure all the typical AS2 settings for encryption and signing.\\
The recipient URL can also have custom headers defined. Example:\\
''Example: https://other_domain.com/as2#Contet-Type=text/plain&Another-Header-Name=something else&etc''
At line 132 changed one line
The HTTP task lets you post events to another HTTP server with information about files that were transferred. You can control various aspects about how the connection is made and put in your variables for the data you want posted.
The HTTP task lets you post events to another HTTP server with information about files that were transferred. You can control various aspects about how the connection is made and put in your variables for the data you want to be posted. You have some additional variables like these to reference: {http_response_code}, {http_response_message}, {http_response_log}.
At line 178 added 10 lines
__New Method: Info__ -> Usage : If the input is a pgp public key file and the Method is "Info" the PgpTask will add the pgp key settings info, and you can reference them as variables like:
{{{
{pgp_user_id},{pgp_creation_time},{pgp_is_expired}, {pgp_expiration_date},{pgp_expiration_time}, {pgp_algorithm},{pgp_algorithm_type},{pgp_prefferred_cipherse},{pgp_prefferred_hash},{pgp_ascii_version_header},{pgp_valid_days},{pgp_key_size},{pgp_key_id_long_hex},{pgp_is_valid_forever}
}}}\\
\\
__PBE (Password-based encryption)__\\
\\
Set the key location to "password:".\\
Provide the password in the "Key password(if any)" input field.\\
At line 203 added 77 lines
!SQL
This task can be used to run SQL statements or even full scripts against an SQL database server. The DB driver class name and the URL syntax is usually specific to a certain DB family, need to find out from the documentation of the JDBC driver.
[{Image src='sql_task.jpg' width='..' height='..' align='left' style='..' class='..' }]
!parameters:
*DB Driver: the JDBC driver class name.\\
*DB Driver File: the JDBC driver jar file path on server.\\
*DB URL: the SQL server URL we connect to.\\
*DB User, DB Password: the login credentials of the DB query account.\\
*Query: input field for the SQL statement or script.\\
The __Rollback if a transaction fails__ flag if set, the task signals the SQL server before issuing the transaction to automatically roll back in case of a runtime error was raised.
\\
!input:
Generic list items passing from the previous task. Input fields also accept server variables, where it makes sense.
!output:
The SQL task will feed it's output to the next task item, if any. The DB table column names can be used as server variables, enclosed within curly brackets, to reference table cell values of a row. The next task will usually loop through the rows list.
----
!Java
Here is a sample class that needs to be in the class path. You then reference it directly in the job. You need to include the library for CrushTask.jar for this. Then in your java class, reference "task.MyClass"
{{{
package tasks;
import java.util.Properties;
import java.util.Vector;
public class MyClass extends Task
{
public MyClass(Properties prefs, Vector items, Properties info, Vector threads)
{
super(prefs, items, info, threads);
}
public Task go()
{
run();
return null;
}
public void run()
{
try
{
newItems.addAll(items);//keep all the items for the next task.
for (int x = 0; x < items.size(); x++)
{
Properties p = (Properties) items.elementAt(x);
System.out.println(p.getProperty("url"));
}
Vector v = (Vector) prefs.get("prop_item");
Properties prop_item = new Properties();
for (int x = 0; x < v.size(); x++)
{
Properties p = (Properties) v.elementAt(x);
prop_item.put(p.getProperty("key"), p.getProperty("val", ""));
}
Enumeration keys = prop_item.keys();
while (keys.hasMoreElements())
{
String key = keys.nextElement().toString();
String val = prop_item.getProperty(key, "").trim();
}
msg("MyClass");
}
catch (Exception e)
{
e.printStackTrace();
msg(e);
error = e;
}
}
}
}}}
----
Version Date Modified Size Author Changes ... Change note
81 20-Nov-2024 04:21 17.887 kB Ben Spink to previous
« This page (revision-81) was last changed on 20-Nov-2024 04:21 by Ben Spink
G’day (anonymous guest)
CrushFTP11 | What's New
JSPWiki