"Failed to query property values" error on component in REDHAWK - redhawksdr

My waveform initializes well on startup, but after a few seconds into processing, it pops up a red flag on the symbol on the right in the IDE's SCA Explorer tab. The tool tip says "Failed to query property values".
I believe the issue is caused by the "process" method in the component taking too long, but I need to be able to obtain a certain element of a rather long list of chunks of data, so I can process each chunk. Therefore, I need to have a property of the component be a reference to this long list of data. Is there a better way of doing this? I had created a child process to do all of this, but that sort of defeats the purpose of using REDHAWK to manage the execution.
Thanks for your time!

Ben,
The first step will be to understand exactly what error occurred. This can be done by following the steps listed here. Basically:
Window > Show View > Other ...
Select General > Properties. The properties view should now be visible
In the SCA Explorer view, select the application with the red flag symbol
Now in the Properties view, you should see two tabs "Properties", and "Advanced". In the "Advanced" tab where will be a Status field that says "Failed to query property values...". When you select this field it will show a "Details..." button. Click that to receive the stack trace for the error.
Another alternative is to use the Python Sandbox (or unittest) capabilities to start your component and attempt a query. The equivalent error will be thrown as a Python exception. You can learn about the sandbox here.
As for the second part of your question, the REDHAWK process() method is already executing as a sub-thread, so it won't block query() operations unless you have created a thread lock (or used the propertySetAccess lock within your serviceFunction). If you are using a lock, then it is possible that the query() will block until the CORBA timeout is reached. You will know if this has occurred because the stack trace will be a CORBA Timeout error.
However, you said "I need to have a property of the component be a reference to this long list of data" so I think you may be getting an error related to the maximum CORBA transfer size. You can adjust the CORBA maximum transfer size by editing /etc/omniORB.cfg so the problem goes away, but your component will cause problems for others who use it. A better option is to reconsider the design of the component. You will probably want to use BULKIO ports to transfer the data in-to and out-of your component.
If you could provide more details about the algorithm you are using or source code examples, that could provide additional information that would help isolate the root problem.

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.

Is there a way for me to see the attributes of a Application element in production?

I'm in the middle of a RPA project at my work.
In the routine, a enterprise application is accessed many times and in some of those times it throws an error saying that "No element matched the query terms".
I guess there's some attribute in the window I'm trying to match that changes frequently, however every time I stop the process to check the issue, it doesn't happen...
I want to know if there's some way to grab the attributes identified of the window and store them in a log so I can compare between the attributes mapped and the ones intermittently observed in production.

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

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!

Translate Drools-generated facts

First off: If I am totally wrong with my request, please close this and point me into the right direction.
I use Drools (with Guvnor-created rules) in a JSF application for the verification of a created object. Basically, the workflow is:
user creates an object
rules are fired to check this object
rules for which the check fails insert a new fact into the working memory with some message, explaining why the verification failed
the facts are extracted from the working memory and displayed in the JSF application
My question: What is the best way to translate these messages? Are there any "best practices" for such scenarios?
What do you mean? Translate to different languages? You can use a different properties file and resolve the right text based on those files, right? as in every application that you want to use internationalization (I18N).
Cheers
You can have a "user message" object with message ids and insert this as a fact. In the rule, set an appropriate message id. In the presentation layer, map the id to a message string in locale-specific string table.

Resources