You are here

startProcess

public Process startProcess(ProcessDefinition processDefinition, List<Person> assignees, Map<String, Serializable> variables, List<Node> items) creates and starts a new process.
Attention: This method was introduced in SDK version 1.3.

Parameters

ProcessDefinition processDefinition
The process definition.
List <Person> assignees
List of people to assign to the workflow.
Map<String, Serializable> variables
Variables.
List<Node> items
Items.

Returns

A Process object representing the newly created and started process.

Example

Quickly start a process with minimal configuration:

        
    WorkflowService workflowService = alfsession.getServiceRegistry().getWorkflowService();
    
    // Process Definition
    ProcessDefinition def = workflowService.getProcessDefinition(WorkflowModel.KEY_ADHOC_ACTIVITI);
    
    // Assignee
    Person user = alfsession.getServiceRegistry().getPersonService().getPerson(alfsession.getPersonIdentifier());
    List<Person> users = new ArrayList<Person>();
    users.add(user);
    
    // Start Process : Prepare Variables
    Map<String, Serializable> variables = new HashMap<String, Serializable>();
    variables.put(WorkflowModel.PROP_WORKFLOW_DESCRIPTION, DESCRIPTION);
    
    // START THE PROCESS
    Process adhocProcess = workflowService.startProcess(def, users, variables, null);        
        
      

Start a process with a collection of variables:


    // Start Process : Prepare Variables
    Map<String, Serializable> variables = new HashMap<String, Serializable>();

    // Process Definition
    ProcessDefinition def = getProcessDefinition(getAdHocWorkflowkey());

    // Assignee
    Person user = alfsession.getServiceRegistry().getPersonService().getPerson(alfsession.getPersonIdentifier());
    List<Person> users = new ArrayList<Person>();
    users.add(user);

    // Items - Attachments
    Document doc = (Document) alfsession.getServiceRegistry().getDocumentFolderService()
            .getChildByPath(SAMPLE_DATAPATH_WORKFLOW);
    List<Document> docs = new ArrayList<Document>();
    docs.add(doc);

    // Due date
    GregorianCalendar calendar = new GregorianCalendar();
    calendar.set(Calendar.YEAR, 2000);
    variables.put(WorkflowModel.PROP_WORKFLOW_DUE_DATE, DateUtils.format(calendar));

    // Priority
    variables.put(WorkflowModel.PROP_WORKFLOW_PRIORITY, WorkflowModel.PRIORITY_HIGH);

    // Description
    variables.put(WorkflowModel.PROP_WORKFLOW_DESCRIPTION, DESCRIPTION);

    // Notification
    variables.put(WorkflowModel.PROP_SEND_EMAIL_NOTIFICATIONS, "true");

    // START THE PROCESS
    Process adhocProcess = workflowService.startProcess(def, users, variables, docs);