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

Jacques Le Roux commented on OFBIZ-9985:
----------------------------------------

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'll create a Jira for 
that...

> Convert BudgetServices.xml mini lang to groovy
> ----------------------------------------------
>
>                 Key: OFBIZ-9985
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-9985
>             Project: OFBiz
>          Issue Type: Sub-task
>          Components: accounting
>    Affects Versions: Trunk
>            Reporter: Leila Mekika
>            Assignee: Jacques Le Roux
>            Priority: Minor
>         Attachments: OFBIZ-9985.patch
>
>
> This is an attempt to migrate BudgetServices.xml to groovy file version.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to