如何以编程方式启动上载文件的工作流程

时间:2012-07-17 08:23:34

标签: workflow liferay liferay-6 document-library

我可以为liferay的文档和库中上传的文件启动工作流程吗?

这是我的代码:

DLFolder dlFolder = DLFolderLocalServiceUtil.getFolder(themeDisplay.getScopeGroupId(), 0, "Test");
ServiceContext serviceContext = ServiceContextFactory.getInstance(DLFileEntry.class.getName(),
actionRequest);

fileEntry = DLFileEntryServiceUtil.addFileEntry(dlFolder.getGroupId(), dlFolder.getRepositoryId(), dlFolder.getFolderId() ,file.getName(),"" ,title,"test", null, dlFolder.getDefaultFileEntryTypeId(), null, file, null, file.getUsableSpace(), serviceContext);

// * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * NOW * ** * ** * ** * ** * * * * ** * ** * ** * **

  • 如何启动已上传文件的工作流程?
  • 启动的工作流程,它是否与测试文件夹中所有文件的工作流程相同?

2 个答案:

答案 0 :(得分:0)

你的问题不太清楚。

如果您在谈论在以编程方式上传文档时是否会应用Liferay的工作流程?如果您已选择文档库portlet的工作流定义,则答案为是。

您可以在我的工作流任务下的控制面板中找到工作流任务。

答案 1 :(得分:0)

假设您有自定义portlet,并且您尝试上传文档的文件夹具有工作流程,

DLFolder dlFolder = DLFolderLocalServiceUtil.getFolder(themeDisplay.getScopeGroupId(), 0, "Test");
ServiceContext serviceContext = ServiceContextFactory.getInstance(DLFileEntry.class.getName(),
actionRequest);

FileInputStream is = new FileInputStream(file);
DLFileEntry fileEntry = DLFileEntryServiceUtil.addFileEntry(dlFolder.getGroupId(), dlFolder.getRepositoryId(), dlFolder.getFolderId() ,
                            file.getName(),MimeTypesUtil.getContentType(file) ,title,"test", StringPool.BLANK, 
                            dlFolder.getDefaultFileEntryTypeId(), null, file, is,
                            file.length(), serviceContext);
DLFileEntryLocalServiceUtil.updateFileEntry(userId, fileEntry.getFileEntryId(), file.getName(), MimeTypesUtil.getContentType(file), 
        title(), "test", StringPool.BLANK, Boolean.FALSE, dlFileEntry.getFileEntryTypeId(), null, file, is,
        file.length(), serviceContext)

您应该在 addFileEntry 之后调用 updateFilEntry 方法。它实际上做了两件事,

  1. 它会从草稿
  2. 更改文档的状态
  3. 它会调用工作流程
  4. 希望这有帮助。