Hello Sakthi,

I know many people don't like to maintain a patch for such trivial things.
But, you could definitely remove/update the original SECA and maintain a
patch in your project.
This way only the original SECA will run as per your needs and you will not
need to override SECA or define a new one in your custom component.

HTH!

Thanks & Regards,
Devanshu Vyas.


On Tue, Jun 2, 2020 at 8:50 AM Sakthivel Vellingiri <info.integ...@gmail.com>
wrote:

> Thanks Deepak for your prompt response, that looked promising, however i
> could not get that to work when i copied the SECA to my customComponent
> (that extended order) and added enabled="false", but that did not suppress
> the existing SECA, Just for verification i added enabled="false" in the
> original order component itself but for whatever reason that did not work
> either, BTW, i'm still on 12.04.03, yea it is long due for upgrade :(; it
> is possible it is fixed in a later version, but for now i have created a
> new SECA in my customComponent (that extended order) with a different event
> i.e. event="return" instead of event="commit", that created an additional
> event with the message that i need, however it did not suppress the
> original event/message, but i guess will have to live with that or comment
> out the original SECA in the original order component. But i really
> appreciate your time to answer my question.
>
> Sakthi
>
>
>
>
> On Mon, Jun 1, 2020 at 1:52 AM Deepak Dixit <dee...@apache.org> wrote:
>
> > Hi Sakthi,
> >
> > Which ofbiz version are you using?
> >
> > You can disable seca rule, copy seca rule in custom component and set
> > enabled="false"
> > it will disable the existing seca rule.
> > Please refer the [1] service-eca.xsd for reference
> >
> > [1] http://ofbiz.apache.org/dtds/service-eca.xsd
> > Thanks & Regards
> > --
> > Deepak Dixit
> > ofbiz.apache.org
> >
> >
> >
> > On Fri, May 29, 2020 at 9:24 PM Sakthivel Vellingiri <
> > info.integ...@gmail.com> wrote:
> >
> > > Thanks Jason for immediate response, yes we do have below in our
> extended
> > > component; i understood, we could have multiple SECAs, however in this
> > > particular case we only want our custom SECA to fire and not the
> > original,
> > > as we want to change the message that is passed in the original SECA
> > > definition. hence wondering overriding the original SECA is possible
> > which
> > > will prevent original from running
> > >     <service-resource type="eca" loader="main"
> > > location="servicedef/secas.xml"/>
> > >
> > > Sakthi
> > >
> > > On Fri, May 29, 2020 at 10:58 AM Jason RJ <jason_of...@reast.net>
> wrote:
> > >
> > > >
> > > > On 29/05/2020 15:46, Sakthivel Vellingiri wrote:
> > > > > Hi All -
> > > > > *Summary:*
> > > > > Appreciate any pointers, Is it possible to override SECA definition
> > by
> > > > > overriding the same definition in
> > > > > hot-deploy/<extended-component>/servicedef/secas.xml
> > > > >
> > > > > *Details:*
> > > > > There is a SECA definition in
> > applications/order/servicedef/secas.xml,
> > > as
> > > > > you can see noteInfo is hardcoded, and i want to replace wih my
> > > noteinfo
> > > > > without touching code under applications
> > > > >   <!-- send a system note to all Customer request participants
> > > (excluding
> > > > > the originator)
> > > > >          when a note is added to a particular customer request.-->
> > > > >      <eca service="createCustRequestItemNote" event="commit">
> > > > >          <set field-name="noteParty" env-name="partyId"/>
> > > > >          <set field-name="noteInfo" value="A note has been added to
> > > > customer
> > > > > request"/>
> > > > >          <set field-name="moreInfoItemName" value="custRequestId"/>
> > > > >          <set field-name="moreInfoItemId"
> env-name="custRequestId"/>
> > > > >          <set field-name="moreInfoUrl"
> > > > > value="/ordermgr/control/ViewRequest"/>
> > > > >          <action service="createSystemInfoNote" mode="sync"/>
> > > > >      </eca>
> > > > > Is it possible to achieve this by overriding this in hot-deploy
> that
> > > has
> > > > > extended this component
> > > applications/order-extended/servicedef/secas.xml
> > > > > <!-- send a system note to all Customer request participants
> > (excluding
> > > > the
> > > > > originator)
> > > > >          when a note is added to a particular customer request.-->
> > > > >      <eca service="createCustRequestItemNote" event="commit">
> > > > >          <set field-name="noteParty" env-name="partyId"/>
> > > > >          <set field-name="noteInfo" value="Custom Note"/>
> > > > >          <set field-name="moreInfoItemName" value="custRequestId"/>
> > > > >          <set field-name="moreInfoItemId"
> env-name="custRequestId"/>
> > > > >          <set field-name="moreInfoUrl"
> > > > > value="/ordermgr/control/ViewRequest"/>
> > > > >          <action service="createSystemInfoNote" mode="sync"/>
> > > > >      </eca>
> > > > >
> > > > > I had tried this without success, however i'm using this approach
> for
> > > > > overriding services.
> > > > >
> > > > > regards
> > > > > Sakthi
> > > >
> > > >
> > > > Hi Sakthi,
> > > >
> > > > Do you have a reference to secas file in your ofbiz-component.xml:
> > > >
> > > > <!-- For Service Event Control Action files, use the following -->
> > > > <service-resource type="eca" loader="main"
> > > > location="servicedef/secas.xml"/>
> > > >
> > > > In theory multiple SECAs can be called so both the original and yours
> > > > will be called, I'm not sure how the priority would be decided, but
> > > > hopefully core SECAs will fire first.
> > > >
> > > > Jason
> > > >
> > > >
> > >
> >
>

Reply via email to