Hello--
I was using Corticon 5.7.2.3 and ran into an issue where I tried removing an entity by using the <Collection>.remove operator. It removes it from the ruletest output, however, the entity still exists in memory and is proceeding to subsequent rules that it should not be evaluated.
I reached out to support and they told me that this particular issue was fixed in version 5.7.2.8. I installed this Studio version but the same issue exists.
My scenario is simple. I'm going through details that have an SSN attribute. I load in an invalid SSN list and compare that value to what's in the ssn field. If the SSN is invalid, I write an error and remove that detail instance. I came across this issue with an SSN of 000000000. It matches a full invalid ssn, a area invalid ssn, group invalid ssn and serial invalid ssn group. Now, the detail should have been removed after the first full ssn match. It was removed in the ruletest, however, the detail still exists in memory, so it goes down the line and produces 4 errors instead of the initial full invalid ssn comparison.
Is there something I'm missing? Is there another way to "remove" an entity without using .remove?
Thanks,
Branden
Hi Branden,
It would be tremendously helpful if you could add a little zipped up rules project illustrating your observations. Then we can run it ourselves, and either give you a work-round or fix the issue in Corticon. Thanks for your help. Really appreciated.
Harold
I will upload this as soon as I get into work.
[View:/cfs-file/__key/communityserver-discussions-components-files/14/CMSFS_5F00_ADC_5F00_nodata.zip:320:240]
Upload complete.
I have checked the remove functionality with 5.7.2.8 and according to my example (see attached) it works ok. Entities are properly removed from memory. Can you compare this example with your rules? I'm not sure, what could be wrong. Looking at your rules I don't see anything that stands out.
[View:/cfs-file/__key/communityserver-discussions-components-files/14/remove.zip:320:240]
Harold--
Thank you for your response. I have worked through this for hours and I think I have found the issue. If you notice, I have several branches within my main workflow. What I have noticed is that if you remove an entity within a branch, it only pertains to that branch. Once you are out and within the main workflow, the entity still exists in cache (it's gone on the ruletest). I did a size on my collection at the beginning and then a size of the collection at the end and the number never changed, even though I remove 3 items through my processing. I spoke with a Progress representative and they think this is a new BUG per their response:
"Hello Branden,
As of now, development believes this to be a defect.
Therefore, I have created defect COR-5546 for this issue.
If this is identified as a valid defect, please let me know if you will be requiring a hot fix.
Regards,
Monica"
I messed around with it and extracted my "remove" rule sheets from the branch and into the main workflow. Once this was done, the start size of the collection was 11 and the end size of the collection was 8, which is what I expect. I also looked at the db and only 3 errors were written, which is also what I would expect.
Thank you,
Branden
Hey Branden,
I'm so sorry you had to spend so much time on this. I can confirm this is a bug. Actually it is really easy to prove once you introduce branches. See attached, notice the violation rule messages in the second test sheet tab. Let Monica know if you need a hot fix for this. I'm sure Engineering will fix this in no time!
Again, my compliments finding this!
Best Harold
[View:/cfs-file/__key/communityserver-discussions-components-files/14/1106.remove.zip:320:240]