Author: nmalin
Date: Mon Jul 24 12:17:01 2017
New Revision: 1802798

URL: http://svn.apache.org/viewvc?rev=1802798&view=rev
Log:
Improved: Improve groovy DSL, runService call makeValidContext (OFBIZ-9523)
When you call run service with groovy, you need to be sure that all parametes 
are good for the service call.
This improvement simplify this dsl with an automatic parameters check so you 
can call directly like that
run service : createProduct, with: context

Modified:
    
ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/engine/GroovyBaseScript.groovy

Modified: 
ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/engine/GroovyBaseScript.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/engine/GroovyBaseScript.groovy?rev=1802798&r1=1802797&r2=1802798&view=diff
==============================================================================
--- 
ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/engine/GroovyBaseScript.groovy
 (original)
+++ 
ofbiz/ofbiz-framework/trunk/framework/service/src/main/java/org/apache/ofbiz/service/engine/GroovyBaseScript.groovy
 Mon Jul 24 12:17:01 2017
@@ -20,6 +20,9 @@ package org.apache.ofbiz.service.engine
 
 import org.apache.ofbiz.base.util.Debug
 import org.apache.ofbiz.entity.util.EntityQuery
+import org.apache.ofbiz.service.DispatchContext
+import org.apache.ofbiz.service.LocalDispatcher
+import org.apache.ofbiz.service.ModelService
 import org.apache.ofbiz.service.ServiceUtil
 import org.apache.ofbiz.service.ExecutionServiceException
 
@@ -27,6 +30,8 @@ abstract class GroovyBaseScript extends
     public static final String module = GroovyBaseScript.class.getName()
 
     Map runService(String serviceName, Map inputMap) throws 
ExecutionServiceException {
+        LocalDispatcher dispatcher = binding.getVariable('dispatcher');
+        DispatchContext dctx = dispatcher.getDispatchContext();
         if (!inputMap.userLogin) {
             inputMap.userLogin = 
this.binding.getVariable('parameters').userLogin
         }
@@ -36,7 +41,8 @@ abstract class GroovyBaseScript extends
         if (!inputMap.locale) {
             inputMap.locale = this.binding.getVariable('parameters').locale
         }
-        Map result = binding.getVariable('dispatcher').runSync(serviceName, 
inputMap)
+        Map serviceContext = dctx.makeValidContext(serviceName, 
ModelService.IN_PARAM, inputMap)
+        Map result = dispatcher.runSync(serviceName, serviceContext)
         if (ServiceUtil.isError(result)) {
             throw new 
ExecutionServiceException(ServiceUtil.getErrorMessage(result))
         }


Reply via email to