liferay中的我的工作流任务每次都是空的

liferay中的我的工作流任务每次都是空的,liferay,workflow,Liferay,Workflow,我正在liferay 6.2中使用kaleo工作流实现自定义portlet 当我保存数据时,我可以看到状态=1,它处于挂起状态。但后来什么也没出现在我的脑海里 我的工作流任务,如挂起或已完成 我有两个用户,第一个(假设x)是试图添加数据的管理员, 另一个(假设y)具有内容审阅者角色,以便他可以批准工作流 我错过了什么: 下面是我的工作流处理程序类的代码: public class BookWorkflowHandler extends BaseWorkflowHandler{ publ

我正在liferay 6.2中使用kaleo工作流实现自定义portlet 当我保存数据时,我可以看到状态=1,它处于挂起状态。但后来什么也没出现在我的脑海里 我的工作流任务,如挂起或已完成

我有两个用户,第一个(假设x)是试图添加数据的管理员, 另一个(假设y)具有内容审阅者角色,以便他可以批准工作流

我错过了什么: 下面是我的工作流处理程序类的代码:

public class BookWorkflowHandler extends BaseWorkflowHandler{

    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 {
        System.out.println("statu while updating in workflow handler"+status);
        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");
        System.out.println("statu while updating in workflow handler"+status);
        return BookLocalServiceUtil.updateStatus(userId, resourcePrimKey, status, serviceContext);

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

提前谢谢

我不知道到底出了什么问题,但我可以提供一些故障排除/代码优化提示:

  • 不要自己设置int“status”值。让Liferay来做吧。在LocalServiceImpl add方法中,而不是
    book.setStatus(1)调用
    book.setStatus(WorkflowConstants.STATUS\u草稿),它实际上是int值“2”

  • 在LocalServiceImpl
    updateStatus
    方法中,只需将所有未经
    批准的资产的可见性设置为false即可,因此使用

    否则{

       assetEntryLocalService.updateVisible(Book.class.getName(),
          resourcePrimKey, false);
    }
    
  • 但是,第1步或第2步都不可能解决您的问题。您是使用Liferay附带的单一审批人定义,还是使用其他定义?如果不同,您可以将定义粘贴到此处吗?我希望确保为审阅任务分配了适当的角色。我还将使用其他实体测试工作流,以查看它是否正确它工作正常

  • Liferay开发者网络()是Liferay开发文档的官方网站,它提供了一个关于为工作流启用实体的学习路径,您可能希望通过它进行代码比较


  • 我使用的是单一审批人。我在1和2中做了你的建议,但没有帮助。我有两个具体问题:1.我得到:在工作流句柄中更新时添加2个状态的状态0在工作流句柄中更新时状态0在updateStatus localService中作为测试结果更新时状态0。这对吗?2.单一ap的设置应该是什么prover或我必须将其用作默认设置?很抱歉,我不理解您的问题,您可以澄清它们吗?单一审批人定义在审阅任务分配中同时指定了门户内容审阅者和网站内容审阅者角色,因此角色分配不成问题。但是,为了进行合理性检查,您可以测试使用另一个portlet的实体(如Web内容文章)创建工作流。好了!让我们假设我有两个用户,user1和user2。user1的角色应该是什么来请求“AddBook”用户2应该扮演什么角色来充当审阅者?用户1只需要是具有添加图书实体权限的任何人,用户2需要是具有以下一个或多个角色的任何用户:组织管理员、组织内容审阅者、组织所有者、管理员、门户内容审阅者、网站管理员、,站点内容审阅者、站点所有者或其他问题:您在
    service.xml
    中设置了哪些主键?因为您在工作流代码中使用了
    resourcePrimKey
    ,在资产代码中使用了
    bookId
       assetEntryLocalService.updateVisible(Book.class.getName(),
          resourcePrimKey, false);
    }