Checkbox in web application automation (UIPath) - web

I want to automate a process in web application using UIPath. There is a check box which need to be checked everytime I want to generate report. I was trying to automate using "click" in UI automation. There is no issue on the first process.
However, the check box doesn't reset to "uncheck" after the first process is done.
So the next time I run the process again, the check box get clicked again into "uncheck" condition.
I want to create an automation to check if the check box state is "checked" or "uncheck". If the state is "checked", then I want to skip the click check box process.
What is the ideal way to do this? I imagine using workflow flow decision. But if anybody can elaborate which function I need touse. It would be a great help!

You could just use the UiPath activity Check. You can find it in Ui Automation > Element > Control. Look for the property Action and in your case choose check (default). This won't check the checkbox if its already checked.

You can use the Get Attribute activity and you'll need to identify the attribute name for the checkbox that you are looking to extract. You can then assign it's value to a variable(probably a string) and check the value and proceed accordingly. In my test case it was the "text" attribute I needed to use which brought back a value of either checked or unchecked.

Related

How to get the right execution context during runtime

I'm trying to prevent a userevent script from running in case of a mass update triggering it. Pretty simple task you might think. Usually the runtime.executionContext should give me the value that I'm looking for. What I'm expecting is runtime.ContextType.CUSTOM_MASSUPDATE but I keep getting the runtime.ContextType.USEREVENT.
What I need is the value that is correctly written in the system notes for this action:
Can anyone tell me where I can get this context value during runtime?
Instead of trying to code around the context, why not change the deployment to prevent execution under Custom Mass Update ?
Locate the Deployment, move to the Context Filtering tab and scroll through the Execution Context field looking for the Custom Mass Update option and deselect it.

Maximo 7.6 Change status dialog box (Notification E-mail field) default blank

Seeking for guidance, in Maximo 7.6 the change status dialog box has a field (toemailaddr) Label: Notification E-mail for work Order change status. See the picture below.
What I am seeking guidance on is how do I edit that field to where I make it to default blank over populating the user logged in e-mail by default? Is this even possible?
I have looked in the change status dialog on WOTRACK as well extracted Library.XML and did not find a way to change from it filling in by default with users e-mail to just remaining blank.
I apologize in advance if it shows to be tagged incorrectly.
Picture of what I am looking to change to show blank
It's the Maximo "psdi.app.workorder.virtual.WOChangeStatus" MBO class that is defaulting that value in.
If the presentation-level default values run after the MBO add() code, then a simple presentation "Default Value" control should allow you to override that.
If that doesn't work then you can try an automation script. It would need to be against the WOCHANGESTATUS object and on the "add" action. If that runs after the Java code then you could grab that field (toEmailAddr) and set it back to an empty string. I assume the screen would still update with that change.
I have not looked at the code for any downstream effects clearing this field might have. It could be that Maximo is coded to always send out that email and if the email address is empty it would likely error at that point.
create an automation script named WOCHANGESTATUS.NEW
(automation scripts that are named after a mbo followed by .NEW are executed when a new instance of a MBO is created, they can be used to initialize column values. )
put a single line in the script.
mbo.setValueNull("TOEMAILADDR")
mark script active and save it

RPA Blueprism input collection in process studio action stage

Trying to parameterize a hotel booking page where we need to enter check in, check out details etc. I created a page in object studio with various action/navigation stages for that web page. Now I need to call that object in process and loop it with input collection. When I am calling that object studio page in process studio action stage, I can select my object and action from dropdown, but under inputs tab not getting any row to drag and drop the input collection that I have created, how to do this ?
Seems you should go take Blue Prism tutorial on their homepage, as this very basic, it's how to call another process/Business object.
Short description:
Create a process which is your main.
Create your functionality in a Business object.
From your process you will pull in an 'Action' block and find your
business object in the drop down.
When it comes to input/output. Click on Start/End
to create the Input/Output you need.
Hope this was helpful.
I'm not sure if I understand your problem correctly, but shouldn't you input your data in START step in proces studio?
So, in START step in proces studio you input data and then(whit that input) you go into actions from your object.
Hope it helps.
make sure you place your data items/collections which ever is output in run time object in END stage, and make sure you uncheck hide from process box.
In process you will be able to find necessary output from object and will involve in your rest action
hope this helps :)
You need to provide input parameters in the Start properties of your Object. Inputs to a page in Object Studio provide the means for a Process to supply data to the Business Object.
Essentially, the Business Object is saying to the Process, “What check in, check out details etc do you want me to work with?”.
Hope this helps.
I had the same issue, it is resolved!
When you create an Object and go to Application Modeller, make sure you choose "Browser Based Application" instead of Windows Based Application. I had selected Windows based applocation and it was not showing up in the Process Studio. I hope this

How can I pass a parameter from a dialog to a child workflow in CRM 2011 workflow designer?

The dialog prompts for a 'min score' value which the workflow needs as a parameter. I have tried saving the parameter somewhere in the record that was selected for the dialog. That works, but depending upon the result of one step in the workflow, it might need to clear it out again. The condition that determines whether the clear is necessary does not seem to return the correct result, so the value gets cleared out anyway. But rather than debugging that very clumsy method, I wonder if there is a better way to pass the parameter from the dialog to the workflow? Is the system job record associated with the dialog available to the child workflow, for example?
Workflows can't have parameters like Dialogs, but you could simulate the same thing. The dialogue could set some field values on the entity and then a workflow could trigger from those field values changing. It could be as simple as having a hidden "Start Workflow X" checkbox that fires a workflow when set to true. The workflow would probably need to clear that checkbox as the last step to be ready for next time.
What you are looking for is called a Custom workflow .
They can be used as steps in your dialog and they do accept Arguments.
for more information visit this tutorial as it is a nice walk-through for this approach.
it would be a time-taking way to do this though, but if you really need to use dialogs and pass parameters from them, you need to implement all your workflow functionality in a Custom Workflow.

How should I implement `OnLoad` event handler when creating an activity using a contact?

I've created my own solution with a custom entity of type activity. I'd like to show a message whenever a new instance of it is created using an existing contact but not allow the user to create one, if only attempting to do that without going via contact.
Basically, my aim is that it won't be impossible to just create that activity (the form will be hidden directly at any attempt except for one way only). The user will have to go to contacts (or leads etc.) and in there add and create an instance of the custom activity entity. That way, I can assure that the field "regarding" will be filled out already.
I'm guessing that I need to detect somehow that the opening of the form is a creation attempt. How can I do that?
Also, as it is now, the user can't create a contact-less activity of the custom type because it doesn't appear on the menu with other activities. I must have disabled it somehow but I have no idea how. Anybody who has one?
You could do this a bunch of ways but the easiest would probably be to:
Make the regarding field read only.
Make the regarding field mandatory.
That way if a user opens a create new form they wont be able to set the regarding and because its mandatory they wont be able to save the record. When they open via an existing contact the regarding field will be mapped automatically. That said in this case just making it mandatory my be enough.
(As a side JavaScript can be used to identify the current form state, but I'm not sure how useful that is here).
In terms of where custom activities appear, by default mine show in a number of locations, for example:
CRM > Workplace > Activities > Ribbon > Other Activities > XXX.
CRM > Workplace > Activities > View Selector > XXX.
They don't show under the left hand navigation of the workplace because they are grouped under 'Activities'. I'm pretty sure these are all the default settings.
You can exercise greater control by editing the sitemap, where you can put pretty much anything, anywhere.
In addition to Mr Wood, I'd like to show you some code. It works as supposed to but I'm not sure if it's optimal.
var foo = function () {
var whatIsGoingOn = Xrm.Page.ui.getFormType();
if (whatIsGoingOn === 1)
alert("Let there be an entity!");
else
alert("Not a creation...");
}
The other states' (deletion, update etc.) numeric values are listed here.
Answering the second part of your question:
When you create a custom activity you can choose whether to have it appear in 'normal' Activity menus or not by checking the box at the top right of the entity form. This is a once-only choice as far as I know and can't be changed later.
For your setup, I would suggest NOT checking this box, so it does not appear in the activity menus to avoid users even being tempted to do it that way.
Instead, add an explicit relationship to the activity N:1 to Contact, and another N:1 to Lead. Use this relationship to add your activity to the left navigation of Contact and Lead forms, or add a grid for them (depends on how you want to use this and if you need to filter the view to something other than the default "Associated View").
When a user navigates to this section they will see if any previous activities of this type exist, and be able to add a new one. BUT this means that the child record is a child via this relationship, not using "regarding", so use a script on the form for the activity so that if Contact is filled in, it is copied to Regarding, and if Lead is filled in then that is copied. If neither, then use an alert or other means to warn the use that something is wrong (see comment earlier). If you want Regarding to be read-only but filled in by script, you will need to make sure to use the force the value to be saved:
Xrm.Page.getAttribute("regardingobjectid").setSubmitMode("always");
You must have the lookups for Contact and Lead on the form to be able to use them in your scripts, but you can make them not "visible by default" so they are there but not seen by the user (and taking up no space).

Resources