⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serviceengineagent.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
字号:
package org.ofbiz.shark.tool;import java.util.Map;import java.util.HashMap;import org.ofbiz.shark.container.SharkContainer;import org.ofbiz.service.LocalDispatcher;import org.ofbiz.service.GenericServiceException;import org.ofbiz.service.ServiceUtil;import org.ofbiz.base.util.Debug;import org.enhydra.shark.toolagent.AbstractToolAgent;import org.enhydra.shark.api.internal.toolagent.ToolAgentGeneralException;import org.enhydra.shark.api.internal.toolagent.ApplicationBusy;import org.enhydra.shark.api.internal.toolagent.ApplicationNotDefined;import org.enhydra.shark.api.internal.toolagent.ApplicationNotStarted;import org.enhydra.shark.api.internal.toolagent.AppParameter;import org.enhydra.shark.api.SharkTransaction;import org.enhydra.shark.xpdl.elements.ExtendedAttributes;/** * Shark Service Engine Agent Tool API * * @author     <a href="mailto:jaz@ofbiz.org">Andy Zeneski</a> * @version    $Rev: 5462 $ * @since      3.1 */public class ServiceEngineAgent extends AbstractToolAgent {    public static final String module = ServiceEngineAgent.class.getName();    public void invokeApplication (SharkTransaction trans, long handle, String applicationName, String procInstId, String actInstId,            AppParameter[] parameters, Integer appMode) throws ApplicationNotStarted,            ApplicationNotDefined, ApplicationBusy, ToolAgentGeneralException {        super.invokeApplication(trans, handle, applicationName, procInstId, actInstId, parameters, appMode);        // set the status        status = APP_STATUS_RUNNING;        // prepare the service        LocalDispatcher dispatcher = SharkContainer.getDispatcher();        Map serviceContext = new HashMap();        this.getServiceContext(parameters, serviceContext);        // invoke the service        Map serviceResult = null;        try {            serviceResult = dispatcher.runSync(appName, serviceContext);        } catch (GenericServiceException e) {            status = APP_STATUS_INVALID;            Debug.logError(e, module);            throw new ToolAgentGeneralException(e);        }        // process the result        this.getServiceResults(parameters, serviceResult);        // check for errors        if (ServiceUtil.isError(serviceResult)) {            status = APP_STATUS_INVALID;        } else {            status = APP_STATUS_FINISHED;        }                            }    private void getServiceContext(AppParameter[] params, Map context) {        if (params != null && context != null) {            for (int i = 1; i < params.length; i++) {                if (params[i].the_mode.equals(AppParameter.MODE_IN) || params[i].the_mode.equals(AppParameter.MODE_INOUT)) {                    context.put(params[i].the_formal_name, params[i].the_value);                }            }        }    }    private void getServiceResults(AppParameter[] params, Map result) {        if (params != null && result != null) {            for (int i = 1; i < params.length; i++) {                if (params[i].the_mode.equals(AppParameter.MODE_OUT) || params[i].the_mode.equals(AppParameter.MODE_INOUT)) {                    params[i].the_value = result.get(params[i].the_formal_name);                }            }        }    }    protected ExtendedAttributes readParamsFromExtAttributes (String extAttribs) throws Exception {        ExtendedAttributes eas = super.readParamsFromExtAttributes(extAttribs);        return eas;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -