Starting a Process with the BPM API 
With the Business Process Management (BPM) application programming interfaces (APIs), you can customize and enhance the way you use business processes and execute tasks. This document describes how you start a deployed process using the BPM API. For a detailed description of the BPM public APIs, see http://help.sap.com/javadocs/.
You have added the necessary dependencies to development component tc/bpem/facade/ear (public part api) in software component BPEM-FACADE and tc/je/sdo21/api in software component ENGFACADE.
Retrieve the ProcessDefinitionManager.
Syntax
ProcessDefinitionManager processDefinitionManager = BPMFactory.getProcessDefinitionManager();
Get the active process definition of a specified process deployed on the server.
Syntax
ProcessDefinition processDefinition = processDefinitionManager.getActiveProcessDefinition(VENDOR, DC_NAME, PROCESS_NAME);
Retrieve the ProcessStartManager.
Syntax
ProcessStartManager processStartManager = BPMFactory.getProcessStartManager();
Get the start event of the process definition.
In the current version of SAP NetWeaver BPM, only one start event is supported for each active pool; therefore, the result will contain one element only.
Syntax
Set<ProcessStartEvent> processStartEvents = processStartManager.getProcessStartEvents(processDefinition.getId());
ProcessStartEvent processStartEvent = processStartEvents.iterator().next();
Create a data object for the start event, adhering to the service interface definition assigned to the start event.
Syntax
DataObject processStartDataObject = processStartManager.createDataObjectForStartEvent(processStartEvent);
Fill in the data object with valid input data for the process.
Syntax
processStartDataObject.setString(processStartDataObject.getType().getProperty(FIELD_CUSTOMER), VALUE_CUSTOMER);
Start the process with the start event and the matching input data.
The call returns the ID of the process instance that was just started.
Syntax
URI processInstanceId = processStartManager.startProcess(processStartEvent, processStartDataObject);
Note
For conditional start processes, invocations of 'startProcess(...)' are rejected to avoid a multi match scenario through a manual start. For more information, see Conditional Start.
You have started a deployed process by using the BPM API.
Caution
For a correct behavior while executing the process at runtime, you have to configure the http.baseurl property. This configuration can be done in the SAP NetWeaver Administrator when you are logged with administrator rights. Choose . Then choose the Application tab and select the tc~bpem~base~ear application.