Я не хочу перемещать документ в мусорную корзину после удаления в alfresco.
Для этого я использовал поведения / политики на свежем воздухе, OnDeleteNodePolicy / beforeDeleteNodePolicy и применяю sys: временные аспекты к nodeRef.
Если я применяю OnDeleteNodePolicy, то документ не может быть удален. И если я применяю beforeDeleteNodePolicy, то выдаю ниже ошибку
java .lang.IllegalStateException: операция запрещена для узла, ожидающего удаления. Проверьте узел на аспект {http://www.alfresco.org/model/system/1.0} pendingDelete
import java.io.Serializable;
import java.util.Map;
import java.util.Set;
import org.alfresco.repo.node.NodeServicePolicies;
import org.alfresco.repo.node.NodeServicePolicies.BeforeArchiveNodePolicy;
import org.alfresco.repo.node.NodeServicePolicies.BeforeDeleteNodePolicy;
//import org.alfresco.repo.node.NodeServicePolicies.OnDeleteNodePolicy;
import org.alfresco.repo.policy.Behaviour;
import org.alfresco.repo.policy.Behaviour.NotificationFrequency;
import org.alfresco.repo.policy.JavaBehaviour;
import org.alfresco.repo.policy.PolicyComponent;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.QName;
import org.springframework.beans.factory.annotation.Autowired;
import com.dgsl.model.MoodysModel;
public class MyBehaviour implements NodeServicePolicies.BeforeDeleteNodePolicy{
private Behaviour onDeleteNode;
@Autowired
private PolicyComponent policyComponent;
@Autowired
private NodeService nodeService;
public void init() {
System.out.println("init method call");
this.onDeleteNode=new JavaBehaviour(this, BeforeDeleteNodePolicy.QNAME.getLocalName(),NotificationFrequency.FIRST_EVENT);
this.policyComponent.bindClassBehaviour(BeforeDeleteNodePolicy.QNAME, MoodysModel.TYPE_DEAL_SOURCING, this.onDeleteNode);
}
@Override
public void beforeDeleteNode(NodeRef nodeRef) {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
//NodeRef nodeRef=childAssocRef.getChildRef();
System.out.println(nodeRef);
Set<QName> s = nodeService.getAspects(nodeRef);
if(nodeRef!=null) {
try {
nodeService.addAspect(nodeRef, MoodysModel.ASPECT_TEMP, null);
nodeService.deleteNode(nodeRef);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
}
Thanks in advance.
Regards,
Mohit.