[ 
https://issues.apache.org/jira/browse/OFBIZ-3847?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15281304#comment-15281304
 ] 

Paul Foxworthy commented on OFBIZ-3847:
---------------------------------------

Hi Gareth,

I haven't tried to duplicate this yet, but on the line where I thought you 
suggested the NPE occurs, the value.getPrimaryKey() is the only thing I can see 
that might go wrong - thus my suggestion that value itself might be null. Does 
that make sense to you?

I think that in principle, it ought to be possible to do an ECA check on 
remove, much like a delete trigger in a relational database.

The normal way to adjust the availableToPromise for an InventoryItem would be 
to *create* an InventoryItemDetail. IID is like a delta in a version control 
system - it keeps a history of what changed. Why do you need to remove an IID?

Regards

Paul

> Entity ECAs not triggered correctly when using Delegator.storeAll() method
> --------------------------------------------------------------------------
>
>                 Key: OFBIZ-3847
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-3847
>             Project: OFBiz
>          Issue Type: Bug
>          Components: framework
>    Affects Versions: Release Branch 10.04
>            Reporter: Martin Kreidenweis
>            Assignee: Paul Foxworthy
>             Fix For: Upcoming Branch
>
>         Attachments: GenericDelegator.java.diff, 
> OFBIZ-3847_Entity-ECAs-not-triggered-correctly.patch, 
> OFBIZ-3847_Entity-ECAs-not-triggered-correctly.patch
>
>
> The conditions don't work when updating (not creating) entities using the 
> Delegator.storeAll() method. E.g. the following condition does not work:
> {code}
> <eca entity="Product" operation="create-store" event="return">
>         <condition field-name="autoCreateKeywords" operator="not-equals" 
> value="N"/>
>         <action service="indexProductKeywords" mode="sync" 
> value-attr="productInstance"/>
> </eca>
> {code}
> The indexProductKeywords service is called anyway when the product is updated 
> and the autoCreateKeywords was "N" and stays "N". It works correctly for 
> newly created products. 
> The problem is in the method GenericDelegator.storeAll(), where unchanged 
> field values are not passed down to the store() method. The store method 
> calls the ECA engine, which does not receive the unchanged values at all and 
> thus cannot evaluate the EECA conditions correctly. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to