Workflow 自定义portlet中的Kaleo工作流

Workflow 自定义portlet中的Kaleo工作流,workflow,liferay,portlet,Workflow,Liferay,Portlet,在自定义portlet Liferay 6.1.1 GA2中创建kaleo工作流的步骤 嗨, 我是新来的,雷。我正在使用Liferay 6.1.1 GA2版本。有人能给我提供一些在自定义portlet中创建工作流的步骤和一些可行的示例吗 提前感谢。在service.xml中添加有关工作流portlet的实体 i、 e 控制器 public void processAction(ActionRequest request, ActionResponse response) throws E

在自定义portlet Liferay 6.1.1 GA2中创建kaleo工作流的步骤

嗨, 我是新来的,雷。我正在使用Liferay 6.1.1 GA2版本。有人能给我提供一些在自定义portlet中创建工作流的步骤和一些可行的示例吗


提前感谢。

service.xml中添加有关工作流portlet的实体

i、 e

控制器

public void processAction(ActionRequest request, ActionResponse response)
    throws Exception {

    //do your required stuff

    workflowInitiation(request,response,XX.getXXId(),XX.getXXName());

    }


public void workflowInitiation(ActionRequest actionRequest,
            ActionResponse actionResponse,long XXId,String XXName) throws IOException, PortletException {
        // TODO Auto-generated method stub

        ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest
                .getAttribute(WebKeys.THEME_DISPLAY);
            System.out.println("Title : " + XXName);
            XXWorkflowImpl xxWorkflow = new XXWorkflowImpl();
            XXWorkflow.setTitle(xxName);
            XXWorkflow.setxxId(xxpId);
            XXWorkflow.setCompanyId(themeDisplay.getCompanyId());
            XXWorkflow.setGroupId(themeDisplay.getScopeGroupId());
            ThemeDisplay themeDisplay1 = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

            ServiceContext serviceContext;
            try {
                serviceContext = ServiceContextFactory.getInstance(XXPortlet.class.getName(), actionRequest);

                XXWorkflowLocalServiceUtil.addXXWorkflow(XXWorkflow,serviceContext, themeDisplay1.getUserId());
            } catch (PortalException e) {               
                e.printStackTrace();
            } catch (SystemException e) {               
                e.printStackTrace();
            }   
    }
Hanlder类

    public class XXWorkflowHandler extends BaseWorkflowHandler {

    public static final String CLASS_NAME = XXWorkflow.class.getName();

    public String getClassName() {
        return CLASS_NAME;
    }

    public String getType(Locale locale) {
        return LanguageUtil.get(locale, "model.resource." + CLASS_NAME);
    }


    public Object updateStatus(int status,Map<String, Serializable> workflowContext) throws PortalException,
            SystemException {

        long userId = GetterUtil.getLong((String) workflowContext.get(WorkflowConstants.CONTEXT_USER_ID));
        long resourcePrimKey = GetterUtil.getLong((String) workflowContext.get(WorkflowConstants.CONTEXT_ENTRY_CLASS_PK));
        ServiceContext serviceContext = (ServiceContext) workflowContext.get("serviceContext");
        return RfpWorkflowLocalServiceUtil.updateStatus(userId, resourcePrimKey,status, serviceContext);

    }

}
public类XXWorkflowHandler扩展了BaseWorkflowHandler{
公共静态最终字符串CLASS_NAME=XXWorkflow.CLASS.getName();
公共字符串getClassName(){
返回类名称;
}
公共字符串getType(区域设置){
返回LanguageUtil.get(locale,“model.resource.”+类名);
}
公共对象updateStatus(int状态,映射workflowContext)抛出PortalException,
系统例外{
long userId=GetterUtil.getLong((字符串)workflowContext.get(WorkflowConstants.CONTEXT_USER_ID));
long resourcePrimKey=GetterUtil.getLong((字符串)workflowContext.get(WorkflowConstants.CONTEXT_ENTRY_CLASS_PK));
ServiceContext ServiceContext=(ServiceContext)workflowContext.get(“ServiceContext”);
返回RfpWorkflowLocalServiceUtil.updateStatus(用户ID、resourcePrimKey、状态、serviceContext);
}
}
在portlet名称后添加liferay-portlet.xml

<workflow-handler>com.xx.RFPWorkflowHandler</workflow-handler>
com.xx.RFPWorkflowHandler

HTH

service.xml中添加有关工作流portlet的实体

i、 e

控制器

public void processAction(ActionRequest request, ActionResponse response)
    throws Exception {

    //do your required stuff

    workflowInitiation(request,response,XX.getXXId(),XX.getXXName());

    }


public void workflowInitiation(ActionRequest actionRequest,
            ActionResponse actionResponse,long XXId,String XXName) throws IOException, PortletException {
        // TODO Auto-generated method stub

        ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest
                .getAttribute(WebKeys.THEME_DISPLAY);
            System.out.println("Title : " + XXName);
            XXWorkflowImpl xxWorkflow = new XXWorkflowImpl();
            XXWorkflow.setTitle(xxName);
            XXWorkflow.setxxId(xxpId);
            XXWorkflow.setCompanyId(themeDisplay.getCompanyId());
            XXWorkflow.setGroupId(themeDisplay.getScopeGroupId());
            ThemeDisplay themeDisplay1 = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY);

            ServiceContext serviceContext;
            try {
                serviceContext = ServiceContextFactory.getInstance(XXPortlet.class.getName(), actionRequest);

                XXWorkflowLocalServiceUtil.addXXWorkflow(XXWorkflow,serviceContext, themeDisplay1.getUserId());
            } catch (PortalException e) {               
                e.printStackTrace();
            } catch (SystemException e) {               
                e.printStackTrace();
            }   
    }
Hanlder类

    public class XXWorkflowHandler extends BaseWorkflowHandler {

    public static final String CLASS_NAME = XXWorkflow.class.getName();

    public String getClassName() {
        return CLASS_NAME;
    }

    public String getType(Locale locale) {
        return LanguageUtil.get(locale, "model.resource." + CLASS_NAME);
    }


    public Object updateStatus(int status,Map<String, Serializable> workflowContext) throws PortalException,
            SystemException {

        long userId = GetterUtil.getLong((String) workflowContext.get(WorkflowConstants.CONTEXT_USER_ID));
        long resourcePrimKey = GetterUtil.getLong((String) workflowContext.get(WorkflowConstants.CONTEXT_ENTRY_CLASS_PK));
        ServiceContext serviceContext = (ServiceContext) workflowContext.get("serviceContext");
        return RfpWorkflowLocalServiceUtil.updateStatus(userId, resourcePrimKey,status, serviceContext);

    }

}
public类XXWorkflowHandler扩展了BaseWorkflowHandler{
公共静态最终字符串CLASS_NAME=XXWorkflow.CLASS.getName();
公共字符串getClassName(){
返回类名称;
}
公共字符串getType(区域设置){
返回LanguageUtil.get(locale,“model.resource.”+类名);
}
公共对象updateStatus(int状态,映射workflowContext)抛出PortalException,
系统例外{
long userId=GetterUtil.getLong((字符串)workflowContext.get(WorkflowConstants.CONTEXT_USER_ID));
long resourcePrimKey=GetterUtil.getLong((字符串)workflowContext.get(WorkflowConstants.CONTEXT_ENTRY_CLASS_PK));
ServiceContext ServiceContext=(ServiceContext)workflowContext.get(“ServiceContext”);
返回RfpWorkflowLocalServiceUtil.updateStatus(用户ID、resourcePrimKey、状态、serviceContext);
}
}
在portlet名称后添加liferay-portlet.xml

<workflow-handler>com.xx.RFPWorkflowHandler</workflow-handler>
com.xx.RFPWorkflowHandler

HTH

您可以在Liferay 6.2的自定义portlet中找到Kaleo工作流的代码


您可以在Liferay 6.1的自定义portlet中找到Kaleo工作流的代码

您可以在自定义portlet中找到Kaleo工作流的更具体示例,该示例将只显示已批准的反馈列表。

您可以在Liferay 6.2的自定义portlet中找到Kaleo工作流的代码


您可以在Liferay 6.1的自定义portlet中找到Kaleo工作流的代码

您可以在自定义portlet中找到Kaleo工作流的更具体示例,该示例将只显示已批准的反馈列表。

非常好且易于理解我在我的消息portlet中使用了它,并且可以在工作流下的默认配置选项卡中获取该portlet。但是当我输入一条消息并保存它时,什么也没有发生。数据库中的workflowinstancelink表中没有关于我的条目的条目。还有什么我需要做的吗?@LuckyBoy请帮忙@sree你查过kaleo的相关表格了吗?我在我的消息portlet中使用了它,并且可以在工作流下的默认配置选项卡中获得该portlet。但是当我输入一条消息并保存它时,什么也没有发生。数据库中的workflowinstancelink表中没有关于我的条目的条目。还有什么我需要做的吗?@LuckyBoy请帮忙@sree你查过kaleo的相关表格了吗?10000