当文件进入我的露天存储库中的文件夹时,我想运行一个操作(带有规则)。该文件需要移动到一个新文件夹。新文件夹将以我上传的文件中的元数据属性“subject”命名。
我无法弄清楚如何做到这一点。谁有任何提示? (存储库webscript也是一种选择)。
这就是我的看法:
import java.util.List;
public class MoveExecuter extends ActionExecuterAbstractBase {
public static final String DESTINATION_FOLDER = "destination-folder";
private FileFolderService fileFolderService;
private NodeService nodeService;
@Override
protected void addParameterDefinitions(List<ParameterDefinition> paramList) {
paramList.add(
new ParameterDefinitionImpl(DESTINATION_FOLDER,
DataTypeDefinition.NODE_REF,
true,
getParamDisplayLabel(METADATA VALUE FROM FIELD SUBJECT FROM INCOMING FILE)));}
public void executeImpl(Action ruleAction, NodeRef actionedUponNodeRef) {
NodeRef destinationParent = (NodeRef)ruleAction.getParameterValue(DESTINATION_FOLDER);
// if the node exists
if (this.nodeService.exists(destinationParent) == true) {
try {
fileFolderService.move(incomingfile, destinationParent, null);
} catch (FileNotFoundException e) {
// Do nothing
}
if (this.nodeService.exists(destinationParent) == false) {
try {
nodeService.createNode(parentRef, assocTypeQName, assocQName, "metadata field subject");
fileFolderService.move(incomingfile, destinationParent, null);
} catch (FileNotFoundException e) {
// Do nothing
}
}
}
}
答案 0 :(得分:1)
对于这样一个简单的操作,我只使用JavaScript而不是java Action。
从googlecode或github安装JavaScript插件(较新版本) 只需根据api编写Javascript代码,然后在运行时在控制台中运行它来测试代码。