Complete Work Item (Task)

API Type

REST

HTTP Method

POST

Description

Completes the specified human task (manual work item), and changes its status to Completed in the database.

Good to Know

  • If the process instance is not in the running state, an exception is thrown.
  • This API can be called only by the task owner or AgilePoint System User.
  • If the specified task is a parent task with more than one linked tasks in the Assigned state, the API call fails.
  • If the specified task is already completed, and user makes multiple attempts, the API returns null, with no action taken.

URL Format (OnPremises, PrivateCloud)

https://[domain]:[port]/AgilePointServer/Workflow/CompleteWorkItem/[workItemID]

URL Format (OnDemand)

https://[domain]:[port]/AgilePointService/Workflow/CompleteWorkItem/[workItemID]

Request Parameters

Name Description

workItemID

Function:
An ID that represents a work item (task).
Type
string
Accepted Values:
A valid, unique 32-byte work item (task) ID.

Request Body Properties

Name Description

clientData

Function:
Specifies the client data, which identifies a client for AgilePoint Server.
Type
string
Accepted Values:
A string that contains the client data.

If this value is null, the system will keep existing client data. Otherwise the relevant data is overwritten.

JavaScript Code Example

$("#btnCompleteWorkItem").click(function () {

  var JSONObject = { clientData: null };

  $.ajax({
    url: "https://mydomain:9011/AgilePointServer/Workflow/
                CompleteWorkItem/C9B01E350C65473F9D37C895608E9C7A",
    data: JSON.stringify(JSONObject)
  });

});

Java Code Example

public String CompleteWorkItem() {

  String URI = "https://mydomain:9011/AgilePointServer/Workflow/
                        CompleteWorkItem/C9B01E350C65473F9D37C895608E9C7A";

  HTTPOperations ops = new HTTPOperations(domain, userName, 
                       password, appID, locale);

  JSONObject postData = new JSONObject();
  
    postData.put("clientData", "");
    return ops.POSTMethod(URI, postData.toString());
  return "";
}

C# Code Example

public string CompleteWorkItem()
  {
    string URI = "https://mydomain:9011/AgilePointServer/Workflow/
                         CompleteWorkItem/C9B01E350C65473F9D37C895608E9C7A";

    string jsonRequestData = "{\"clientData\":\"" + null + "\"}";

    HTTPOperations ops = new HTTPOperations(domain, this.userName, 
                         password, appID, locale);

    return ops.POSTMethod(URI, jsonRequestData);
  }

cURL Code Example

Note: The authorization code is an example. You must generate your own authorization code in base64 encoded format with the syntax Domain\Username:Password.
curl --header "Content-Type: application/json" 
                         --header "Authorization:Basic QVAtNDI0XEFkbWluOnBhc3M=" 
                         --request POST --data {\"clientData\":\"\"} 
                         https://mydomain:9011/AgilePointServer/Workflow/
                         CompleteWorkItem/827028D244B4F4D911775FD623D75397

Output

WFEvent object that provides the status of the transaction. The possible statuses are:

  • Sent - Indicates event has been sent to engine for processing.
  • Failed - Indicates event failed to process.
  • Processed - Indicates event has been processed successfully.
  • Canceled - Indicates event was canceled.
  • Deferred - Indicates event does not need to be sent immediately.

JSON Response Body Example

{
  "ActivityInstID": "A27AD9FE81164DBDB09E9E7CEDCD0930",
  "AutoStart": true,
  "CustomAttributes": null,
  "Diagnostic": true,
  "EndDate": "\/Date(928149600000+0000)\/",
  "Entries": 1,
  "Error": null,
  "EventID": "21142758708B4BCF891459E2F8A6E84F",
  "EventName": "CompleteWorkItem",
  "HighPriority": true,
  "ParamsXml": "<?xml version=\"1.0\" encoding=\"utf-8\"?>
                <WFEvent>
                  <param name=\"ProcInstID\" 
                            value=\"B7F0ACFA610349B4BF10A4DAB8E93458\" \/>
                  <param name=\"ActivityInstID\" 
                            value=\"A27AD9FE81164DBDB09E9E7CEDCD0930\" \/>
                  <param name=\"HighPriority\" value=\"True\" \/>
                  <param name=\"WorkItemID\" 
                            value=\"B246A848619D4116B782F8584C52636D\" \/>
                <\/WFEvent>",
  "ParentProcInstID": "",
  "ProcDefID": "",
  "ProcInstID": "B7F0ACFA610349B4BF10A4DAB8E93458",
  "ProcInstName": "",
  "Sender": "mydomain\\administrator",
  "SentDate": "\/Date(1394148009109+0000)\/",
  "SourceWorkItemID": "",
  "Status": "Sent",	
  "UserID": "",
  "WorkItemID": "B246A848619D4116B782F8584C52636D",
  "WorkObjectID": "",
  "WorkObjectInfo": ""
}

Supported Versions

AgilePoint v5.0 R2 and higher

Code Examples in the AgilePoint NX Documentation

The AgilePoint NX Product Documentation is intended as a basic reference to help you understand how to complete basic coding tasks, such as make API or JavaScript method calls. Code examples that show specific use cases, the solutions to specific business problems, or detailed implementation scenarios are outside the scope of the AgilePoint NX Product Documentation. For specific and/or advanced types of examples that may better meet your requirements, AgilePoint provides several resources:

  • AgilePoint Community Forums - A free, AgilePoint-moderated, crowd-sourcing user forum where you can ask questions about specific techniques, the solutions to use cases, workarounds, or other topics that may not be covered in the Product Documentation.
  • Professional Services - If you can not find the information you need for your specific business problem, mentoring is available through AgilePoint Professional Services.
  • Personalized Training - AgilePoint can provide personalized training for your organization. To request personalized training, contact AgilePoint Sales.