Search in sources :

Example 1 with Item

use of org.alfresco.rest.workflow.api.model.Item in project alfresco-remote-api by Alfresco.

the class WorkflowRestImpl method getItemFromProcess.

/**
 * Get an item from the process package variable
 */
public Item getItemFromProcess(String itemId, String processId) {
    NodeRef nodeRef = getNodeRef(itemId);
    ActivitiScriptNode packageScriptNode = null;
    try {
        HistoricVariableInstance variableInstance = activitiProcessEngine.getHistoryService().createHistoricVariableInstanceQuery().processInstanceId(processId).variableName(BPM_PACKAGE).singleResult();
        if (variableInstance != null) {
            packageScriptNode = (ActivitiScriptNode) variableInstance.getValue();
        } else {
            throw new EntityNotFoundException(processId);
        }
    } catch (ActivitiObjectNotFoundException e) {
        throw new EntityNotFoundException(processId);
    }
    Item item = null;
    if (packageScriptNode != null) {
        List<ChildAssociationRef> documentList = nodeService.getChildAssocs(packageScriptNode.getNodeRef());
        for (ChildAssociationRef childAssociationRef : documentList) {
            if (childAssociationRef.getChildRef().equals(nodeRef)) {
                item = createItemForNodeRef(childAssociationRef.getChildRef());
                break;
            }
        }
    }
    if (item == null) {
        throw new EntityNotFoundException(itemId);
    }
    return item;
}
Also used : NodeRef(org.alfresco.service.cmr.repository.NodeRef) Item(org.alfresco.rest.workflow.api.model.Item) ActivitiScriptNode(org.alfresco.repo.workflow.activiti.ActivitiScriptNode) HistoricVariableInstance(org.activiti.engine.history.HistoricVariableInstance) EntityNotFoundException(org.alfresco.rest.framework.core.exceptions.EntityNotFoundException) ActivitiObjectNotFoundException(org.activiti.engine.ActivitiObjectNotFoundException) ChildAssociationRef(org.alfresco.service.cmr.repository.ChildAssociationRef)

Example 2 with Item

use of org.alfresco.rest.workflow.api.model.Item in project alfresco-remote-api by Alfresco.

the class WorkflowRestImpl method getItemsFromProcess.

/**
 * Get all items from the process package variable
 */
public CollectionWithPagingInfo<Item> getItemsFromProcess(String processId, Paging paging) {
    ActivitiScriptNode packageScriptNode = null;
    try {
        HistoricVariableInstance variableInstance = activitiProcessEngine.getHistoryService().createHistoricVariableInstanceQuery().processInstanceId(processId).variableName(BPM_PACKAGE).singleResult();
        if (variableInstance != null) {
            packageScriptNode = (ActivitiScriptNode) variableInstance.getValue();
        } else {
            throw new EntityNotFoundException(processId);
        }
    } catch (ActivitiObjectNotFoundException e) {
        throw new EntityNotFoundException(processId);
    }
    List<Item> page = new ArrayList<Item>();
    if (packageScriptNode != null) {
        List<ChildAssociationRef> documentList = nodeService.getChildAssocs(packageScriptNode.getNodeRef());
        for (ChildAssociationRef childAssociationRef : documentList) {
            Item item = createItemForNodeRef(childAssociationRef.getChildRef());
            page.add(item);
        }
    }
    return CollectionWithPagingInfo.asPaged(paging, page, false, page.size());
}
Also used : Item(org.alfresco.rest.workflow.api.model.Item) ActivitiScriptNode(org.alfresco.repo.workflow.activiti.ActivitiScriptNode) ArrayList(java.util.ArrayList) HistoricVariableInstance(org.activiti.engine.history.HistoricVariableInstance) EntityNotFoundException(org.alfresco.rest.framework.core.exceptions.EntityNotFoundException) ActivitiObjectNotFoundException(org.activiti.engine.ActivitiObjectNotFoundException) ChildAssociationRef(org.alfresco.service.cmr.repository.ChildAssociationRef)

Example 3 with Item

use of org.alfresco.rest.workflow.api.model.Item in project alfresco-remote-api by Alfresco.

the class WorkflowRestImpl method createItemForNodeRef.

protected Item createItemForNodeRef(NodeRef nodeRef) {
    Map<QName, Serializable> properties = nodeService.getProperties(nodeRef);
    Item item = new Item();
    String name = (String) properties.get(ContentModel.PROP_NAME);
    String title = (String) properties.get(ContentModel.PROP_TITLE);
    String description = (String) properties.get(ContentModel.PROP_DESCRIPTION);
    Date createdAt = (Date) properties.get(ContentModel.PROP_CREATED);
    String createdBy = (String) properties.get(ContentModel.PROP_CREATOR);
    Date modifiedAt = (Date) properties.get(ContentModel.PROP_MODIFIED);
    String modifiedBy = (String) properties.get(ContentModel.PROP_MODIFIER);
    ContentData contentData = (ContentData) nodeService.getProperty(nodeRef, ContentModel.PROP_CONTENT);
    item.setId(nodeRef.getId());
    item.setName(name);
    item.setTitle(title);
    item.setDescription(description);
    item.setCreatedAt(createdAt);
    item.setCreatedBy(createdBy);
    item.setModifiedAt(modifiedAt);
    item.setModifiedBy(modifiedBy);
    if (contentData != null) {
        item.setMimeType(contentData.getMimetype());
        item.setSize(contentData.getSize());
    }
    return item;
}
Also used : Item(org.alfresco.rest.workflow.api.model.Item) Serializable(java.io.Serializable) ContentData(org.alfresco.service.cmr.repository.ContentData) QName(org.alfresco.service.namespace.QName) Date(java.util.Date)

Example 4 with Item

use of org.alfresco.rest.workflow.api.model.Item in project alfresco-remote-api by Alfresco.

the class WorkflowRestImpl method createItemInProcess.

/**
 *  Create a new item in the process package variable
 */
public Item createItemInProcess(String itemId, String processId) {
    NodeRef nodeRef = getNodeRef(itemId);
    ActivitiScriptNode packageScriptNode = null;
    try {
        packageScriptNode = (ActivitiScriptNode) activitiProcessEngine.getRuntimeService().getVariable(processId, BPM_PACKAGE);
    } catch (ActivitiObjectNotFoundException e) {
        throw new EntityNotFoundException(processId);
    }
    if (packageScriptNode == null) {
        throw new InvalidArgumentException("process doesn't contain a workflow package variable");
    }
    // check if noderef exists
    try {
        nodeService.getProperties(nodeRef);
    } catch (Exception e) {
        throw new EntityNotFoundException("item with id " + nodeRef.toString() + " not found");
    }
    try {
        QName workflowPackageItemId = QName.createQName("wpi", nodeRef.toString());
        nodeService.addChild(packageScriptNode.getNodeRef(), nodeRef, WorkflowModel.ASSOC_PACKAGE_CONTAINS, workflowPackageItemId);
    } catch (Exception e) {
        throw new ApiException("could not add item to process " + e.getMessage(), e);
    }
    Item responseItem = createItemForNodeRef(nodeRef);
    activitiWorkflowEngine.dispatchPackageUpdatedEvent(packageScriptNode, null, null, processId, null);
    return responseItem;
}
Also used : NodeRef(org.alfresco.service.cmr.repository.NodeRef) Item(org.alfresco.rest.workflow.api.model.Item) InvalidArgumentException(org.alfresco.rest.framework.core.exceptions.InvalidArgumentException) ActivitiScriptNode(org.alfresco.repo.workflow.activiti.ActivitiScriptNode) QName(org.alfresco.service.namespace.QName) EntityNotFoundException(org.alfresco.rest.framework.core.exceptions.EntityNotFoundException) ActivitiObjectNotFoundException(org.activiti.engine.ActivitiObjectNotFoundException) PermissionDeniedException(org.alfresco.rest.framework.core.exceptions.PermissionDeniedException) EntityNotFoundException(org.alfresco.rest.framework.core.exceptions.EntityNotFoundException) ConversionException(org.apache.commons.beanutils.ConversionException) InvalidNodeRefException(org.alfresco.service.cmr.repository.InvalidNodeRefException) ApiException(org.alfresco.rest.framework.core.exceptions.ApiException) ActivitiObjectNotFoundException(org.activiti.engine.ActivitiObjectNotFoundException) InvalidArgumentException(org.alfresco.rest.framework.core.exceptions.InvalidArgumentException) ApiException(org.alfresco.rest.framework.core.exceptions.ApiException)

Aggregations

Item (org.alfresco.rest.workflow.api.model.Item)4 ActivitiObjectNotFoundException (org.activiti.engine.ActivitiObjectNotFoundException)3 ActivitiScriptNode (org.alfresco.repo.workflow.activiti.ActivitiScriptNode)3 EntityNotFoundException (org.alfresco.rest.framework.core.exceptions.EntityNotFoundException)3 HistoricVariableInstance (org.activiti.engine.history.HistoricVariableInstance)2 ChildAssociationRef (org.alfresco.service.cmr.repository.ChildAssociationRef)2 NodeRef (org.alfresco.service.cmr.repository.NodeRef)2 QName (org.alfresco.service.namespace.QName)2 Serializable (java.io.Serializable)1 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 ApiException (org.alfresco.rest.framework.core.exceptions.ApiException)1 InvalidArgumentException (org.alfresco.rest.framework.core.exceptions.InvalidArgumentException)1 PermissionDeniedException (org.alfresco.rest.framework.core.exceptions.PermissionDeniedException)1 ContentData (org.alfresco.service.cmr.repository.ContentData)1 InvalidNodeRefException (org.alfresco.service.cmr.repository.InvalidNodeRefException)1 ConversionException (org.apache.commons.beanutils.ConversionException)1