Enterprise Architect Rule Task: Rule Composer Validation warns "Same action logic is bound to different rules" - enterprise-architect

I am using EA 14.0.1422 and I am having trouble getting Business Rules to work or to understand them how they are supposed to work.
I have 2 business rules and a rule task as seen in the following image:
Now when I start the "Rule Composer" and bind the rules to the decision table and assign values my table looks like this:
For Person.Birthday I have defined the following "allowable values":
However, when I start validation I get the following warning (and error):
Warning: Same action logic is bound to different rules!
Error: Conflicting rule as different condition logics found for same rule!
Validation complete - 1 error(s), 1 warning(s)
When I click on the warning the following parts are being highlighted:
When I click on the error the following parts are being highlighted:
This is how I defined the supporting classes:
My questions if anyone could give me a hint:
What am I doing wrong?
How is this supposed to work?
Thank you very much for your help!

Related

Agenda Group not working with drools 8.29.FINAL version

We have java rules service microservice & Using drools 7.X version to process the dynamic rules process. business rules (.xlsx) file using the Agenda-groups which is working fine.
After upgrading to drools 8.29.FINAL. kiesession.getAgenda().setAgendaFocus("1") is returning null.
NOTE :
Drools 7.49 is giving me list of agenda's
kieContainer.getKieBase().getKiePackages().parallelStream()
.forEach(obj -> obj.getRules().stream().forEach(innerObj -> {
agendaGroups.add(KieRuleMetaData.builder().agendaGroup(((RuleImpl) innerObj).getAgendaGroup())
.ruleName(innerObj.getName()).build());
}));
After upgrading to 8.29.FINAL - it's notworking
Appreciate if any help
As per the documentation, changed only drools version on pom.xml file.
Without some reproducer, it is difficult to support you effectively; next time kindly consider providing a reproducer (on GitHub for example) and share it here or via mailing-list on drools-usage or kogito-development
To me, this snippet returns as expected the agenda-group(s) defined in the rules, using 8.33.0.Final in this little reproducer here: https://github.com/tarilabs/demo20230212-so75416633/blob/main/src/test/java/org/drools/demo/RuleTest.java#L32-L34
kContainer.getKieBase().getKiePackages().stream().forEach(obj -> obj.getRules().stream().forEach(innerObj -> {
LOG.info("Rules contain this Agenda group: {}", ((RuleImpl) innerObj).getAgendaGroup() );
}));
I've used some simplified logging as you didn't provide details of KieRuleMetaData in your snippet, but as you can see with rules defining
rule "will execute per each Measurement having ID color"
agenda-group "mygroup"
when
...
The snippet above correctly prints:
2023-02-12 10:51:45,868 [main] INFO Rules contain this Agenda group: mygroup
Then, in the test code, as you can see I'm using the agenda-group I wanted by locating it on the agenda and setting it in-focus: https://github.com/tarilabs/demo20230212-so75416633/blob/main/src/test/java/org/drools/demo/RuleTest.java#L58-L69
session.getAgenda().getAgendaGroup("mygroup").setFocus();
session.fireAllRules();
So to me I cannot reproduce any error in using agenda-groups using latest Drools available at the time of writing.
You mention you are using Spreadsheet (.xlsx) for defining the rules, and the agenda group "1" is very suspicious it might be interpreted wrongly as number Vs string.
I hope with my very first snippet above, you are able to re-instate the inspection of all the agenda-groups defined in all rules in all packages, so to verify your agenda-group "1" is really present.
If not, suggesting you try by writing in Excel as "aaa1" instead of the simple digit for one, so to make sure it is correctly saved in the Excel as a string.

How to Check which validation is violated for a model in Yii2

when I print ths statement inside a model as,
Yii::error($this->validate());
it gives me
false
QUESTION :
How can I check which validation is getting violated? As I have 38 parameters with different rules, I am tired debugging application. any help?
You can get the errors for your model this way:
$this->getErrors();
Reference:
Class yii\base\Model->getErrors() documentation

How can I avoid Flask-Admin 2.1 warning "UserWarning: Fields missing from ruleset"?

I'm using Flask-Admin 2.1 with Python 2.7.6.
One of my Flask-Admin model classes inherits from flask.ext.admin.contrib.sqla.ModelView and overrides form_rules.
When I run my application, this warning is displayed: "UserWarning: Fields missing from ruleset"
The warning is accurate: There are fields in my model that are not included in the ruleset. But that's by design. I don't want those fields to be displayed when users create or edit instances of this model.
I have already read this: https://github.com/flask-admin/flask-admin/pull/815#issuecomment-81963865
How can I suppress the warning?
You can suppress the warning when the view is added by using this snippet with the assumed name UserView:
import warnings
with warnings.catch_warnings():
warnings.filterwarnings('ignore', 'Fields missing from ruleset', UserWarning)
admin.add_view(UserView())
Reference: https://docs.python.org/2/library/warnings.html#warnings.filterwarnings

How to produce business rule output that can be examined in the ODM Rule Execution Server Console?

I am new to ODM 8.5 (the successor to JRules), and I am trying to test some rules in the ODM Rule Execution Server Console. At this point, I'm merely trying to confirm that my rule changes have been deployed to the RES successfully. According to ODM's Testing Ruleset Execution help page, I should be able to examine the Output text box to see "strings that are written to print.out" from the web page under Explorer > RuleApps > RuleApp > Ruleset > Test Ruleset. I've deployed a rule containing the following snippet:
However, after executing the rule, I don't see the output of the println in the Output box. Is println what the documentation refers to when they say "print.out"? I get syntax errors if I try to replace "System.out.println" with "print.out". How can I get simple debug output to appear in the Output box?
The note method will cause output to go to the Output text box of the ODM Rule Execution Server Console, e.g., use:
note("*** This is the rule modification ***");
You can use the Decision warehouse(DW), in RES console.
First you need to activate the tracing in the ruleset properties.
Then after an execution, you can search in DW for execution informations such as, rule executed, data values, etc... Check online documetation details(look for ODM IBM 8.5)
Please note that this may slow down your decisions, so better not use this feature in production systems. Hope this helps.

What does Siebel Error SBL-BPR-00176 mean?

My webapp talks to Siebel just fine in one test environment, but in another we are getting the following error message:
<Exception>
<Major No.>256</Major No.>
<Minor No.>6750384</Minor No.>
<Message>
The workflow/task engine cannot determine a next step while executing
process definition 'Dynamic Pricing Procedure'. The last step that it
executed was 'Start'.(SBL-BPR-00176)
</Message>
<DetailedMessage>Unknown<DetailedMessage>
</Exception>
Any idea about what the error message means and what we might do to get around it?
In short: There is something wrong with your workflow process 'Dynamic Pricing Procedure'
Specifically the conditions (branch of type 'Condition') for the next step (after a decision step) are not setup properly. Can not decide the 'next step' based on conditions setup thus you have SBL-BPR-00176.
You should fix your workflow: Try to do a validation on the workflow process or try to edit the conditional expressions in the Workflow Process Designer.