Author: jaz
Date: Tue Dec 18 09:12:58 2007 New Revision: 605258 URL: http://svn.apache.org/viewvc?rev=605258&view=rev Log: added new service to reset scheduled jobs Modified: ofbiz/trunk/framework/service/servicedef/services.xml ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceUtil.java Modified: ofbiz/trunk/framework/service/servicedef/services.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/servicedef/services.xml?rev=605258&r1=605257&r2=605258&view=diff ============================================================================== --- ofbiz/trunk/framework/service/servicedef/services.xml (original) +++ ofbiz/trunk/framework/service/servicedef/services.xml Tue Dec 18 09:12:58 2007 @@ -53,6 +53,15 @@ <auto-attributes entity-name="JobSandbox" include="pk" mode="IN" optional="false"/> </service> + <service name="resetScheduledJob" engine="java" + location="org.ofbiz.service.ServiceUtil" invoke="resetJob" auth="true"> + <description>Resets a stale job so it can be re-run</description> + <required-permissions join-type="AND"> + <check-permission permission="SERVICE_INVOKE_ANY"/> + </required-permissions> + <auto-attributes entity-name="JobSandbox" include="pk" mode="IN" optional="false"/> + </service> + <!-- Service Engine Interfaces --> <service name="permissionInterface" engine="interface"> <description>Interface to describe base parameters for Permission Services</description> Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceUtil.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceUtil.java?rev=605258&r1=605257&r2=605258&view=diff ============================================================================== --- ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceUtil.java (original) +++ ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceUtil.java Tue Dec 18 09:12:58 2007 @@ -604,4 +604,45 @@ } return UtilGenerics.checkMap(UtilMisc.toMap(args)); } + + public static Map resetJob(DispatchContext dctx, Map context) { + GenericDelegator delegator = dctx.getDelegator(); + Security security = dctx.getSecurity(); + GenericValue userLogin = (GenericValue) context.get("userLogin"); + Locale locale = getLocale(context); + + if (!security.hasPermission("SERVICE_INVOKE_ANY", userLogin)) { + String errMsg = UtilProperties.getMessage(ServiceUtil.resource, "serviceUtil.no_permission_to_run", locale) + "."; + return ServiceUtil.returnError(errMsg); + } + + String jobId = (String) context.get("jobId"); + Map fields = UtilMisc.toMap("jobId", jobId); + GenericValue job; + try { + job = delegator.findByPrimaryKey("JobSandbox", fields); + } catch (GenericEntityException e) { + Debug.logError(e, module); + return ServiceUtil.returnError(e.getMessage()); + } + + // update the job + if (job != null) { + job.set("statusId", "SERVICE_PENDING"); + job.set("startDateTime", null); + job.set("finishDateTime", null); + job.set("cancelDateTime", null); + job.set("runByInstanceId", null); + + // save the job + try { + job.store(); + } catch (GenericEntityException e) { + Debug.logError(e, module); + return ServiceUtil.returnError(e.getMessage()); + } + } + + return ServiceUtil.returnSuccess(); + } } |
Free forum by Nabble | Edit this page |