You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ofbiz.apache.org by Jeremy Olmstead <jo...@gmail.com> on 2010/11/03 17:21:53 UTC
Modify an ECA
I want to modify an existing ECA by adding a condition that currently
doesn't exist, without modifying the base code. Is this possible? What I
attempted didn't work. First I modified the ofbiz-component.xml file in my
hot-deploy extension of the existing app to include the service-resource
location. Then I created the definition exactly as it was in the original
xml file with the addition of a new condition. It's still firing the action
even when my new condition is not true. See below for relevant code.
Original ECA definition
<eca service="createShipmentReceipt" event="commit">
<action service="createAcctgTransForShipmentReceipt" mode="sync"/>
</eca>
Custom ECA definition in hot-deploy
<eca service="createShipmentReceipt" event="commit">
<condition field-name="orderItemTypeId" operator="not-equals"
value="SUPPLIES_ORDER_ITEM"/>
<action service="createAcctgTransForShipmentReceipt" mode="sync"/>
</eca>
Regards,
Jeremy
Re: Modify an ECA
Posted by Scott Gray <sc...@hotwaxmedia.com>.
Hi Jeremy,
You can't really override an ECA definition but you could override the service "createAcctgTransForShipmentReceipt" and place the additional condition in a new implementation.
So basically you would:
1. Define a new service called createAcctgTransForShipmentReceipt that points to a new custom implementation
2. Define a service that points to the existing implementation, maybe ofbizCreateAcctgTransForShipmentReceipt
3. Include your condition in the new implementation for #1, if it passes then call #2
Regards
Scott
HotWax Media
http://www.hotwaxmedia.com
On 4/11/2010, at 5:21 AM, Jeremy Olmstead wrote:
> I want to modify an existing ECA by adding a condition that currently
> doesn't exist, without modifying the base code. Is this possible? What I
> attempted didn't work. First I modified the ofbiz-component.xml file in my
> hot-deploy extension of the existing app to include the service-resource
> location. Then I created the definition exactly as it was in the original
> xml file with the addition of a new condition. It's still firing the action
> even when my new condition is not true. See below for relevant code.
>
> Original ECA definition
> <eca service="createShipmentReceipt" event="commit">
> <action service="createAcctgTransForShipmentReceipt" mode="sync"/>
> </eca>
>
> Custom ECA definition in hot-deploy
> <eca service="createShipmentReceipt" event="commit">
> <condition field-name="orderItemTypeId" operator="not-equals"
> value="SUPPLIES_ORDER_ITEM"/>
> <action service="createAcctgTransForShipmentReceipt" mode="sync"/>
> </eca>
>
> Regards,
> Jeremy
Re: Modify an ECA
Posted by BJ Freeman <bj...@free-man.net>.
the general rule is only one name can exist within a group.
Since ECA are from the service engine if you load one then another ECA
with both will executed as they are loaded, if I remember correctly.
if you want to modify The ECA I suggest two ways
1) remove the ECA from the core in the ofbiz-component.xml then use the
hot-deploy
2) add a new ECA file with your modes then change the
ofbiz-component.xml to point to that one.
both ways will require to update the ofbiz-component.xml if you do an
update.
=========================
BJ Freeman
Strategic Power Office with Supplier Automation <http://www.businessesnetwork.com/automation/viewforum.php?f=52>
Specialtymarket.com <http://www.specialtymarket.com/>
Systems Integrator-- Glad to Assist
Chat Y! messenger: bjfr33man
Jeremy Olmstead sent the following on 11/3/2010 9:21 AM:
> I want to modify an existing ECA by adding a condition that currently
> doesn't exist, without modifying the base code. Is this possible? What I
> attempted didn't work. First I modified the ofbiz-component.xml file in my
> hot-deploy extension of the existing app to include the service-resource
> location. Then I created the definition exactly as it was in the original
> xml file with the addition of a new condition. It's still firing the action
> even when my new condition is not true. See below for relevant code.
>
> Original ECA definition
> <eca service="createShipmentReceipt" event="commit">
> <action service="createAcctgTransForShipmentReceipt" mode="sync"/>
> </eca>
>
> Custom ECA definition in hot-deploy
> <eca service="createShipmentReceipt" event="commit">
> <condition field-name="orderItemTypeId" operator="not-equals"
> value="SUPPLIES_ORDER_ITEM"/>
> <action service="createAcctgTransForShipmentReceipt" mode="sync"/>
> </eca>
>
> Regards,
> Jeremy
>