Останавливает перемещение документа в корзину на свежем воздухе (постоянное удаление документа) - PullRequest
0 голосов
/ 16 марта 2020

Я не хочу перемещать документ в мусорную корзину после удаления в 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.
...