Author: nmalin
Date: Mon Jul 24 12:17:01 2017
New Revision: 1802798
URL:
http://svn.apache.org/viewvc?rev=1802798&view=revLog:
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))
}