The Task Manager controls and executes the bots post and pre-launch scripts. The displayed pre-launch and post-launch scripts transfer files between a network share and the local client executing the workflow files (for example, the client pulls the latest workflow version from the share before execution). Pre-launch scripts are also used for process initialization tasks, which may include screen resolution updates or closing open applications. The post-launch script might be used to move/copy local data or files to the network drive when the process is completed.
| Name | Description |
|---|---|
| (1) Menu Bar | Menu bar to create, edit or delete the Task Manager. |
| (2) List of Task Managers | List of all available Task Managers. |
| Name | Description |
|---|---|
| Name | Name of your Task Manager. |
| Description | Give a short description of your Task Manager. |
| PreLaunchCodeScript | Enter code snippet for PreLaunchScript. |
| PostLaunchCodeScript | Enter code snippet for PostLaunchScript |
The following code snippets can be used as a template for individual pre & post-launch scripts and are set as default scripts in your Hyland RPA Manager. Just edit the variables to the parameters of your choice.
Pre-Launch
string source = @"\\DATA.FILESHARE";
string processPath = source + @"\Repository\Processes\RPA\Demo\Deployment";
string librariesPath = source + @"\Libraries\Deployment";
string destination = @"C:\HylandRPA";
string logsEnabled = "ON";
string logsPath = source + @"\Scripts\Logs\%COMPUTERNAME%";
int timeoutSeconds = 600;
System.Diagnostics.Process process = new System.Diagnostics.Process(); process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; var argsList = new string[] {"PreLaunch", timeoutSeconds.ToString(), logsEnabled, logsPath, destination, source, processPath, librariesPath, ""}; process.StartInfo.FileName = source + @"\Scripts\Taskmanager_Bootloader.bat"; process.StartInfo.Arguments = "\"" + String.Join("\" \"", argsList) + "\""; process.Start(); process.WaitForExit();
string source = Please place your file share path indicating the HylandRPA root directory here. Please ensure the availability of required files for example, \\DATA.FILESHARE\Scripts.\Taskmanager_Bootloader.bat and \\DATA.FILESHARE\Scripts\Taskmanager_PreLaunch.bat respectively.
string processPath = Please place your process folder path here, not the file path!
string librariesPath = Please place your library folder path here.
string destination = Please place your local process folder here. All data will be copied locally (for each Client) into this directory.
string logsEnabled = Detailed execution logs of the scripts. Choose "ON"; or "OFF"; Alternatively ("1"; or "0"; and "True"; or "False";
string logsPath = Please place your log folder path here.
Post-Launch
string destination = @"\\DATA.FILESHARE";
string fileshareProtocols = destination + @"\Protocols";
string logsEnabled = "ON";
string logsPath = destination + @"\Scripts\Logs\%COMPUTERNAME%";
int timeoutSeconds = 600;
System.Diagnostics.Process process = new System.Diagnostics.Process(); process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; var argsList = new string[] {"PostLaunch", timeoutSeconds.ToString(), logsEnabled, logsPath, "", destination, "", "", fileshareProtocols}; process.StartInfo.FileName = destination + @"\Scripts\Taskmanager_Bootloader.bat"; process.StartInfo.Arguments = "\"" + String.Join("\" \"", argsList) + "\""; process.Start(); process.WaitForExit();
string destination = Please place your file share path indicating the HylandRPA root directory here. Please ensure the availability of the required file: \\DATA.FILESHARE\Scripts\Taskmanager_PostLaunch.bat.
string fileshareProtocols = Please place your file share protocol folder path here.
string logsEnabled = Detailed execution logs of the scripts. Choose "ON"; or "OFF"; Alternatively ("1"; or "0"; and "True"; or "False";
string logsPath = Please place your log folder path here.
The scripts above refer to 3 different batch-files.
- Bootloader
- Pre-Launch
- Post-Launch
Make sure to enter the correct file path to these batch files in your Taskmanager scripts. The default path is the following: source + @"\Scripts. There is no need to edit the batch-files, the whole configuration is done in the Hyland RPA Manager.
Bootloader Batch File
source + @"\Scripts\Taskmanager_Bootloader.bat
@echo off & setlocal
setlocal enableDelayedExpansion
TITLE HYLAND RPA BOOTLOADER
set TYPE=%~1
set TIMEOUT=%~2
set LOGS_ENABLED=%~3
set LOGS_PATH=%~4
set LOCAL_PATH=%~5
set FILESHARE_PATH=%~6
set PROCESS_PATH=%~7
set LIBRARIES_PATH=%~8
set PROTOCOLS_PATH=%~9
rem check if value is "1" or "ON" or "on" or "true" or "True" or "TRUE"
set TESTVAR=%LOGS_ENABLED%
for %%A in ("1" "ON" "on" "true" "True" "TRUE") do if "%TESTVAR%" equ %%A (set TESTVAR=1)
if "%TESTVAR%" equ "1" (set LOGS_ENABLED=1) else (set LOGS_ENABLED=0)
set LOGFILE=%TEMP%\Taskmanager_%TYPE%.txt
set hlpr=
set exec=""%FILESHARE_PATH%\Scripts\Taskmanager_%TYPE%.bat" "%LOGS_ENABLED%" "%LOGS_PATH%" "%LOCAL_PATH%" "%FILESHARE_PATH%" "%PROCESS_PATH%" "%LIBRARIES_PATH%" "%PROTOCOLS_PATH%""
if "%TYPE%" equ "" (set hlpr="1st argument must be either PreLanch or PostLaunch")
if "%TIMEOUT%" equ "" (set hlpr="2nd argument must be non empty value") else if %TIMEOUT% leq 0 (set hlpr="2nd argument must be a number greater than 0")
if "%LOGS_ENABLED%" equ "1" (
if "%LOGS_PATH%" equ "" (set hlpr="6th argument must be non empty value") else (mkdir "%LOGS_PATH%" & set LOGFILE=%LOGS_PATH%\Taskmanager_%TYPE%.txt)
)
if not exist "%FILESHARE_PATH%\Scripts\Taskmanager_%TYPE%.bat" (set hlpr="The file %FILESHARE_PATH%\Scripts\Taskmanager_%TYPE%.bat does not exist")
(
echo ******* BOOTLOADER START **** %DATE% *** %TIME% *** %COMPUTERNAME% *** %USERNAME% ***
echo ******* BOOTLOADER *** Append log to file "!LOGFILE!"
echo ******* BOOTLOADER *** START %TYPE% with cmd ^(start "%TYPE%_SCRIPT" ^/MIN cmd ^/C %exec%^)
if defined hlpr (
echo ******* %TYPE% ABORTED **** Invalid parameters: !hlpr!
exit /B 1
)
) >> "!LOGFILE!"
start "%TYPE%_SCRIPT" /MIN cmd /C %exec%
echo ******* BOOTLOADER *** %TYPE% Script has started with max. runtime of %TIMEOUT% seconds. >> "!LOGFILE!"
rem ### Check Loop
for /l %%i in (1,1,%TIMEOUT%) do (
call :CHECK
)
rem ### Window not closed -> Kill %TYPE%
taskkill /FI "WINDOWTITLE eq %TYPE%_SCRIPT" /T /F
taskkill /FI "WINDOWTITLE eq Administrator: %TYPE%_SCRIPT" /T /F
echo ******* BOOTLOADER *** ABORTED %TYPE% after TIMEOUT^=%TIMEOUT% seconds **** %DATE% *** %TIME% *** %COMPUTERNAME% *** %USERNAME% *** >> "!LOGFILE!"
echo ******* BOOTLOADER *** Please check log file and increase timeout value if necessary. >> "!LOGFILE!"
exit
rem ### Checks
:CHECK
rem CHECK 1a: %TYPE%_SCRIPT
set "befehl=tasklist /FI "WINDOWTITLE eq %TYPE%_SCRIPT" 2>NUL | find /I "cmd.exe""
for /F "delims=*" %%p in ('!befehl! ^| findstr "cmd.exe" ') do (
echo %TYPE% is still running
Timeout 1
GOTO :eof
)
rem CHECK 1b: %TYPE%_SCRIPT (ADMIN only)
set "befehl=tasklist /FI "WINDOWTITLE eq Administrator: %TYPE%_SCRIPT" 2>NUL | find /I "cmd.exe""
for /F "delims=*" %%p in ('!befehl! ^| findstr "cmd.exe" ') do (
echo %TYPE% Admin is still running
Timeout 1
GOTO :eof
)
rem CHECK 2: Windows PowerShell
set "befehl=tasklist /FI "WINDOWTITLE eq Windows PowerShell" 2>NUL | find /I "cmd.exe""
for /F "delims=*" %%p in ('!befehl! ^| findstr "cmd.exe" ') do (
echo %TYPE% is still running
Timeout 1
GOTO :eof
)
echo ******* BOOTLOADER END **** %DATE% **** %TIME% **** %TYPE% Script has finished for "%PROCESS_PATH%". >> "!LOGFILE!"
if "%LOGS_ENABLED%" neq "1" (del /q /s !LOGFILE!)
exit
Pre-Launch Batch File
source + @"\Scripts\Taskmanager_PreLaunch.bat @echo on & setlocal setlocal enableDelayedExpansion set LOGFILE=%~n0.txt set LOGS_ENABLED=%~1 set LOGS_PATH=%~2 set LOCAL_PATH=%~3 set FILESHARE_PATH=%~4 set PROCESS_PATH=%~5 set LIBRARIES_PATH=%~6 set PROTOCOLS_PATH= set hlpr= set now=%TIME% rem set destination path for local processes. Example: if PROCESS_PATH=Z:\Monday\Repository\Processes\RPA\YOURPROCESS\Deployment then LOCAL_REPO_PROCESSES=C:\Monday\Repository\Processes\RPA\YOURPROCESS call set LOCAL_REPO_PROCESS=%%PROCESS_PATH:!FILESHARE_PATH!=!LOCAL_PATH!%% set LOCAL_REPO_PROCESS=%LOCAL_REPO_PROCESS:\Deployment=% set LOCAL_REPO_PROCESS=%LOCAL_REPO_PROCESS:\PreDeployment=% rem set LOCAL_REPO_LIBRARIES=%LOCAL_PATH%\Libraries call set LOCAL_REPO_LIBRARIES=%%LIBRARIES_PATH:!FILESHARE_PATH!=!LOCAL_PATH!%% set LOCAL_REPO_LIBRARIES=%LOCAL_REPO_LIBRARIES:\Deployment=% set LOCAL_REPO_LIBRARIES=%LOCAL_REPO_LIBRARIES:\PreDeployment=% if "%FILESHARE_PATH%" equ "" (set hlpr="FILESHARE_PATH must be non empty value") if "%LOCAL_PATH%" equ "" (set hlpr="LOCAL_PATH must be non empty value") if "%LOGS_ENABLED%" equ "1" ( if "%LOGS_PATH%" equ "" (set hlpr="LOGS_ENABLED must be non empty value" & set LOGFILE=%TEMP%\!LOGFILE!) else (mkdir "%LOGS_PATH%" & set LOGFILE=%LOGS_PATH%\!LOGFILE!) ) else (set LOGFILE=%TEMP%\!LOGFILE!) if "%PROCESS_PATH%" equ "" (set hlpr="PROCESS_PATH must be non empty value") ( echo. echo ******* PRELAUNCH START **** %DATE% **** %NOW% ******** echo. echo Starting Prelaunch script with parameters: echo LOCAL_PATH="%LOCAL_PATH%" echo FILESHARE_PATH="%FILESHARE_PATH%" echo LOGS_ENABLED="%LOGS_ENABLED%" echo LOGS_PATH="%LOGS_PATH%" echo PROCESS_PATH="%PROCESS_PATH%" echo LIBRARIES_PATH="%LIBRARIES_PATH%" echo. if defined hlpr ( echo ******* PRELAUNCH ABORTED **** Invalid parameters: !hlpr! exit /B 1 ) echo **************************************************************************** echo. echo Copy all Custom Activities ^(Libraries^) files from "%LIBRARIES_PATH%" to "%LOCAL_REPO_LIBRARIES%" echo. xcopy "%LIBRARIES_PATH%\*.*" "%LOCAL_REPO_LIBRARIES%\*.*" /I /D /Y /S /C echo. echo **************************************************************************** echo. echo Copy all files from "%PROCESS_PATH%" to "%LOCAL_REPO_PROCESS%" echo. echo **************************************************************************** xcopy "%PROCESS_PATH%\*.*" "%LOCAL_REPO_PROCESS%\*.*" /I /Y /S /C echo. echo **************************************************************************** echo. echo Copy all Hyland RPA Designer Activities files from "%FILESHARE_PATH%\Activities" to "%LOCAL_PATH%\Activities" echo. echo **************************************************************************** echo. xcopy "%FILESHARE_PATH%\Activities\*.*" "%LOCAL_PATH%\Activities\*.*" /I /D /Y /S /C ) >> "!LOGFILE!" 1>> "!LOGFILE!" 2>&1 ( echo ******* PRELAUNCH END **** %DATE% **** %NOW%-%TIME% ******** echo. ) >> "!LOGFILE!"
Post-Launch Batch File
source + @"\Scripts\Taskmanager_PostLaunch.bat
@echo on & setlocal setlocal enableDelayedExpansion set LOGFILE=%~n0.txt set LOGS_ENABLED=%~1 set LOGS_PATH=%~2 set LOCAL_PATH= set FILESHARE_PATH= set PROCESS_PATH= set LIBRARIES_PATH= set PROTOCOLS_PATH=%~7 set hlpr= set now=%TIME% if "%PROTOCOLS_PATH%" equ "" (set hlpr="PROTOCOLS_PATH must be non empty value") if "%LOGS_ENABLED%" equ "1" ( if "%LOGS_PATH%" equ "" (set hlpr="LOGS_ENABLED must be non empty value" & set LOGFILE=%TEMP%\!LOGFILE!) else (mkdir "%LOGS_PATH%" & set LOGFILE=%LOGS_PATH%\!LOGFILE!) ) else (set LOGFILE=%TEMP%\!LOGFILE!) ( echo. echo ******* POSTLAUNCH START **** %DATE%**** %NOW% ******** echo Starting Postlaunch script with parameters: echo FILESHARE_PATH="%FILESHARE_PATH%" echo PROTOCOLS_PATH="%PROTOCOLS_PATH%" echo LOGS_ENABLED="%LOGS_ENABLED%" echo LOGS_PATH="%LOGS_PATH%" echo. if defined hlpr ( echo ******* POSTLAUNCH ABORTED **** Invalid parameters: !hlpr! exit /B 1 ) if EXIST "%UserProfile%\Desktop\Protocols\*.*" ( echo. echo **************************************************************************** echo. echo Move all Protocols from "%UserProfile%\Desktop\Protocols" to "%PROTOCOLS_PATH%" echo. echo **************************************************************************** xcopy "%UserProfile%\Desktop\Protocols\*.*" "%PROTOCOLS_PATH%\*.*" /I /S /Y /D if errorlevel 5 (echo ******* ERROR ******* ) else ( if errorlevel 4 (echo ******* ERROR ******* ) else ( if errorlevel 0 (rmdir /q /s "%UserProfile%\Desktop\Protocols" ) ) ) ) else ( echo ******* POSTLAUNCH INFO **** No protocols found in "%UserProfile%\Desktop\Protocols ************* ) if EXIST "%UserProfile%\Desktop\Protokoll\*.*" ( echo. echo **************************************************************************** echo. echo Move all Protocols from "%UserProfile%\Desktop\Protokoll" to "%PROTOCOLS_PATH%" echo. echo **************************************************************************** xcopy "%UserProfile%\Desktop\Protokoll\*.*" "%PROTOCOLS_PATH%\*.*" /I /S /Y /D if errorlevel 5 (echo ******* ERROR ******* ) else ( if errorlevel 4 (echo ******* ERROR ******* ) else ( if errorlevel 0 (rmdir /q /s "%UserProfile%\Desktop\Protokoll" ) ) ) ) else ( echo ******* POSTLAUNCH INFO **** No protocols found in "%UserProfile%\Desktop\Protokoll ************* ) rem Copy CONDUCTOR-Log from Client to network drive. rem xcopy "%TEMP%\Am.Net.Core.Conductor.log" "%FILESHARE_PATH%\Scripts\Logs\$%COMPUTERNAME%\*.*" /Y /D ) >> "!LOGFILE!" 1>> "!LOGFILE!" 2>&1 ( echo. echo ******* POSTLAUNCH END ****%DATE% **** %NOW%-%TIME% ******** echo. ) >> "!LOGFILE!"