Process/Instances/StartInstance
Starts a new process instance with the data posted.
URI
{Service Root URI}/Process/Instances/StartInstance?{Query Options}
https://api.denallix.com:443/K2Services/REST.svc/Process/Instances/StartInstance?synchronous=false
Method
POST
This method cannot be called via URI construction in the address bar of standard browsers. Tooling such as Fiddler or .NET code may be required to execute the POST.
Query Options
Optional
- Custom Query Options – by default worklist item detail data will not be returned and processing will not be done synchronously. Changing either the service configuration (web.config) or providing these query options can override whether detail data is returned and force synchronous processing.
-
- piDataField (Boolean) – determines if process level data fields should be returned
- piXmlField (Boolean) – determines if process level XML fields should be returned
- synchronous (Boolean) – determines if the server starts this process synchronously
Request Headers
Ensure that the request has at least these headers set.
- Authorization – Basic or NTLM (Windows)
- Content-type – application/xml
Authorization: Basic {encrypted token goes here}
Content-type: application/xml |
Request Body
The request body contains the ProcessInstance item represented as XML. The ProcessInstance item XML returned from Process GET methods can be used as a starting point for the XML input of this POST method. Any invalid elements or attributes will be ignored.
The ProcessInstance XML consists of the following.
Namespaces
-
The ProcessInstance XML requires namespaces to be defined.
xmlns:w="http://schemas.k2.com/worklist/d1" (required) – contains the process instance and nodes -
xmlns:p="http://schemas.k2.com/process/d1" (optional) – contains the nodes for process and activity data fields when provided
Elements and Attributes
- <ProcessInstance>
-
- @FullName (String, required) – the name of the process definition to start an instance of in Folder\Name format
- @ExpectedDuration (Integer) – a expected duration in minutes to assign to the process instance
- @Priority (Integer) – the priority to assign to the process instance
- @Folio (String) – the folio value to assign to the process instance. Uses current DateTime as default if no value is provided.
- <DataField> (XML) – data field values are XML formatted. In .Net use XmlConvert.ToString to get the string value otherwise use XmlConvert.To[Type] to get the actual value.
- <XmlField> (XML) – XML field values are XML escaped. In .Net use XML objects to get the value: XmlDocument.InnerText, XmlReader.InnerText, XmlWriter.InnerText, or XDocument.Value.
<?xml version="1.0" encoding="utf-8"?> <w:ProcessInstance xmlns:w="http://schemas.k2.com/worklist/d1" xmlns:p="http://schemas.k2.com/process/d1" ExpectedDuration="20" FullName="K2 Examples\Order Process" Folio="Order-ACME" Priority="3"> <p:DataField Name="MyProcessDataField">Some process data value</p:DataField> <p:XmlField Name="MyProcessXMLField">&lt;XmlDocument&gt;Some Process XML document&lt;/XmlDocument&gt;</p:XmlField> </w:ProcessInstance>
Return Type
ProcessInstance or Failure
Due to the asynchronous nature of the POST, a successful call may not return anything depending on the tooling used to execute the POST.
POST /K2Services/REST.svc/Process/Instances/StartInstance?piDataField=true&piXmlField=true <?xml version="1.0" encoding="utf-8"?> <ProcessInstance ExpectedDuration="20" Folder="K2 Example " Folio="Order-ACME" FullName="K2 Example\Order Process" Guid="b8cf5da7-7cf9-4af2-abc6-7fb91a69354c" ID="8" Name="Order Process" Priority="3" StartDate="2011-02-16T04:52:47.6876172Z"Status="Running" xmlns="http://schemas.k2.com/worklist/d1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Description xmlns="http://schemas.k2.com/process/d1"/> <Metadata xmlns="http://schemas.k2.com/process/d1">Blank</Metadata> <DataField Name="MyProcessDataField" xmlns="http://schemas.k2.com/process/d1">Some process data value</DataField> <XmlField Name="MyProcessXMLField" xmlns="http://schemas.k2.com/process/d1">&lt;XmlDocument&gt;Some Process XML document&lt;/XmlDocument&gt;</XmlField> </ProcessInstance>