2013-07-25 66 views
0

在自定義portlet Liferay 6.1.1 GA2中創建kaleo工作流的步驟。自定義portlet中的Kaleo工作流程

嗨, 我是新到Liferay。我正在使用Liferay 6.1.1 GA2版本。有人可以請我提供一些步驟來創建具有一些可行的示例的自定義portlet中的工作流程。

在此先感謝。關於您的工作流程的portlet中service.xml中

回答

7

添加實體。

<entity name="XXWorkflow" local-service="true" remote-service="false"> 

     <!-- PK fields --> 
     <column name="workflowId" type="long" primary="true" /> 

     <!-- Foreign key columns --> 
     <column name="XXd" type="long" /> 
     <column name="companyId" type="long" /> 
     <column name="groupId" type="long" /> 
     <column name="userId" type="long"/> 

     <!-- Workflow fields --> 

     <!-- Resource --> 

     <column name="resourcePrimKey" type="long"></column> 
     <column name="title" type="String"></column> 
     <column name="status" type="int"></column> 
     <column name="statusByUserId" type="long"></column> 
     <column name="statusByUserName" type="String"></column> 
     <column name="statusDate" type="Date"></column> 

     <!-- Finder methods --> 

     <finder name="ResourcePrimKey" return-type="RfpWorkflow"> 
      <finder-column name="resourcePrimKey"></finder-column> 
     </finder> 

     <finder name="Status" return-type="Collection"> 
      <finder-column name="status"></finder-column> 
     </finder> 

     <finder name="R_S" return-type="RfpWorkflow"> 
      <finder-column name="resourcePrimKey"></finder-column> 
      <finder-column name="status"></finder-column> 
     </finder> 

     <!-- end of workflow columns and finders --> 

     <finder return-type="Collection" name="XXId"> 
      <finder-column name="XXId"></finder-column> 
     </finder> 

     <reference package-path="com.liferay.portal" entity="WorkflowInstanceLink"></reference> 
     <reference package-path="com.liferay.portlet.asset" entity="AssetEntry"></reference> 
     <reference package-path="com.liferay.portlet.social" entity="SocialActivity"></reference> 

    </entity> 

你的JSP文件: -

submit button action url = "processAction" 

控制器

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); 

    } 

} 

添加在你的Liferay-portlet.xml中後portlet的名稱

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

HTH

+0

哇,細節的偉大程度。 +1 –

+0

感謝@OlafKock :) –

+0

偉大的,易於理解的 –

1

您可以找到代碼中定義Portlet Kaleo工作流這裏的Liferay 6.2

https://drive.google.com/file/d/0B9B1NsG0lyx6ZmE0UWJCdjk0Mmc/view?usp=sharing

您可以在自定義portlet找到Kaleo工作流代碼這裏的Liferay 6.1 http://sourceforge.net/projects/meeralferay/files/LiferayWorkFlowPortlet/

你可以找到自定義門戶,這將只顯示批准的反饋列表Kaleo工作流程更具體的例子。 https://drive.google.com/file/d/0B9B1NsG0lyx6a3ctUERFNENDTUU/view?usp=sharing

相關問題