How to write logs with newline using IO.write in Ajax Truclient


Suppose you want to create your own log file, here's how to do that in Ajax Truclient using the Evaluate Javascript action from the Toolbox.




So, drag it onto your script, make sure it's inside an Action and not in vuser_init or vuser_end. It didn't work when I initially placed it inside vuser_init and I'm not sure why.

To write to a text file, basically you just need to use IO.write in this format

IO.write(filename[string], input[string], append[boolean], charset[string]);

In my case, since I want to add a timestamp and a newline after every log, here's what I used:

var currentDate = new Date();
IO.write("C:\\Data\\Logs\\logs.txt",currentDate.toLocaleString() + " >>> ",true,"UTF-8");
IO.write("C:\\Data\\Logs\\logs.txt","hello",true,"UTF-8");
IO.write("C:\\Data\\Logs\\logs.txt","\r\n",true,"UTF-8");
  • On line 1 I created a date variable
  • On line 2 I used toLocaleString() method to output the date time in a readable format based on the machine's default locale. In my case it's en-US. You can add parameters to this to specify a different locale. Also, make sure to escape the slashes on the path.
  • On line 3 I appended my log message which says hello
  • On line 4 I appended a carriage return and a newline using \r\n because sometimes \n alone doesn't work

Running it 3x produces this output. Note that it automatically creates the file if it doesn't exist BUT it doesn't create directories.


ALTERNATIVELY, you can also use the Generic API Action from the toolbox to execute the IO.write function.



Just change the category to IO, method name to write, and put it your arguments. It's essentially the same as IO.write but with less coding involved hehe



Hope this helps!

Share:

How to use isRegExpMatch descriptor on Ajax Truclient

For example you are waiting for an object with a message like

"6 card(s) processed successfully."

where 6 could be any number. Here's how to use isRegExpMatch descriptor to identify that object.

First, change the ID method of the object to Descriptors and open the Descriptors Editor.


Then, add a text property (if it's not already there) and set the operator to isRegExpMatch.
When using isRegExpMatch, make sure the value type is set to JS.


Now for the value, I'm not an exepert at regex so I make use of online regex tools to generate the correct expression. I use regexr.com, set the regex engine to Javascript, paste the text I want to match on the textarea, and play around with capturing groups until it matches the entire text.


Here's the regex expression that perfectly matches the entire text:

/(.*) card\(s\) processed successfully./g

There are other variations to this, but this is what worked for me hehe.

When entering the regex value back on the descriptors editor, make sure to include the open and close slashes and the g modifier at the end (in red).

If you notice, the parentheses in (s) are also escaped (in green).

You can always test the descriptor by highlighting the object when it's visible on the page.

Here's another example:

Say you want to match an object with a name like this, where there's a random alphanumeric element in between the path...

/objects/ProfDetTransfer/rows/2g6efbadc10f2d3aaf4d06e1e2307as/attributes/TargetMatterRel.DisplayName

Same thing! Pull up a regex editor..
- replace the dynamic parts with a capturing group
- escape the forward slashes
- enclose the pattern in slashes
- add a g modifier

Here's the expression for that:

\/objects\/ProfDetTransfer\/rows\/(.*)\/attributes\/TargetMatterRel.DisplayName

Hope this helps!

Share:

[UIPath] "You have exceeded your profile storage space..." Error when running on Windows Server

Here's something we encountered recently that kept us from running a task smoothly. We migrated our scripts to a virtual server machine which is very different from where we developed the script (desktop). Our first struggle was getting rid of this pesky profile storage space error that kept on popping up midway into running a task.


Turns out when you run a robot, it extracts the robot package and downloads all its dependencies on a dedicated folder inside the local user profile directory. Usually here: C:\Users\<username>\.nuget\packages

Which means there's a copy of a robot script being created for every user who logs in and runs the same task. Imagine the waste of space.

We didn't realize this was a problem because this error doesn't come up on a regular desktop. Also, I'm pretty sure our desktop profile storage space isn't just 50MB haha. 


There are 2 ways to get rid of this error.

One is to configure UiPath.config to assign a dedicated folder where the robot extracts the packages to so it doesn't flood the user profile. The other is to increase or unset your local profile storage space. Let's discuss both:

Option 1

Thank God I ran into this forum post while looking for solutions!

  1. Open uipath.config on a text editor. It's usually inside
    C:\Program Files (x86)\UiPath\Studio\uipath.config

  2. Add this line inside <packageSettings>

    <add key="packagesInstallationFolder" value="D:\Data\NugetPackages\" />

    Replace the text in red with your preferred directory, somewhere away from your user profile directory, preferably in a different drive. I set ours inside D:\Data because sometimes regular accounts don't have access to C:\ drive on a server



  3. Save uipath.config and restart the robot service for the changes to take effect
    Open Task Manager >> Services >> Right click on UiRobotSvc and restart the service


  4. Run a robot task to test. The extracted files should now be saved at the packages installation folder you set up.
Option 2

For this option to work you need to have admin rights.

  1. Run gpedit.msc or open your Local Group Policy Editor
  2. Navigate to User Configuration >> Administrative Templates >> System >> User Profiles



  3. Open the property Limit Profile Size and adjust the max profile size or set it to Not Configured



  4. Apply to save changes and you're done.

Hope this helps! :)

Share:

How to deactivate UiPath license locally

Here's how you can deactivate your UiPath license yourself so you can use the license key on another machine. Granted, you still have access to the local machine where UiPath is installed. Otherwise, get in touch with UiPath support for a deactivation request.

Alright...


1. Login to the machine where UiPath is insalled
2. Open the command line and run the following:

"C:\Program Files (x86)\UiPath\Studio\UiPath.LicenseTool.exe" deactivation-request


Make sure the location of UiPath.LicenseTool.exe is correct


3. Copy the resulting Deactivation Token
4. Navigate to https://activate.uipath.com and paste the deactivation request token on the text area



5. Click the Deactivate License button and you're done



Now you can use the same license key on another machine. If it doesn't work automatically right after you deactivated the license key, try the manual activation option instead. 
Share:

How to create a "run as different user" shortcut for SQL Server

Problem: I always need to open SQL Server using my admin account but I don't want to keep on doing right click + run as different user, then type my admin username and super long admin password.

My solution? I created a shortcut that launches SQL Server using a different user. Now all I have to do Run "sqlserver" and the app will automatically open using my admin account. That's a major reduction in keystroke yknow! Hahaha



How:

Create a shortcut with the following target and place it in your user folder.

C:\Windows\System32\runas.exe /savecred /user:domain\surfandperf-admin "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe"


In detail:

  1. Navigate to where your SQL Server executable file is.
    Usually it's inside C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\ as ssms.exe
  2. Right click ssms.exe >> Send to >> Desktop (create shortcut)
  3. On your desktop >> right click the SQL Server shortcut created >> go to Properties >> update the target to this:

    C:\Windows\System32\runas.exe /savecred /user:domain\surfandperf-admin "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe"

    Basically I just prepended the target with the red text, making sure to replace the /user part with the username I want to login with.

    I used /savecred to save the password for future launches


  4. Move to the shortcut to your user folder and rename it with whatever you want the shortcut name to be

  5. Now you can launch it using the run dialog.


On first launch it will ask for a password.



Hope it works! I really just want fewer clicks and keystrokes for everything hehe.

Share:

OC with my PC

Note to self for whenever I have to setup a new PC. Urgh. I hope every time they send us new machines at work they'd load it with whatever our previous settings/apps/files were. Anyway...



Photo from Pexels


What settings to uhm, set...
Turn regular account to admin:
- Login using regular account
- Connect to VPN
- Switch user to adm
- Log off regular account
- Connect to VPN
- compmgmt.msc
- Local users and groups >> Groups >> Administrators
- Add
- Locations: nearest group
- Add object

Copy todo.txt to Yan
-
 Open in npp

Create off.bat
- Copy YanNotes to H
- move bat to Yan

Install UiPath Web Automation Chrome extension
URL: https://chrome.google.com/webstore/detail/dkgencfabioofgdmhhjljpkbbchbikbh

What to install...
Notepad++
Chrome
Firefox
Opera
WinWord
WinRAR
WinMerge
ScreenHunter
Photoshop
SQL Server
SQL Server Management Studio
Viber
UiPath
VLC

What shortcuts to make...
YanNotes
YanH
Yan
io | inetcpl.cpl
bt | bthprops.cpl
ps | photoshop
uipath
uisb | uipath sandbox
jabber
sqlserver
vpn


What shortcuts to update...
word
paint
mail
ie


This is it for now, will add more to this later on hehe

Share:

How to extract nupgk files using WinRAR

Did you know that the package file of your UiPath workflow contains the entire workflow file? So if you wanted to backup your script you just need to get the nupkg file and extract the contents. And in order to do that, you can use WinRAR. How?

1. Open WinRAR
2. Go to Options >> Settings (or hit Ctrl+S)
3. Go to Integrations tab
4. Under "User defined archive extensions", type "nupgk", then click OK


That should do it! :)

Share: