Designer

Situation: I want to access sub-menus under the main app menus. When I click an upper menu to open a sub-menu, the target UI object is selected and the sub-menus cannot be selected.

Solution: When you need to select the target UI after clicking an UI object of the previous stage, such as a sub-item of an app menu or a context menu, the UI object clicked in the previous stage is specified as the target UI object. The same problem occurs when you need to move to the relevant screen using the mouse when the UI object to specify does not exist on the screen.
In this case, you can temporarily stop the target selection by pressing the Ctrl key on the keyboard. Then, when you are ready, you can start selecting the target object again by pressing the Ctrl key again.

Situation: An error occurs when performing a target UI object test.

Solution: The property values that can be edited, such as the Name or Value are handled the same way as a script code when creating a script.
Therefore, regular text strings must be entered inside quotation marks. (You can enter variable names without quotation marks.) The screen above shows an error when a variable is specified for the Name property. Because the value of the variable is decided at the time of execution, the value cannot be used during the test in the scenario writing stage.
If the quotation marks are omitted while inputting a text string, an error may occur as the input value is recognized as a variable name or a script syntax.

Situation: The target UI object cannot be found.

Solution: Check the values in the Name and Value fields, and the Check Name, Check Value, and Check Size property settings of the target UI object in the Properties window. If the target UI object information at the time of recording is different from the information at the time of the execution, the target UI object may not be found.
There are cases where the target UI does not properly provide the object information in some apps including Chrome browser or websites using Flash. In this case, you can specify the target UI using the image recognition provided by the ImageRecognition library features.

Situation: Individual UI object runs fine. However, errors occur when I run multiple UI objects consecutively.

Solution: Some UI objects, such as combination boxes or context menus, may disappear from the screen when the focus shifts. In this case, try again after setting the Focus Before property to False.
The UI object information may not be properly received while the screen is being switched. There exists a higher possibility of errors especially when the screen is switching to a new window. In this case, add the Delay activity card steps to adjust the operation speed.

Situation: An error occurs when I call another task.

Solution: After checking the Input and Output fields in the Properties window of the task to call, check the Input and Output fields in the RunTask Properties window where the error occurred. The Input and Output variables of the target task and the Input and Output properties of the RunTask activity card must match. If the Input and Output variables of the task are changed, they must also be changed in the RunTask properties to call the task.
Check if the task to call is saved. Tasks that have not been saved will be executed using the script before making the changes.

Situation: V3 generates an error message whenever I run an RPA process.

Solution: V3 generates a blocking message when the “.EXE” program is not signed or the execution of the program on multiple PCs is not confirmed. Include "Bot.exe” and “Designer.exe” in the “Exception settings” menu in V3 settings. Or disable the “Cloud diagnostics” option in the advanced menu of V3 settings.

Situation: Designer activation error occurred.

1) Situation

- A “Network Error” message is displayed when activating the Designer license (refer to the image below).
- Connection to external network and Orchestrator are available and the following ports are open.
- Port Gateway IP: 8777 RPA Admin IP: 8080 Comm IP: 9001

2) Cause of error

- Invalid certificate
- Check the log. 2019-04-09 16:13:35,081 [T37] ERROR CertificationClient
############################################ Cert Check Failed.
### => No matched certificate
###############################################################
2019-0409 16:13:35,104 [T1] ERROR CertificationClient
The remote certificate is invalid according to the validation procedure.

3) Solution

- (Temporary solution) Download two new certificates and overwrite them to the following path (auth_server.cer, AUTH_SERVER_CERTIFICATE.crt)
Ex.) C:\Users\SDS\AppData\Roaming\RPA.BOT
C:\Users\SDS\AppData\Roaming\RPA.Designer
- (Fundamental solution) Apply a clean certificate file to the installation package.

Situation: I would like to automate a process that enters and updates data and saving it after creating an Excel file. I added the file to the RESOURCES folder. Then, what is the path for the folder?

Solution: After adding the file to the “Resources” folder, the path for the folder will be created as "Global.ResourcesDir + FileDirectory.” The actual path is “Project Directory\Resources\FileName.”

Situation: I can operate the task again in an “OnError” event when an error occurs. However, when the task is operated again, it is processed without the “OnError” event and the operation stops with an exception.

Solution: At this moment, there is no solution for processing errors after operating the task again.
We will improve the program to allow proper operation and reflect the changes in the next version.
(Up to 10 retries will be allowed to prevent a permanent loop.)

Situation: [RetryTask] How can I run a task again after an error occurs?

Solution:

1) Register the error handler with the OnError property of the task and add the RetryTask to the error handler.
2) Start Step & No./ID
- ErrorStep: Run the task again after adding a specified number of steps (No./ID) to the step where the error occurred.
Ex.) If the specified No./ID is 1, the task will be run from the next step from where the error occurred. If the No./ID is -1, task will be run from one step before the step where the error occurred.
- StepNo: Run the task gain from the specified step.
Ex.) If the specified No./ID is 3, the task will be run from the third step.
- StepID: Run the task again from the step with the specified ID.
(You can check the ID at the “STEP()” line in script view. However, this method is not recommended because it is an auxiliary feature for certain special cases.)
3) Task Name: Name of the task to retry. By default, the “senderName” variable of the error handler will be used.
4) Output (Caution)
- If the variable is not specified, the task will be returned immediately after the RetryTask activity and the rest of the steps after the RetryTask activity will not be executed.
- When you specify a variable, add the TerminateFlow activity card to the flow and assign the variable in the Result property to ensure that the task result can be properly returned.
* Other constraints and cautions
. When running the task again, only the data stored in the administered objects, such as “this” and “Global” variables will be maintained. Local variables written in code for activity cards such as ExecuteScript will not be maintained.
Therefore, if you run the task again in the middle, an error occurs when the local variable that were specified before the specified position are used.
 .When executing a task from the step where an error occurred, a permanent loop may occur if the error and retry operations are repeated. Therefore, make sure that the task has been properly configured for the retry before running the task again.

Situation: After registering an error handler in the upper process to process an error occurred in a sub-task, the program cannot find the next step to proceed. Do I need to register error handlers for all of the sub-tasks?

Solution: A “try-catch” statement is created when you register an error handler. Because errors that are not processed as exceptions (uncaught errors) are delivered to the upper task, you may need to register errors handlers for sub-tasks whenever it is required.
Add the “RetryTask” activity card to the error handler to allow the program to proceed to the next step. Specify the ErrorStep item in the Start Step property and enter “1” in the “No./ID” field to continue the process at the next step from where the error occurred.
However, note that the local variable values generated in the task will not be valid anymore because the script will be initialized before the run. (Value of the member variable [this.VarName] in the task will be maintained.)

Situation: I wonder why the architecture has been developed in the “Client ↔ Server” structure. Can the server also be installed in places other than the head office?

Solution: RPA is not only designed for creating and running scenarios in one PC, but it also allows for uploading of the scenarios created in Designer to the server for operations by bot PCs.
Using process flows, a larger scope of activities can be carried out other than simple processes. Besides, users can share their scenarios and other resources through the server. It also allows for scheduling of process operation and periodic operations become available. Servers can be installed in other business divisions or customer sites.

Situation: When publishing in Designer, the publication is terminated with the following message: Unexpected Error: => '', hexadecimal value 0x06, is an invalid character. Line 1, position 21640.

Solution:
1) '', hexadecimal value 0x06, is an invalid” error.
During an XML processing, this error occurs when a value includes something that is not displayed in the UI ().
If the same problem persists after setting the target again, the target has a value that cannot be processed.
In this case, delete the value in Properties window and set the “Check Value” as “False” to prevent the “Value” property from being applied.
2) “Padding is invalid” error.
This error occurs when there is a “SetText” activity card that has not been completely configured.
In many cases, this error is caused when the scenario is incomplete or when the encrypted data used in the “SetText” activity card has been initialized.
(The encrypted data in scenarios will be deleted when the files are shared directly between different PCs without using the publishing/importing features.)
3) 500 Internal error
This error occurs when the asset value used in the project has been deleted and does not exist.

Situation: When publishing a project, the following pop-up message is displayed: "Unexpected Error:=>Value cannot be null. Parameter name: CipherText" Which part of the project do I need to inspect?

Solution: The Password field has not been filled in for a disabled SendMail activity card. Delete the SendMail activity card and publish the project again.

Situation: When uploading a file with “.exe” extension, the “Executable file cannot be added” message is displayed and the file cannot be uploaded. How do I upload an executable file?

Solution: For security reasons, executable (.exe) files cannot be uploaded to the server. Upload the file again after changing the file extension. In the scenario, create a copy of the file and revert the extension to “.exe” to run the process.

Situation: Which OS is recommended between Windows 7 and Windows 10?

Solution: Both Windows7 and Windows 10 can be used. However, some scripts written in Windows 7 may not run properly on Windows 10, and vice versa. Therefore, develop scripts in the exact operating system in which they will be executed to ensure proper operation.

Situation: How do I output arrays?

Solution: Use the Bot.ToString() function which is an embedded object of the script engine.

var data_list = ['a', 'b', 'c'];
var data_list2 = [['a', 'b'], ['b', 'c']];
MsgBox(Bot.ToString(data_list));
MsgBox(Bot.ToString(data_list2));
MsgBox(Bot.ToString(data_list2[0]));

Refer to the example above and convert an array and two-dimensional array to text strings to return them.

Situation: Can I use the “XMLHttpRequest” function in the “ExecuteScript” activity card?

You cannot use the “XMLHttpRequest” function in Designer because it is a function provided by JavaScript in the web browser.
1) Try registering the “HttpClient” class provided by C# to the engine.
You can make Http requests configuring the ExecuteScript activity card as follows:

Bot.AddHostType('HttpClient', 'System.Net.Http.HttpClient');
var client = new HttpClient();
var response = client.GetAsync('http://www.google.com').Result;
MsgBox(response);

2) Refer to the MSDN for the detailed information about HttpClient.

Situation: Which library do I need to use to create and use a function?

You can use the ExecuteScript activity card,
or use the ExecuteLibrary activity card after creating a function by writing a JavaScript (.js) file in the “CUSTOM LIBRARIES” folder.


The script must be written in the following way:
Script.filename = new function(){
    this.functionname = function(parameter list){
    }
}

Situation: What are the embedded functions supported by Bot objects?

Embedded function

Description and example

- AddHostType

(name, typeName, assemblyName=null)

ex1) Bot.AddHostType('File', 'System.IO.File'); File.Copy(p1, p2);

ex2) Bot.AddHostType(SSHobj', 'Sample.MyClass.SSH', 'c:\\sample.dll'); MyClass.SampleMethod();

- Bot.CharToInt,

- Bot.IntToChar

Used for a conversion between “char” and “int” data types.

ex)

var code = Bot.CharToInt('A');

MsgBox(Bot.IntToChar(code+1) == 'B');

- Bot.CreateObject (typeNameOrProgID)

Creates an object using the C# object type or COM ProgID.

ex)

// JScript 의 FileSystemObject 생성, 파일 크기 얻기

var type = System.Type.GetTypeFromProgID('Scripting.FileSystemObject');

var fso = System.Activator.CreateInstance(type);

var f = fso.GetFile('d:\\test.js');

MsgBox(f.Size);

- Bot.IsEmpty(obj)

Returns "True" if the value is null or an empty string.

Converts an object into a string and verifies it even when the object is not a string type.

- Bot.GetCount(obj)

Used when the name of a variable to verify the count or a function is unknown.

ex)

obj.length, obj.Length, obj.Count,

obj.getLength(), obj.GetLength(),

obj.getCount(), obj.GetCount(),

obj.Count(), obj.Length()

- Bot.IsNull(obj)

Returns "True” if the object value is “null,” “Null,” or “Undefined.”

- Bot.ToString(obj)

Performs text string conversions

Text strings in one or two-dimensional arrays can be output using this function.

- GetObjectInfo(obj)

Outputs the member variable and function information of an object.

-GetProgressInfo(taskName)

-GetLastRunStepID(taskName)

-GetLastRunStepNo(taskName)

For the assigned task, returns the data from the last step that was run.

It can be used for creating an error report, to identify the point where an error occurred.

ToXml(xmlString)

Returns the “XmlDocument” object by parsing the string of the assigned xml format.

Situation: When you try to designate an object in the Chrome browser, but the entire page is designated as one ?

Solution: Individual object recognition is not possible if the web page you want to designate an object is a site consisting of a single image. Alternatively, the object recognition function of the Chrome browser may be disabled by the security program installed on the PC or the company's in-house security policy. In this case, you can force-enable the object recognition function by adding the --force-renderer-accessibility option to the target path of the Chrome browser shortcut property as follows. It may be necessary to contact the in-house security officer in some cases.