Why can my HTML element can be identified in Application Modeller but not at runtime? (BluePrism) - blueprism

I'm pretty new to Blue Prism, and trying to pick up the basics.
Playing around with the Blue Prism resources website (i.e., the introductory blogs), I can successfully spy all <div> elements whose class name includes blog-item via the regular expression .*blog\-item[^s].*, using a dynamic Match Index to parameterise which blog post is used:
My Application Modeller (see below) is able to pick this up when the Match Index is set to 3 or more when I highlight it:
At runtime, I'm able to use a Wait stage to check if the element with the n'th Match Index exists (using a Data Item [Result Index] which is incremented). Below are the properties for the Wait stage:
This works where [Result Index] equals 1 or 2...
But as soon as [Result Index] increments to 3 or more, the element cannot be found and the Wait stage timeout occurs, despite it being highlighted by the Application Modeller:
If anyone can allude to a reason why this might be occuring or help me debug why the Dynamic match isn't occuring, that'd be great as I'm stumped on this.
Thanks,
Alex

Answered in the Blue Prism community:
This is a bug introduced in version 6.7.
I have reported it and gotten the following reply:
"You can watch out for this fix within the release notes under reference BG-6464. Until then, it is recommended to continue using the workaround of selecting a different set of match attributes."

Related

NetSuite Phone Number Formatting

I am trying to implement automatic phone number formatting into NetSuite I am having some issues getting my script to work. Basically if someone enters a phone number into a customer record, "1234567890" for example, it will automatically format to "(123) 456-7890". You can see my script below along with the error message I receive when creating a new script record.
Fail to evaluate script:
{"type":"error.SuiteScriptModuleLoaderError","name":"UNEXPECTED_ERROR","message":"missing ; before statement (SS_SCRIPT_FOR_METADATA#21)","stack":[]}
Why do you need a script for this? NetSuite already does this, based on the Phone Number Format setting at Setup > Company General Preferences. Check you have this field set correctly according to your preference.
If for whatever reason it turns out you do need a script for this, there are several issues with the script you posted:
There is a syntax error - mismatched parentheses/braces. Your code editor is trying to show you that with the red brace on line 8 and the red squiggly underline on the last parenthesis (line 23).
NetSuite record level client scripts must implement an entry point function. For formatting phone numbers this would be a fieldChanged() entry point. You would need to wrap the logic contained in lines 10 to 20 inside a function, and then reference that in the return statement at the bottom. EG: If you called the function phone() your return statement would be return {fieldChanged: phone}.
You are using SuiteScript 1.0 API functions (nlapiGetRecordId() and nlapiLoadRecord()) in a SuiteScript 2.0 script. Under some circumstances these functions may be available so it might work, but even if it does, it certainly isn't best practice.
Loading the record isn't necessary. When you implement an entry point function, the function is passed a context parameter. IE: function fieldChanged(context). That context parameter contains a reference to the current record (context.currentRecord). Work with that instead of attempting to load the record separately.

Microsoft Flow/Power Automate - Selecting current item from a Sharepoint list

I'm conducting a lucky draw to encourage colleagues to post on Yammer, and I want to do the following:
Colleague posts message on Yammer
Pull a Lucky Draw Participation code from SharePoint List
Send colleague an automated message with this Lucky Draw Participation code.
There are only 100 codes, and for obvious reasons, are single-use and cannot be easily reverse-engineered. So I have crafted them in advance by hand.
My question now is... what are the functions I can use can to set up a Flow, that plucks a code from a Sharepoint list (never re-uses it as well), and that this flow would cease after 100 times (i.e. all codes used up)
Thanks!
(Following is the screenshot where I was stuck at...)
Currently stuck here in MS Flow
One example:
First, add a flag to your SharePoint list that indicates the code (row) has been used, e.g., Yes/No field named "Used."
Use Get Items action that uses the ODATA filter query "Used ne 1" without quotes. That will only pull codes that have not been marked as used.
Set Top Count to 1. Only the next unused item will be retrieved.
Use Update Item action to mark that code as Used.
Use the output of the Get Items action however you see fit.
Note: You can also add a condition to send you a message that all codes have been used if the length of the output for the Get Items action is 0.

In Blue prism button is not able to click while executing mode

Hi I am new to blue prism
My question is:
I have button in my application after recording if i try to highlight it is working fine but while executing it is not able to click the button and i am not getting any error.
If you provide a screenshot of the attribute list in your application modeler, it might be easier to provide an accurate answer. However, for now, I can give you some pointers:
For most applications the following can be unticked:
any elements with a blank value
all 'Parent' attributes unless
required to make the element a unique match
the 'Visible' and 'Enabled' attributes usually have no impact if left ticked or unticked, so can often be unticked
With any attributes which may not be persistent and could be prone to changing — i.e. element count, application’s URL, etc.—, it is recommended to untick them or, if required in your process, use the wildcard match type to dynamically build the corresponding values which will allow easy identification.
To speed up finding the elements, it is recommended that the Match Index attribute be used when possible. This works by stopping Blue Prism from trawling through the application model for duplicate elements once one matching element is found.
It is also recommended to add a wait stage at the start of each action. This will handle system latency and provide a correct path for your process:
The above are some pointers that I have consolidated for your ease. However, all the help you need can be found on the Blue Prism portal itself : Blue Prism Documentation
Hope this helps.. Good luck!

Orchard - Taxonomy Field no longer displays all possible values

I recently upgraded a client's Orchard CMS installation from 1.9.x to 1.10.2. Everything went smoothly. However, we are missing some functionality that was previously available.
Before, to select a topic (Taxonomy Field), I would click in the Topics field and a box with all available topics would appear. I would then click on the desired topic. To add more topics, I just had to repeat.
Now, however, clicking on the field does nothing. A cursor appears in the box, but no topic window appears...
...until I start typing. But here’s the catch. If I type an ‘a’ only topic names that contain an ‘a’ are shown. Any topic that does not contain an ‘a’ is not shown.
If I know the topic I want, no problem. I simply start typing it, and the topics list will filter itself accordingly and I just need to click the topic to add. Repeat as needed.
The problem with this is that if I don’t know the topic the I want, there’s no way to easily know what topics are available. And if I wasn’t aware that the list was filtered based on the letter I typed, I might assume that a certain topic wasn’t entered into our system.
Is it possible to go back to the old way the Taxonomy Field was set up?
Thanks.
This is imho a bug in TagsController as the initial query for taxonomies without a query term simply returns an empty list:
public IEnumerable<Tag> Get(int taxonomyId, bool leavesOnly, string query) {
...
if (string.IsNullOrEmpty(query)) return new List<Tag>(); <- returns empty list, so nothing will be selectable initially
I have just provided pull request 7865 on GitHub to fix the issue.

Can I use parameters with Twist concepts?

The Twist documentation for extracting concepts shows how multiple steps can be grouped into one step that contains those steps. For instance, the following eight fixtures
1. Start at the Maintain product catalog page.
2. The page title should be “Joe’s musical —Maintain Product Catalog.”
3. Click the Add New Instrument button.
4. The page title should be “Joe’s musical—Add New Musical Instrument.”
5. Enter text “Guitar” into the Instrument field.
6. Select “Slide” from the Type selection list.
7. Select “Dobro” from the Brand selection list.
8. Click the Save button.
Can be condensed into one concept:
1. Add a New Musical Instrument “Guitar” of type “Slide” and brand “Dobro”
However, the tutorial doesn't say if it's possible to use this concept with other parameters (perhaps with "Drum" instead of "Guitar"). However, it does clearly say that parameters in the concept name should be surrounded by quotes, but they also should match the parameter name, so it's not clear if it's possible.
So can I use parameters with Twist concepts?
Yes! The documentation is really crummy about making this clear, but it is absolutely possible.
If you extracted a concept in the way that they described in the tutorial you referenced and others, then the fixture Add a New Musical Instrument “Guitar” of type “Slide” and brand “Dobro” actually contains three parameters named Guitar, Slide, and Dobro. What makes this so confusing is in each scenario you can change the value of each parameter to whatever you like (perhaps "Drum", "Snare", "Yamaha"), but under the hood, the variables are still called by their original names (thus Guitar=Drum, etc.) and these original names will appear as default values whenever you add the concept to a scenario.
To eliminate confusion, I recommend changing these default names. In this case, it might be Add a New Musical Instrument “Instrument” of type “Type” and brand “Brand”. Bizarrely, you can't rename the parameters via "Rephrase the Open Concept" because you run into a catch-22 situation. You can't change the name of the concept because it doesn't match the usage in the fixture. And you can't rename the fixtures because the parameters are bound to the concept name. So I recommend just opening it up in the text editor and making the change there.
So bottom line, the examples make it seem like you can't use parameters because the parameters wind up being named after whatever value you inputted. I recommend changing the default parameter names, but you have to do it in the text editor because Twist won't let you.

Resources