以编程方式更改文档库文档文件条目类型

时间:2013-05-06 13:46:55

标签: liferay liferay-6

我需要更改Liferay文档库中大量文件的文档类型(FileEntryType),但我无法这样做。

经过几个小时的googeling,测试和熟悉Liferay Github回购,我决定来这里寻求帮助。

这就是我用过的:

ServiceContext serviceContext = new ServiceContext();

List<DLFileEntry> filesToBeUpdated = DLFileEntryServiceUtil.getFileEntries(
                                                groupId, 0, fileEntryTypeId,
                                                0, 10000, OrderByComparator);

for (DLFileEntry file : filesToBeUpdated) {
    System.out.println("Changing file: "+ file.getName());

    serviceContext.setAttribute("fileEntryTypeId", fileEntryTypeId);

    DLAppServiceUtil.updateFileEntry(file.getFileEntryId(), file.getName(),
                        file.getMimeType(), null, file.getDescription(),
                        null, false, null, file.getSize(), serviceContext);
}

我找到了用于测试的文件。问题是在for循环中更新:它总是抛出PortletException。如何正确更改FileEntryType?

2 个答案:

答案 0 :(得分:2)

您也可以使用DLAppServiceUtil通过将传入的ServiceContext中的字段设置为最后一个参数来完成此操作:

sc.setAttribute(“fileEntryTypeId”,liferayDocumentType);

答案 1 :(得分:1)

为什么使用DLAppServiceUtil.updateFileEntry(...)?接受long fileEntryTypeId作为参数的DLFileEntryServiceUtil has updateFileEntry method