我对救生筏很陌生。我使用救生筏6.0.5,我想通过代码将"Archive“标记添加到文档库文档中,以便后者能够用"Archive”标记获取文档。怎么做?
这里是正在处理的代码:
private void addArchive(List<DLFileEntry> fileEntryList) {
try
{
long groupId=0;
long userId=0;
String className=null;
long classPK=0;
long categoryIds[]=null;
String tagNames[]=null;
String newTagNames[] = new String[20];
long entryId = 0;
List<AssetTag> TNames = new ArrayList<AssetTag>();
int i = 0;
for(DLFileEntry cur:fileEntryList)
{
groupId=cur.getGroupId();
userId=cur.getUserId();
className=cur.getClass().getName();
classPK=cur.getPrimaryKey();
AssetEntry ae=AssetEntryLocalServiceUtil.getEntry(groupId, cur.getUuid());
categoryIds=ae.getCategoryIds();
entryId = ae.getEntryId();
TNames = ae.getTags();
System.out.println(cur.getTitle());
i=0;
for(AssetTag tag : TNames)
{
System.out.println(tag.getName());
newTagNames[i]=tag.getName().toString();
i++;
}
newTagNames[i]="NameArchive";
AssetEntryLocalServiceUtil.updateEntry(userId, groupId, className, classPK, categoryIds, newTagNames);
System.out.println("------------------------------------------------");
}
System.out.println("outside for loop");
}
catch (Exception e) {
// TODO: handle exception
}
}发布于 2012-03-21 08:08:55
首先,您需要使用entryId类(以及其他相关的DL*LocalServiceUtil类)在文档库中找到文件的“DLFileEntryLocalServiceUtil”。
"entryId“与数据库中资产项表上的"classPK”字段有关。然后,您可以使用以下方法使用“Archive”标记更新AssetEntry:
AssetEntryLocalServiceUtil.updateEntry(userId, groupId, DLFileEntry.class.getName(), fileEntryIdYouJustGot, categoryIds, new String[] {"Archive"});这将删除任何其他标记,因此您可能希望从Asset条目中检索当前标记,然后向其添加"Archive“,然后将结果数组传递给方法。
但这是你需要做的事情的基础。
编辑~~
修改您的getEntryLine以使用以下内容。您正在传入DLFileEntry UUID,但是如果您查看源代码,它要求的是一个classUuid,我不认为这是一回事。还在异常处理中添加日志记录,以查看是否抛出异常。
AssetEntry ae=AssetEntryLocalServiceUtil.getEntry(groupId, classPK);https://stackoverflow.com/questions/9781606
复制相似问题