You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ofbiz.apache.org by "Deepak Dixit (JIRA)" <ji...@apache.org> on 2018/12/16 12:09:00 UTC

[jira] [Comment Edited] (OFBIZ-10024) INOUT entity-auto engine parameter not seen in SECA

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

Deepak Dixit edited comment on OFBIZ-10024 at 12/16/18 12:08 PM:
-----------------------------------------------------------------

I think this is not a valid issue, I tested it locally and its working fine, 
 The issue with SECA rule, it is written on invoke.
 at the time of invoke you are creating BudgetStatus, budgetId not created in the system at the time of invoke, it will throw the foreign key constraints error.

Please change the event="invoke" to event="commit" it will work fine. 



was (Author: deepak.dixit):
I think this is not a valid issue, I tested it locally and its working fine, 
 The issue with SECA rule, it is written on invoke, at the time of invoking you are creating BudgetStatus, and it will throw the foreign key constraints issue. As budgetId not created in the system at the time of invoke

Please change the event="invoke" to event="commit" it will work fine. 


>  INOUT entity-auto engine parameter not seen in SECA
> ----------------------------------------------------
>
>                 Key: OFBIZ-10024
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-10024
>             Project: OFBiz
>          Issue Type: Bug
>            Reporter: Jacques Le Roux
>            Assignee: Jacques Le Roux
>            Priority: Major
>
> At the bottom of OFBIZ-9985 I mentionned an issue I crossed when using an INOUT parameter with entity-auto engine and triggering an SECA. 
> Here it is:
> Hi Dennis,
> No there is no problems with entity-auto as is, ie as it's used so far, in other words no known bugs. The problem I crossed is something "special" (or new).
> Using entity-auto, I wanted to mimic the current createBudget Minilang implementation which also calls createBudgetStatus.  So I thought that by trigerring createBudgetStatus with a SECA it would be OK.
> Here is the patch:
> {code}
> Index: secas.xml
> ===================================================================
> --- secas.xml	(revision 1815825)
> +++ secas.xml	(working copy)
> @@ -99,7 +99,13 @@
>          <action service="sendOrderPayRetryNotification" mode="async" persist="true"/>
>      </eca>
> -    <!-- budget role ecas -->
> +    <!-- Budget ecas -->
> +    <eca service="createBudget" event="invoke">
> +        <set field-name="budgetId" env-name="budgetId"/>
> +        <set field-name="statusId" value="BG_CREATED"/>
> +        <action service="createBudgetStatus" mode="sync" run-as-user="system"/>
> +    </eca>
> +
>      <eca service="createBudgetRole" event="invoke">
>          <action service="ensurePartyRole" mode="sync" run-as-user="system"/>
>      </eca>
> Index: services_budget.xml
> ===================================================================
> --- services_budget.xml	(revision 1815825)
> +++ services_budget.xml	(working copy)
> @@ -25,8 +25,7 @@
>      <version>1.0</version>
>      <!-- Budget  -->
> -    <service name="createBudget" default-entity-name="Budget" engine="simple"
> -                location="component://accounting/minilang/budget/BudgetServices.xml" invoke="createBudget" auth="true">
> +    <service name="createBudget" default-entity-name="Budget" engine="entity-auto" invoke="create" auth="true">
>          <description>Create a Budget</description>
>          <auto-attributes include="pk" mode="INOUT" optional="true"/>
>          <auto-attributes include="nonpk" mode="IN" optional="true"/>
> {code}
> And here is the error
> {code}
> 2017-11-21 15:00:47,649 |jsse-nio-8443-exec-1 |ServiceDispatcher             |E| Incoming context (in runSync : createBudgetStatus) does not match expected requirements
> org.apache.ofbiz.service.ServiceValidationException: Le param�tre requis suivant manque : [createBudgetStatus.budgetId]
>         at org.apache.ofbiz.service.ModelService.validate(ModelService.java:565) ~[ofbiz.jar:?]
>         at org.apache.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:379) [ofbiz.jar:?]
>         at org.apache.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:229) [ofbiz.jar:?]
>         at org.apache.ofbiz.service.GenericDispatcherFactory$GenericDispatcher.runSync(GenericDispatcherFactory.java:88) [ofbiz.jar:?]
>  at org.apache.ofbiz.service.eca.ServiceEcaAction.runAction(ServiceEcaAction.java:128) [ofbiz.jar:?]
>     at org.apache.ofbiz.service.eca.ServiceEcaRule.eval(ServiceEcaRule.java:160) [ofbiz.jar:?]
>      at org.apache.ofbiz.service.eca.ServiceEcaUtil.evalRules(ServiceEcaUtil.java:195) [ofbiz.jar:?]
>         at org.apache.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:387) [ofbiz.jar:?]
>         at org.apache.ofbiz.service.ServiceDispatcher.runSync(ServiceDispatcher.java:229) [ofbiz.jar:?]
>         at org.apache.ofbiz.service.GenericDispatcherFactory$GenericDispatcher.runSync(GenericDispatcherFactory.java:88) [ofbiz.jar:?]
>  at org.apache.ofbiz.webapp.event.CoreEvents.scheduleService(CoreEvents.java:316) [ofbiz.jar:?]
> {code}
> I did not check the relation between the entity-auto and SECA code yet, but at the moment {{<auto-attributes include="pk" mode="INOUT" optional="true"/>}} does not pass a budgetId in the SECA environement so the SECA fails.
> BTW the service-eca.xsd seriously lacks documentation. I have created OFBIZ-9994 for that



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)