cancel
Showing results for 
Search instead for 
Did you mean: 

Upgrading from 6.10.5 to 7.4 - Advice and Guidance

john.hammond
Level 6

Hello all.

We're about to embark on creating a new environment for the installation of Blue Prism v7.4. After this brand new environment has been configured appropriately, we'll be embarking on the task of porting our ~20 processes from our v6.10.5 environment (which will still be live throughout) to our new v7.4 one.

We're essentially looking for any guidance, tips, massive pitfalls to avoid throughout this process. What are the main changes that you've had to make to any of your existing processes to make them compatible with v7 (assuming that there is not a huge amount of difference between the different v7 iterations)? In terms of changes, is it essentially all of the internal Blue Prism VBOs (Collections, Work Queues) that need to be replaced? We extensively use VBOs such as 'Utility - Collection Manipulation' currently, which I believe came with v6.10, but I believe these now need to be fetched from the DX - with that in mind, are there significant changes to these VBOs that will require extensive re-design/testing? 

Any feedback, suggestions, guidance or pleas to stop doing the upgrade entirely welcome.

1 BEST ANSWER

Helpful Answers

david.l.morris
Level 15

Hi @john.hammond ,

We're still in the middle of planning and conducting our upgrade from 6.10.1 to 7.3.1. So, here are the cliff notes of my notes. Feel free to ask about any particular part, and I can expound upon that part if needed. We have not finished the migration/upgrade fyi.

1 - Plan your upgrade well
1a - I definitely recommend not doing an in-place upgrade.

Others who know much more than me also recommend this. Blue Prism also recommends this. Basically everyone recommends this. 😃 It does mean requesting/provisioning more servers to run concurrently, and it does mean maybe some major headaches in managing twice as many environments, but ideally only the central team has to deal with this so that Business doesn't need to deal with large downtimes and periods where their automation simply doesn't run. This means creating new servers for each environment. Developers can then either use temporarily assigned machines to use v7 while they mainly use v6 or vice versa. Also it doesn't take that long to uninstall/reinstall to switch between the two versions. I have not found it to work well to have two versions installed on the same machine at once anymore like it used to.

1b - As others have stated, backup backup backup.
Be sure that you back up releases, objects, processes, databases, config files, DLL files, etc. Back up anything that could even be remotely necessary for reverting from the upgrade.

1c - Upgrade Notices

Blue Prism has various articles related to this kind of thing (upgrades etc.). For example here are the upgrade notices as of 7.4: https://docs.blueprism.com/en-US/bundle/blue-prism-enterprise-7-4/page/release-notes/upgrade-notices.htm. A number of the things I'm bringing up are also mentioned in those upgrade notices. There are also more things too, but I've noted the ones that felt most important at least to me, and most of the items I'm bringing up are ones I painfully ran across or discovered over the last year. I just wanted to link to those upgrade notices too because there is likely stuff in there that I haven't realized yet.

2 - Choose between 64bit and 32bit
You'll need to choose whether to go to 64bit or 32bit Blue Prism. Up till now, Blue Prism (even when installed to x64 Program Files) was not truly 64bit. I've asked Blue Prism about the bitness choice, and they highly recommend going to 64bit if you have the option to. Here are some things that you'll need to consider/deal with as a result of choosing 64bit.

2a (64bit) - The embedded application manager mode will now be 64bit.

This may mean you'll need to change your application manager mode more often than you did in the past. I do not pretend to fully understand this, so from my perspective this just means that if you cannot attach/spy an application, just check the other application manager modes such as external 32bit in case this is the issue.

2b (64bit) - Multiple object attaching for browsers

For browser automations to successfully attach properly from multiple objects simultaneously, you need to use the embedded application manager mode. This is default for new objects. However, if you import an object from v6 into v7.2+, it will by default try to switch you to the external 32bit mode. If you do this, you'll find that your first attach works and all subsequent attaches will fail.

2c (64bit) - VBOs to be updated

A couple of VBOs' actions will not work properly by default if you don't either update them or get the new versions. This is Utility - OLEDB and Utility - File Management. What you're looking for is basically anywhere that uses "Microsoft.Jet.OLEDB.4.0", it now must use "Microsoft.Ace.OLEDB.12.0" as the provider. This also means you cannot interact with .XLS files anymore through these actions, but you can still use the Excel VBO for that.

2d (64bit) - Several other applications seem to need to be 64bit as well if Blue Prism is 64bit.

This includes at least Microsoft Office (if you use Interop such as the MS Outlook Email VBO or whatever) and Microsoft Access Database Engine. I cannot remember at the moment, but I believe one of those basically causes the other. I should mention that I feel like there's a third one, but I don't have this in my notes for some reason. There may be others as well. Just kind of depends on what gets installed at your company.

3 - Decide about Insert/Invoke JavaScript
This won't apply to everyone, but anyone this does apply to will need to be very aware of it. Manifest Version 2 (MV2) Chrome/Edge extensions will soon no longer be supported. Blue Prism has addressed this, and the functionality is now mostly built into the newest versions of BP. This (for the most part) only affects those who use Insert/Invoke JavaScript. The switch to MV3 browser extensions (such as the Blue Prism v7.3.1 browser extension and other new versions too) requires special steps and components to make it work for Insert/Invoke JavaScript. Normal web automation should continue to work the same.

3a (MV3) - Web Driver

I think this is only needed for the Insert/Invoke JavaScript and such functionality. In v7.3.1 and below, you have to manage the Selenium Web Driver file/version yourself. I think you can place this anywhere that is in your PATH variable of the machine(s). This web driver file needs to match the version of Chrome or Edge, whichever you're using. And if you cannot turn off automatic updates for MS Edge, you may want to build something that will automatically download the new version when Edge updates. As of v7.4, Blue Prism has included a feature that automatically handles this downloading, so check the version you're going to in order to see if that's included.

3b (MV3) - Remote Debugging Port

This is only needed for the Insert/Invoke JavaScript and such functionality. When launching the browser, you need to include a flag so in your objects, just append it to the URL like this: [URL] & " --remote-debugging-port=9222".

3c (MV3) - Insert/Invoke JavaScript Steps

To do Insert/Invoke JavaScript, it now needs to be done in two steps. First Insert JavaScript as a named function (this is JQuery below, so it's just an example). This below might be what you set into a data item first:
function runBluePrismFunction() {$("#SomeElementId").val("SomeNewValue").blur();}
Then you use Invoke JavaScript by calling the function by name like "runBluePrismFunction". If you have no parameters on the function, then you need to provide null for the arguments. Null looks like this: "[{}]". You inlcude the quotation marks if directly inputting into the navigate stage.

4 - Other Browser-Related Things
4a (Browser) - Window Title

When attaching to Chrome/Edge, the value to use for the Window Title is no longer actually the window title. Instead, it's the tab name/title. So, you can't just attach with "*Microsoft Edge" or "*Google Chrome" or whatever anymore.

4b (Browser) - Extension Force Installed

The browser extension now gets force installed and is enabled automatically. Not sure that this matters to anyone, but this is more stable now. You will still need to manually handle enabling it for incognito/inprivate mode if you need that as well as for File URLs for local web pages.

5 - Handle Credentials & Passwords
There are a number of issues related to passwords that I have come across and heard about. Others have mentioned it quite thoroughly in this post already, so I won't go into too much detail.

5a (passwords) - Password can't output to Text data item anymore

You can no longer output an output param of type Password into a data item of type Text. There are various reasons you might want to do this, but Blue Prism rightly made it more difficult. If you have a legitimate reason to do it, you must output into a Password data item, and then you can "cast" into a Text data item by concatenating with text like [Password Data Item] & "". Again, I am just pointing this out because I have some situations where I did this and it broke in v7.3.1.

5b (passwords) - Issue with passwords in collections/environment variables

There is an issue with passwords in collections and environment variables that appear to be related. This issue only occurs if you upgrade Blue Prism in place from v6 to v7 OR if you copy the XML from Blue Prism 6 and paste into Blue Prism 7. It's pretty obvious when it happens. You'll see gobbledygook in a situation where you thought it was empty, or Blue Prism won't be able to successfully decrypt a value or something like that.

5c (credentials) - Role for anonymous RRs

This one I am the least comfortable withh in terms of functionality, so take my notes here with a grain of salt. There's a new Anonymous Runtime Resources role. I still have not fully determined what limitations there are with this, but I believe you just need to check the box for this role to have access to any given credentials (or all of them, depending on your security setup).

6 - Automated Migration

If for some reason you are going to attempt to automate the migration, note that some things don't seem to work properly. For example, the CLI switch "AutomateC /importrelease" will fail to import for some application types. I got this to work but only with a really silly workaround. Let me know if you want to know more.

7 - Release Importing

When importing large releases, Blue Prism seems to be able to import more components at once when connected through a Direct Database connection as compared to less components possible when connected through an app server.


Dave Morris, 3Ci at Southern Company

View answer in original post

7 REPLIES 7

Michael_S
Community Team
Community Team

Hi @john.hammond - this is a really great discussion to start, thank you. Whilst we wait for input from others, who I know will have stories and advice to share, I just wanted to point you towards our v6 End of Life resource center. It contains loads of advice and documentation about upgrading to v7. 

Hope you find it useful!

Michael

Jrwork
Level 6

Hi @john.hammond 

When we moved from v6 to the first versions of V7, we had an (internal) problem regarding process credentials. I don't remember exactly why, but it was a (non-necessary) change in the database, and then all the passwords ended up with the error "Internal: Could not decrypt data: Padding is invalid and cannot be removed.", well... it was a good job to adjust the passwords, in a way, the other environments were updated without problems, so as a suggestion;

- Create a backup of the passwords and separate them by environment
- Check browser extensions after installing the environment
- Here we send the server login, then the automation and finally the logout, the connection time between the login and the automation starting increased by a few seconds, it was an internal company policy, but here's a tip.
- Finally, we always create standard backups for any undesirable problems.

If I remember anything else, I'll update it here.

Kirk.Russell
Level 6

Hi John

We recently upgraded from 6.10.5 to v7.3 with not too much issue and hopefully this is similar enough to v7.4 to be valid.

RE: VBOs - I didn't need to download any newer versions from the DX - although had read that might be necessary - all core VBOs that were working in 6.10.5 carried on working. I have seen others needing to get the latest Outlook VBO for local instances of Outlook - but don't know as we don't use that.

RE: Credentials as mentioned by jrwork - passwords held in credentials manager - for us these were all fine, but we had 2 Client Secrets held as password type environment variables and they became unusable and had to be re-entered. This seems to be a known issue - but to be honest the details in the known issue aren't so helpful, only referring to one special character that may cause issue - this wasn't present in our Client Secrets. As jr says - definitely worth paying attention to this.

Edge Extensions: As far as I could tell we were using a M3 extension in 6.10.5 so thought browser based processes should be fine, but there semes to be a further restricting change in the 7.3 extension. This mostly resulted in click actions no longer working in browser mode - a java href issue, fix was simple - reverting to UIA click actions I had as back up. Definitely worth testing and paying attention to browser based processes - as also had to change some window titles held in the modeller of browser objects to a simple wildcard * to make the activate/attach work. It may depend on how you launch your browser windows in your processes whether you will have other issues. 

The resource port listener pop up that runs at start up in 6.10.5 is "invisible" but in 7.3 remains visible, I raised as an issue and got advice from Blue Prism as I didn't know how to follow the advice on the known issue details with this one. This just makes the pop up minimised to make sure there is no potential for interfering with any process running on the desktop.

You have to take the upgrade at some point or risk being on an unsupported version, so go for it. Back everything up before hand and test all your processes - basic good upgrade practice.

 

Good luck

Kirk

 

 

david.l.morris
Level 15

Hi @john.hammond ,

We're still in the middle of planning and conducting our upgrade from 6.10.1 to 7.3.1. So, here are the cliff notes of my notes. Feel free to ask about any particular part, and I can expound upon that part if needed. We have not finished the migration/upgrade fyi.

1 - Plan your upgrade well
1a - I definitely recommend not doing an in-place upgrade.

Others who know much more than me also recommend this. Blue Prism also recommends this. Basically everyone recommends this. 😃 It does mean requesting/provisioning more servers to run concurrently, and it does mean maybe some major headaches in managing twice as many environments, but ideally only the central team has to deal with this so that Business doesn't need to deal with large downtimes and periods where their automation simply doesn't run. This means creating new servers for each environment. Developers can then either use temporarily assigned machines to use v7 while they mainly use v6 or vice versa. Also it doesn't take that long to uninstall/reinstall to switch between the two versions. I have not found it to work well to have two versions installed on the same machine at once anymore like it used to.

1b - As others have stated, backup backup backup.
Be sure that you back up releases, objects, processes, databases, config files, DLL files, etc. Back up anything that could even be remotely necessary for reverting from the upgrade.

1c - Upgrade Notices

Blue Prism has various articles related to this kind of thing (upgrades etc.). For example here are the upgrade notices as of 7.4: https://docs.blueprism.com/en-US/bundle/blue-prism-enterprise-7-4/page/release-notes/upgrade-notices.htm. A number of the things I'm bringing up are also mentioned in those upgrade notices. There are also more things too, but I've noted the ones that felt most important at least to me, and most of the items I'm bringing up are ones I painfully ran across or discovered over the last year. I just wanted to link to those upgrade notices too because there is likely stuff in there that I haven't realized yet.

2 - Choose between 64bit and 32bit
You'll need to choose whether to go to 64bit or 32bit Blue Prism. Up till now, Blue Prism (even when installed to x64 Program Files) was not truly 64bit. I've asked Blue Prism about the bitness choice, and they highly recommend going to 64bit if you have the option to. Here are some things that you'll need to consider/deal with as a result of choosing 64bit.

2a (64bit) - The embedded application manager mode will now be 64bit.

This may mean you'll need to change your application manager mode more often than you did in the past. I do not pretend to fully understand this, so from my perspective this just means that if you cannot attach/spy an application, just check the other application manager modes such as external 32bit in case this is the issue.

2b (64bit) - Multiple object attaching for browsers

For browser automations to successfully attach properly from multiple objects simultaneously, you need to use the embedded application manager mode. This is default for new objects. However, if you import an object from v6 into v7.2+, it will by default try to switch you to the external 32bit mode. If you do this, you'll find that your first attach works and all subsequent attaches will fail.

2c (64bit) - VBOs to be updated

A couple of VBOs' actions will not work properly by default if you don't either update them or get the new versions. This is Utility - OLEDB and Utility - File Management. What you're looking for is basically anywhere that uses "Microsoft.Jet.OLEDB.4.0", it now must use "Microsoft.Ace.OLEDB.12.0" as the provider. This also means you cannot interact with .XLS files anymore through these actions, but you can still use the Excel VBO for that.

2d (64bit) - Several other applications seem to need to be 64bit as well if Blue Prism is 64bit.

This includes at least Microsoft Office (if you use Interop such as the MS Outlook Email VBO or whatever) and Microsoft Access Database Engine. I cannot remember at the moment, but I believe one of those basically causes the other. I should mention that I feel like there's a third one, but I don't have this in my notes for some reason. There may be others as well. Just kind of depends on what gets installed at your company.

3 - Decide about Insert/Invoke JavaScript
This won't apply to everyone, but anyone this does apply to will need to be very aware of it. Manifest Version 2 (MV2) Chrome/Edge extensions will soon no longer be supported. Blue Prism has addressed this, and the functionality is now mostly built into the newest versions of BP. This (for the most part) only affects those who use Insert/Invoke JavaScript. The switch to MV3 browser extensions (such as the Blue Prism v7.3.1 browser extension and other new versions too) requires special steps and components to make it work for Insert/Invoke JavaScript. Normal web automation should continue to work the same.

3a (MV3) - Web Driver

I think this is only needed for the Insert/Invoke JavaScript and such functionality. In v7.3.1 and below, you have to manage the Selenium Web Driver file/version yourself. I think you can place this anywhere that is in your PATH variable of the machine(s). This web driver file needs to match the version of Chrome or Edge, whichever you're using. And if you cannot turn off automatic updates for MS Edge, you may want to build something that will automatically download the new version when Edge updates. As of v7.4, Blue Prism has included a feature that automatically handles this downloading, so check the version you're going to in order to see if that's included.

3b (MV3) - Remote Debugging Port

This is only needed for the Insert/Invoke JavaScript and such functionality. When launching the browser, you need to include a flag so in your objects, just append it to the URL like this: [URL] & " --remote-debugging-port=9222".

3c (MV3) - Insert/Invoke JavaScript Steps

To do Insert/Invoke JavaScript, it now needs to be done in two steps. First Insert JavaScript as a named function (this is JQuery below, so it's just an example). This below might be what you set into a data item first:
function runBluePrismFunction() {$("#SomeElementId").val("SomeNewValue").blur();}
Then you use Invoke JavaScript by calling the function by name like "runBluePrismFunction". If you have no parameters on the function, then you need to provide null for the arguments. Null looks like this: "[{}]". You inlcude the quotation marks if directly inputting into the navigate stage.

4 - Other Browser-Related Things
4a (Browser) - Window Title

When attaching to Chrome/Edge, the value to use for the Window Title is no longer actually the window title. Instead, it's the tab name/title. So, you can't just attach with "*Microsoft Edge" or "*Google Chrome" or whatever anymore.

4b (Browser) - Extension Force Installed

The browser extension now gets force installed and is enabled automatically. Not sure that this matters to anyone, but this is more stable now. You will still need to manually handle enabling it for incognito/inprivate mode if you need that as well as for File URLs for local web pages.

5 - Handle Credentials & Passwords
There are a number of issues related to passwords that I have come across and heard about. Others have mentioned it quite thoroughly in this post already, so I won't go into too much detail.

5a (passwords) - Password can't output to Text data item anymore

You can no longer output an output param of type Password into a data item of type Text. There are various reasons you might want to do this, but Blue Prism rightly made it more difficult. If you have a legitimate reason to do it, you must output into a Password data item, and then you can "cast" into a Text data item by concatenating with text like [Password Data Item] & "". Again, I am just pointing this out because I have some situations where I did this and it broke in v7.3.1.

5b (passwords) - Issue with passwords in collections/environment variables

There is an issue with passwords in collections and environment variables that appear to be related. This issue only occurs if you upgrade Blue Prism in place from v6 to v7 OR if you copy the XML from Blue Prism 6 and paste into Blue Prism 7. It's pretty obvious when it happens. You'll see gobbledygook in a situation where you thought it was empty, or Blue Prism won't be able to successfully decrypt a value or something like that.

5c (credentials) - Role for anonymous RRs

This one I am the least comfortable withh in terms of functionality, so take my notes here with a grain of salt. There's a new Anonymous Runtime Resources role. I still have not fully determined what limitations there are with this, but I believe you just need to check the box for this role to have access to any given credentials (or all of them, depending on your security setup).

6 - Automated Migration

If for some reason you are going to attempt to automate the migration, note that some things don't seem to work properly. For example, the CLI switch "AutomateC /importrelease" will fail to import for some application types. I got this to work but only with a really silly workaround. Let me know if you want to know more.

7 - Release Importing

When importing large releases, Blue Prism seems to be able to import more components at once when connected through a Direct Database connection as compared to less components possible when connected through an app server.


Dave Morris, 3Ci at Southern Company

john.hammond
Level 6

Some great responses here, really appreciate the feedback and the time taken to expand on some of these topics - I'm sure many others will find this equally as useful as myself.


@david.l.morris  wrote:

2c (64bit) - VBOs to be updated

A couple of VBOs' actions will not work properly by default if you don't either update them or get the new versions. This is Utility - OLEDB and Utility - File Management. What you're looking for is basically anywhere that uses "Microsoft.Jet.OLEDB.4.0", it now must use "Microsoft.Ace.OLEDB.12.0" as the provider. This also means you cannot interact with .XLS files anymore through these actions, but you can still use the Excel VBO for that.


This one is particularly interesting. Firstly, I know of at least one process of ours that used OLEDB (and I think it's version 12.0 as suggested here, off the top of my head). This does currently access and read from a .xlsm file as part of our process - is this a potential breakage, then, do you think? Do you know what the scope of the changes to these VBOs are, by any chance? I'll of course have a look on the DX after posting this to see if that's documented anywhere. Fingers crossed that if we are already using the appropriate version, we might emerge unscathed!

Thankfully, much of the other points you've raised so eloquently we've already looked into - don't think we even considered an in-place upgrade due to the complexities that would trigger regarding the database and any discarded/orphaned DLL files. The only other one that would be great if you could clarify a bit further is this one:

 

@david.l.morris wrote

2b (64bit) - Multiple object attaching for browsers

For browser automations to successfully attach properly from multiple objects simultaneously, you need to use the embedded application manager mode. This is default for new objects. However, if you import an object from v6 into v7.2+, it will by default try to switch you to the external 32bit mode. If you do this, you'll find that your first attach works and all subsequent attaches will fail.


I assume it is OK to amend the application manager mode without having to essentially re-spy everything using the embedded mode? 


@Kirk.Russell wrote:

Edge Extensions: As far as I could tell we were using a M3 extension in 6.10.5 so thought browser based processes should be fine, but there semes to be a further restricting change in the 7.3 extension. This mostly resulted in click actions no longer working in browser mode - a java href issue, fix was simple - reverting to UIA click actions I had as back up. Definitely worth testing and paying attention to browser based processes - as also had to change some window titles held in the modeller of browser objects to a simple wildcard * to make the activate/attach work. It may depend on how you launch your browser windows in your processes whether you will have other issues. 

 


Another interesting one - we use Browser click mode fairly extensively in a couple of our automations. Is this specific click actions within some java applets, or a more general issue concerning Browser Click mode? I assume the former, as given the nature of what Blue Prism is, essentially limiting clicking in one of its main automation modes would seem a very odd choice!

Thank you once again to everyone who has responded. If there are any more thoughts, case studies or pointers that anyone has, I'm sure I'm not the only one who would be interested to hear them. We're expecting our new environment around the start of February, with the install taking place straight afterwards, so there's still a few weeks to go for us!

Hi @john.hammond sorry for not being clear, no it was only some click actions and all depends on how the webpage is built/coded I think


@john.hammond wrote:

Some great responses here, really appreciate the feedback and the time taken to expand on some of these topics - I'm sure many others will find this equally as useful as myself.


@david.l.morris  wrote:

2c (64bit) - VBOs to be updated

A couple of VBOs' actions will not work properly by default if you don't either update them or get the new versions. This is Utility - OLEDB and Utility - File Management. What you're looking for is basically anywhere that uses "Microsoft.Jet.OLEDB.4.0", it now must use "Microsoft.Ace.OLEDB.12.0" as the provider. This also means you cannot interact with .XLS files anymore through these actions, but you can still use the Excel VBO for that.


This one is particularly interesting. Firstly, I know of at least one process of ours that used OLEDB (and I think it's version 12.0 as suggested here, off the top of my head). This does currently access and read from a .xlsm file as part of our process - is this a potential breakage, then, do you think? Do you know what the scope of the changes to these VBOs are, by any chance? I'll of course have a look on the DX after posting this to see if that's documented anywhere. Fingers crossed that if we are already using the appropriate version, we might emerge unscathed!

 


If it is currently using Ace (that 12.0 that you mentioned) as the provider, then it should continue working after the upgrade. The scope of the changes for the 64bit aspect is very tiny. It is literally just that it won't allow Jet anymore. You can download the latest version of those VBOs from the Digital Exchange and then import and check them. I believe they actually named it 64bit for the 64bit version. Here I just changed the paths in the object so that it always goes down the Ace path regardless of what the process wants, and then I checked all the processes to verify they aren't "trying" to use Jet.


@john.hammond wrote:

Thankfully, much of the other points you've raised so eloquently we've already looked into - don't think we even considered an in-place upgrade due to the complexities that would trigger regarding the database and any discarded/orphaned DLL files. The only other one that would be great if you could clarify a bit further is this one:

 

@david.l.morris wrote

2b (64bit) - Multiple object attaching for browsers

For browser automations to successfully attach properly from multiple objects simultaneously, you need to use the embedded application manager mode. This is default for new objects. However, if you import an object from v6 into v7.2+, it will by default try to switch you to the external 32bit mode. If you do this, you'll find that your first attach works and all subsequent attaches will fail.


I assume it is OK to amend the application manager mode without having to essentially re-spy everything using the embedded mode? 


That's correct. The spying is the same, so the point here is just to make sure that you either change to use embedded application manager mode when importing during the import conflicts or afterward directly in the object application modeller. And neither of those require any changes to the elements themselves.


Dave Morris, 3Ci at Southern Company