2013-05-06 87 views
2

我需要爲Liferay文檔庫中的大量文件更改文檔類型(FileEntryType),但我無法做到這一點。以編程方式更改文檔庫文檔文件條目類型

經過幾個小時的測試和熟悉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

您還可以DLAppServiceUtil通過設置您在傳遞的最後一個參數的ServiceContext領域實現這一點:

sc.setAttribute(「fileEntryTypeId」,liferayDocumentType);

1

爲什麼使用DLAppServiceUtil.updateFileEntry(...)? DLFileEntryServiceUtil has updateFileEntry method,它接受長fileEntryTypeId作爲參數。