I am using camunda DMN with below dependencies in my application.
org.camunda.bpm.dmn camunda-engine-dmn-bom 7.17.5-ee pom import <dependency>
<groupId>org.camunda.bpm.dmn</groupId>
<artifactId>camunda-engine-dmn</artifactId>
<version>7.17.5-ee</version>
<exclusions>
<exclusion>
<groupId>com.lihaoyi</groupId>
<artifactId>fastparse_2.13</artifactId>
</exclusion>
<exclusion>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.13.9</version>
</dependency>
</dependencies>
Above set is working good with basic DMN rules like handlingh rules with basic string or integer or boolean conditions.
But when i started using list contain() feel expression i started facing problem
Below is the DMN :
<?xml version="1.0" encoding="UTF-8"?> businessUnit orderType systemId isStaticIPRequested addedVoiceLineCount existingVoiceLineCount addedInternetLineCount existingInternetLineCount addedBusinessWiFiCount existingBusinessWiFiCount effectiveDate "831320000350","831330000770","831330000790","831320000360","820311000220" "false" "Self-install is not available in this area." 1 PR-180 "NEWCONNECT","CHANGEOFSERVICE" list contains(accountCategories,"COMMERCIALENTERPRISE") "false" "Orders with Enterprise codes are not eligible for self install." 2 PR-180(8) "NEWCONNECT","CHANGEOFSERVICE" list contains(equipmentTypes,"TUNINGADAPTER") "false" "Self-Install is not allowed for DTA's." 3 PR-180(5) "NEWCONNECT","CHANGEOFSERVICE" list contains(portedPhoneSpecialityProductNumbers,"50012") "false" "Self-Install is not available for porting phone service from another provider." 4 PR-180(6) "NEWCONNECT","CHANGEOFSERVICE" list contains(callForwardingSpecialityProductNumbers,"50020") "false" "Self-Install is not available for Call or Number forwarding." 6 PR-180(3) "NEWCONNECT","CHANGEOFSERVICE" list contains(wirelessInternetBackupSpecialityProductNumbers,"20001") "false" "Self-Install is not eligible for orders containing wireless internet backup." 11 PR-190(1) "CHANGEOFSERVICE" >=1 >0 "false" "Only one internet package is allowed to self install." 13 PR-190(2) "CHANGEOFSERVICE" >=1 >0 "false" "Only one instance of Business WiFi is allowed for self installation." 14 "true"In order to test i am using below sample data :
{
“orderType” : “NEWCONNECT”,
“systemId” : “NICE”,
“businessUnit” : “834578000100”,
“settopBoxesCount” : 0,
“existingBusinessWiFiCount” : 0,
“callForwardingSpecialityProductNumbers” : [ ],
“equipmentTypes” : [ “TUNINGADAPTER” ],
“addedBusinessWiFiCount” : 0,
“isStaticIPRequested” : “N”,
“portedPhoneSpecialityProductNumbers” : [ ],
“addedVoiceLineCount” : 3,
“accountCategories” : [ “COMMERCIALSMB”, “COMMERCIALSMB”, “COMMERCIALSMB” ],
“existingInternetLineCount” : 0,
“addedInternetLineCount” : 0,
“existingVoiceLineCount” : 0,
“wirelessInternetBackupSpecialityProductNumbers” : [ ],
“effectiveDate” : null
}
My expectation from the DMN is to return a decision rule from the Row : 3 , Since it matches with orderType as “NEWCONNECT” and list contains(equipmentTypes,“TUNINGADAPTER”) is matching in input i.e “equipmentTypes” : [ “TUNINGADAPTER” ]
But i am seeing below warning in logs
2022-11-30 22:46:02.387 [WARN ] [http-nio-9020-exec-3] FeelEngine Suppressed failure: illegal arguments: List(ValContext(CacheContext(ObjectContext(java.util.stream.ReferencePipeline$3@5c8af864))), ValString(COMMERCIALENTERPRISE))
2022-11-30 22:46:02.394 [WARN ] [http-nio-9020-exec-3] FeelEngine Suppressed failure: illegal arguments: List(ValContext(CacheContext(ObjectContext(java.util.stream.ReferencePipeline$3@326c0e60))), ValString(TUNINGADAPTER))
NOTE : Above DMN is perfectly working fine with spring boot camunda embedded engine , when i run testing it through rest api : http://localhost:8080/engine-rest/decision-definition/key/{keyName}/evaluate
Dependencies for embedded engine which is working fine with list containts feel expression.
org.camunda.bpm camunda-bom 7.16.0 import pom org.camunda.bpm.springboot camunda-bpm-spring-boot-starter-restMay i know is this a issue with camunda-scala ? or any thing is missed interms of using feel expression list containts() , As its working fine with camunda embedded engine using rest api not sure what is going with scala dmn.