Create, Update, and Remove Assignments
POST /ws/rest/service/v2/activity/sheet/assignments
Purpose
Create, update, and remove Assignments in the Activity Sheet in a specified Shell based on sourceProjectID, project_number, and the Activity Sheet provided in the input parameters.
Prerequisites
This REST service is specific to updating externally synced Assignment data from other applications. It excludes Manual Activity Sheets, which are generated inside the system. Therefore, sourceProjectID should be configured or added in the user interface tab (go to the applicable project/shell tab; click My Dashboard, and select Details; click the Primavera Cloud Integration tab).
- For the System Activity Sheet, sourceProjectID (the projectID of the external application) should already exist. If not, use the Mapped Projects API.
- The Activity Sheet exists and has activities that need Assignments created, updated, or removed.
- Cost Codes are defined in the Cost Sheet.
- The user has the necessary Activity Sheet Services Permissions in the Activity Manager.
Notes:
- There is no GET or PUT service for this API.
- The Planned Cost, Actual Cost, Remaining Cost, and At Completion Cost values in the Assignments tab are calculated and populated when a user triggers Recost.
- The Rate source, Resource and Role, Planning PricePerUnit, and Actuals PricePerUnit values are populated during Recost. The value is 0 before Recost is triggered.
- Recost only works for the System Activity Sheet if the Assignment Spread is present.
- Scheduling handles spread generation and Recost for the Manual Activity Sheet.
- Inactive resources or roles can be assigned via the System Activity Sheet. This is not available in the Manual Activity Sheet.
- All Timestamp related fields exclusively accept hour formats in the Manual Activity Sheet. Any minutes included in a request are ignored.
- Fixed Duration is the only supported duration type for activities inserted via this REST Service.
- actualDuration is a calculated field for Manual Activity Sheet Assignments and is populated when scheduling the sheet.
- The profile for a supported Assignment is always linear.
- Validations are not implemented for System Activity Sheet data assuming the data from the source system is sent properly.
Request Format
Send an API Request as a JSON map with the following structure:
{
"options":{},
"data":[]
}
Request Parameters Supported in "options" JSON Map
The "options" JSON map can include the following parameters:
"options":
{"source": "<value>",
"project_number": "<value>",
"sourceProjectId":"<value>",
"activitySheetType": "<value>",
"projectType": "<value>",
"activitySheetName": "<value>",
"removeUnreferencedData": "<value>"
}
The following request parameters can be included in the "options" JSON map:
Request Parameter | Required? | Data Type | Description |
---|---|---|---|
source | Yes | String | The external application from which Assignment data is pulled to be populated. Valid values include: "Primavera Cloud", "P6", and "Others". |
project_number | Yes | String | The valid 'Active' Unifier Shell number that is to be updated with project details. |
sourceProjectId | Yes | String | The project code in the source application. It is always the current Project Id for system and project number for manual. |
activitySheetType | Yes | String | Indicate type of activity sheet type. Valid values include: system and manual. For Primavera Cloud integrations,specify "system" to insert data into the System Activity Sheet. |
projectType | Yes | String | The type of project for which the assignments have to be created. Valid values include:Current and Baseline. |
activitySheetName | No | String | Specify this parameter if you have selected the"activitySheetType" parameter value as "manual" This parameter checks for any existing manual activity sheet with the same name. Assignments are then removed or added for the activities in that activity sheet. Ignore this parameter if the "activitySheetType" parameter value is set as "system". |
removeUnreferencedData | No | Boolean | Valid values include: True: Creates & updates assignments present in the request body for the respective activity. Removes assignments that don't exist in the current request data for the respective activities passed in the API request from the existing activity sheet. False (default): Does not remove any assignments under an activity from the existing activity sheet. Creates assignments from the request data if they don't exist. Updates assignments if they exist. |
Request Parameters Supported in the "data" JSON List [ ]
The "data" JSON list can contain one or more JSON maps in the following format:
{
"options":{},
"data":[
{
"activityId": "<value>",
"rateSource": "<value>",
"workspaceCode": "<value>",
"resourceCode": "<value>",
"roleCode": "<value>",
"plannedPricePerUnit": "<value>",
"actualsPricePerUnit": "<value>",
"plannedUnits": "<value>",
"actualUnits": "<value>",
"atCompletionUnits": "<value>",
"remainingUnits": "<value>",
"costCode": "<value>",
"plannedStart": "<value>",
"plannedFinish": "<value>",
"plannedDuration": "<value>",
"actualStart": "<value>",
"actualFinish": "<value>",
"remainingStart": "<value>",
"remainingFinish": "<value>",
"remainingDuration": "<value>",
"start": "<value>",
"finish": "<value>",
"duration": "<value>",
"plannedUnitsPerTime": "<value>",
"remainingUnitsPerTime": "<value>",
"profile": "<value>"
}
]
}
The following parameters can be included in the "data" JSON list [ ] :
Request Parameter | Required? | Data Type | Description |
---|---|---|---|
activityId | Yes | String | The unique Id or code of the Activity in the activity sheet. |
rateSource | Yes | String | Determines whether the source for price/unit is Resource or Role or Override. Valid values include: "Resource", "Role" and "Override". |
workspaceCode | Yes, if the source is Primavera Cloud | String | If the project is integrated from Primavera Cloud application, specify the code of the workspace where the resource/role is available. This is mandatory field if source is Primavera Cloud |
resourceCode | Yes, if the rateSource value is "Resource" | String | The unique identifier for the resource. |
roleCode | Yes, if the rateSource value is "Role" | String | The unique identifier for the role. |
plannedPricePerUnit | No | Double |
|
actualsPricePerUnit | No | Double |
|
plannedUnits | No | Double | System Activity Sheets If a value is not provided, it defaults to zero. Manual Activity Sheets
|
actualUnits | Yes if the Activity status is " In Progress" or "Completed". | Double | System Activity Sheets If a value is not provided, it defaults to zero. Manual Activity Sheets If status = Not Started:
If status = Completed:
|
atCompletionUnits | No | Double | System Activity Sheets If a value is not provided, it defaults to zero. Manual Activity Sheets
|
remainingUnits | No | Double | System Activity Sheets If a value is not provided, it defaults to zero. Manual Activity Sheets
|
costCode | No | String | Specify the full path of the CBS Code with entire hierarchy present in Cost Sheet, has to be given. Use "~~" will be used as path separators for the hierarchy.
|
For Manual Activity Sheet Assignments, specify the following request parameters | |||
plannedStart | No | Timestamp | The plannedStart is determined as follows:
|
plannedFinish | No | Timestamp | The plannedFinish is determined as follows:
|
plannedDuration | No | Integer | The plannedDuration is determined as follows:
|
actualStart | No | Timestamp | If the ActivityStatus is In Progress or Completed and is less than the Activity ActualStart then the Activity ActualStart is also updated. If its not provided in the request then it is updated as the Activity ActualStart. |
actualFinish | No | Timestamp | If ActivityStatus is Completed and the ActualFinish of the Assignment in the request is greater than the Activity ActualFinish then the Activity ActualFinish is also updated. If it is not provided in the request then it is updated as the Activity ActualFinish |
remainingStart | No | Timestamp | When ActivityStatus is Not Started:
When ActivityStatus is In Progress:
If ActivityStatus is Completed, no value is assigned. |
remainingFinish | No | Timestamp | If the status is Not Started:
If status is in In Progress:
If ActivityStatus is Completed, no value is assigned. |
remainingDuration | No | Integer | If the status is Not Started or In Progress:
If the Status is Completed, it is set to zero (0) |
start | No | Timestamp | If ActivityStatus is Not Started:
If ActivityStatus is In Progress orCompleted:
If both, Start and ActualStart are not provided then Start is updated using the Activity ActualStart. |
finish | No | Timestamp | If the ActivityStatus is Not Started:
If the ActivityStatus is In Progress Activities:
If the ActivityStatus is Completed:
|
duration | No | Integer | If it is included in the API request, it check if Start + Duration = Finish. Otherwise, displays an error message. If it is not included in the request, it is updated as, Finish - Start. |
plannedUnitsPerTime | No | Double | If it is not included in the request, then it is populated from the Master Rate Sheet. |
remainingUnitsPerTime | No | Double | If ActivityStatus is Not Started:
If ActivityStatus is In Progress Activities and it is not included in the request, it is populated from the Master Rate Sheet. If ActivityStatus is Completed:
|
profile | No | String | The profile for the assignments. Valid value: "Linear". |
Response Format
A JSON object is returned in the following format.
{
"data": [],
"message": [<list of messages>],
"status": <REST status code value>,
"rest_audit_id": <id from the audit table>
}
A successful response displays a status code 200.
A failed response displays a message with a status code.
Sample Request (System Activity Sheet - Current Project)
This is an example of a request sent for a Current project in a system activity sheet.
{
"options":{
"project_number":"P-0016",
"source":"Primavera Cloud",
"sourceProjectId":"OPC10",
"activitySheetType":"system",
"removeUnreferencedData":true,
"projectType": "Current"
},
"data": [
{
"activityId":"A1000",
"roleCode":"APIOPC1",
"rateSource": "Override",
"workspaceCode" :"NON_PROD",
"plannedPricePerUnit": 20.0,
"actualsPricePerUnit":20.0,
"plannedUnits":40,
"actualUnits":0,
"atCompletionUnits":40,
"remainingUnits":50,
"costCode": "00000~~00500",
"profile" : "Linear"
},
{
"activityId":"A1010",
"resourceCode":"Child999",
"rateSource": "Resource",
"workspaceCode" :"test1",
"plannedPricePerUnit": 20.0,
"actualsPricePerUnit":20.0,
"plannedUnits":40,
"actualUnits":0,
"atCompletionUnits":40,
"remainingUnits":40,
"costCode": "00000~~00500",
"profile" : "Linear"
},
{
"activityId":"A1010",
"roleCode":"APIOPC1",
"rateSource": "Role",
"workspaceCode" :"NON_PROD",
"plannedPricePerUnit": 20.0,
"actualsPricePerUnit":20.0,
"plannedUnits":40,
"actualUnits":0,
"atCompletionUnits":40,
"remainingUnits":40,
"costCode": "00000~~00500",
"profile" : "Linear"
},
{
"activityId":"A1020",
"resourceCode":"Child1Rate4",
"rateSource": "Resource",
"workspaceCode" :"NON_PROD3",
"plannedPricePerUnit": 20.0,
"actualsPricePerUnit":20.0,
"plannedUnits":40,
"actualUnits":0,
"atCompletionUnits":40,
"remainingUnits":40,
"costCode": "00000~~00500",
"profile" : "Linear"
}
]
}
Sample Response (System Activity Sheet - Current Project)
The REST service returns a response for the above request.
{
"data": [
{
"activityId": "A1000",
"costCode": "00000~~00500",
"actualsPricePerUnit": 20.0,
"actualUnits": 0,
"plannedPricePerUnit": 20.0,
"workspaceCode": "NON_PROD",
"roleCode": "APIOPC1",
"plannedUnits": 40,
"atCompletionUnits": 40,
"id": 514,
"remainingUnits": 50,
"rateSource": "Override"
},
{
"activityId": "A1010",
"costCode": "00000~~00500",
"actualUnits": 0,
"resourceCode": "Child999",
"workspaceCode": "test1",
"plannedUnits": 40,
"atCompletionUnits": 40,
"id": 503,
"remainingUnits": 40,
"rateSource": "Resource"
},
{
"activityId": "A1010",
"costCode": "00000~~00500",
"actualUnits": 0,
"workspaceCode": "NON_PROD",
"roleCode": "APIOPC1",
"plannedUnits": 40,
"atCompletionUnits": 40,
"id": 513,
"remainingUnits": 40,
"rateSource": "Role"
},
{
"activityId": "A1020",
"costCode": "00000~~00500",
"actualUnits": 0,
"resourceCode": "Child1Rate4",
"workspaceCode": "NON_PROD3",
"plannedUnits": 40,
"atCompletionUnits": 40,
"id": 510,
"remainingUnits": 40,
"rateSource": "Resource"
}
],
"message": [
"success"
],
"status": 200,
"rest_audit_id": 2648
}
Sample Request (Creation of Assignments for Baseline Project from Oracle Primavera Cloud)
This is an example of a request sent to create for a baseline project from Oracle Primavera Cloud.
{
"options":{
"project_number":"P-0099",
"source":"Primavera Cloud",
"sourceProjectId":"Reg235",
"activitySheetType":"system",
"projectType":"Baseline",
"removeUnreferencedData":"true"
},
"data": [
{
"activityId":"A1000",
"resourceCode":"Res1",
"roleCode":"Role1",
"rateSource": "Resource",
"plannedPricePerUnit": 10,
"actualsPricePerUnit":20,
"plannedUnits":10,
"actualUnits":10,
"atCompletionUnits":10,
"remainingUnits":10,
"plannedCost": 300.50,
"actualCost": 200.30,
"atCompletionCost":500.80,
"remainingCost":50.00,
"costCode": "C-001",
"start": "2023-06-05T08:00:00",
"finish": "2023-06-09T16:00:00",
"duration": 40,
"plannedStart": "2023-06-05T08:00:00",
"plannedFinish": "2023-06-09T16:00:00",
"plannedDuration":40,
"actualStart": "",
"actualFinish": "",
"remainingStart": "2023-06-05T08:00:00",
"remainingFinish": "2023-06-09T16:00:00",
"remainingDuration" : 40,
"plannedUnitsPerTime" : 0,
"remainingUnitsPerTime" : 0,
"profile" : "Linear",
"workspaceCode":"NON_PROD"
}
]
}
Sample Response (Creation of Assignments for Baseline Project from Oracle Primavera Cloud)
The REST service returns a response by creating assignments for the above request.
{
"data": [
{
"activityId":"A1000",
"resourceCode":"Res1",
"roleCode":"Role1",
"rateSource": "Resource",
"plannedPricePerUnit": 10,
"actualsPricePerUnit":20,
"plannedUnits":10,
"actualUnits":10,
"atCompletionUnits":10,
"remainingUnits":10,
"plannedCost": 300.50,
"actualCost": 200.30,
"atCompletionCost":500.80,
"remainingCost":50.00,
"costCode": "C-001",
"start": "2023-06-05T08:00:00",
"finish": "2023-06-09T16:00:00",
"duration": 40,
"plannedStart": "2023-06-05T08:00:00",
"plannedFinish": "2023-06-09T16:00:00",
"plannedDuration":40,
"actualStart": "",
"actualFinish": "",
"remainingStart": "2023-06-05T08:00:00",
"remainingFinish": "2023-06-09T16:00:00",
"remainingDuration": 40,
"plannedUnitsPerTime": 0,
"remainingUnitsPerTime": 0,
"profile": "Linear",
"workspaceCode":"NON_PROD",
"id" : 123
}
],
"message": [
"success"
],
"status": 200,
"rest_audit_id": 5822
}
Sample Failure Request
This is an example of a request sent with erroneous request parameter values.
{
"options":{
"project_number":"P-0016",
"source":"Others",
"sourceProjectId":"Reg235",
"activitySheetType":"manual",
"removeUnreferencedData":true,
"activitySheetName":"MOD",
"projectType": "Current1"
},
"data": [
{
"activityId":"A1000",
"resourceCode":"Res1",
"roleCode":"Role1",
"rateSource": "Resource",
"plannedPricePerUnit": 10,
"actualsPricePerUnit":20,
"plannedUnits":10,
"actualUnits":10,
"atCompletionUnits":10,
"remainingUnits":10,
"plannedCost": 300.50,
"actualCost": 200.30,
"atCompletionCost":500.80,
"remainingCost":50.00,
"costCode": "C-001",
"start": "2023-06-05T08:00:00",
"finish": "2023-06-09T16:00:00",
"duration": 40,
"plannedStart": "2023-06-05T08:00:00",
"plannedFinish": "2023-06-09T16:00:00",
"plannedDuration":40,
"actualStart": "",
"actualFinish": "",
"actualDuration": 0,
"remainingStart": "2023-06-05T08:00:00",
"remainingFinish": "2023-06-09T16:00:00",
"remainingDuration" : 40,
"plannedUnitsPerTime" : 0,
"remainingUnitsPerTime" : 0,
"profile" : "Linear"
}
]
}
Sample Failure Response
The REST service returns a response for the above erroneous request.
{
"data": [],
"message": [
{
"message": "Invalid value was found in a field: 'projectType'. Allowed values: [Current, Baseline]",
"status": 12145
}
],
"status": 3000,
"rest_audit_id": 1794
}
Sample Request (Manual Activity Sheet – Current Project – Assignments for Not Started Activity)
This is an example of a request for a manual activity sheet in a current project.
{
"options":{
"project_number":"P-0016",
"source":"Others",
"sourceProjectId":"P-0016",
"activitySheetType":"manual",
"removeUnreferencedData":false,
"activitySheetName":"ACTUTC530",
"projectType": "Current"
},
"data": [
{
"activityId":"A1000",
"roleCode":"APIOPC1",
"rateSource": "Override",
"workspaceCode" :"NON_PROD",
"plannedPricePerUnit": 30.0,
"actualsPricePerUnit":30,
"plannedStart": "2023-06-05T08:00:00",
"plannedFinish": "2023-06-12T16:00:00",
"plannedDuration":48,
"plannedUnits":528.0,
"atCompletionUnits":528.0,
"remainingUnits":528.0,
"costCode": "00000~~00700",
"start": "2023-06-05T08:00:00",
"finish": "2023-06-12T16:00:00",
"duration": 48.0,
"remainingStart": "2023-06-05T08:00:00",
"remainingFinish": "2023-06-12T16:00:00",
"remainingDuration": 48,
"remainingUnitsPerTime": 11.0,
"plannedUnitsPerTime": 11.0,
"profile": "Linear"
}
]
}
Sample Response (Manual Activity Sheet – Current Project – Assignments for Not Started Activity)
The REST service returns a response for the above request.
{
"data": [
{
"actualUnits": null,
"plannedPricePerUnit": 30.0,
"plannedUnits": 528.0,
"remainingFinish": "2023-06-12T16:00:00",
"start": "2023-06-05T08:00:00",
"atCompletionUnits": 528.0,
"remainingUnits": 528.0,
"plannedStart": "2023-06-05T08:00:00",
"plannedFinish": "2023-06-12T16:00:00",
"rateSource": "Override",
"duration": 48.0,
"activityId": "A1000",
"costCode": "00000~~00700",
"actualsPricePerUnit": 30,
"roleCode": "APIOPC1",
"remainingStart": "2023-06-05T08:00:00",
"remainingDuration": 48.0,
"plannedDuration": 48.0,
"finish": "2023-06-12T16:00:00",
"remainingUnitsPerTime": 11.0,
"plannedUnitsPerTime": 11.0,
"id": 567
}
],
"message": [
"success"
],
"status": 200,
"rest_audit_id": 3396
}
Sample Request (Manual Activity Sheet – Current Project – Sample of Assignments for Completed Activity)
This is a request sent for a Manual Activity Sheet for a current project with assignments for completed activities.
{
"options":{
"project_number":"P-0016",
"source":"Others",
"sourceProjectId":"P-0016",
"activitySheetType":"manual",
"removeUnreferencedData":false,
"activitySheetName":"ACTUTC530",
"projectType": "Current"
},
"data": [
{
"activityId":"A1020",
"roleCode":"CivEng",
"rateSource": "Override",
"workspaceCode" :"NON_PROD",
"plannedPricePerUnit": 30.0,
"actualsPricePerUnit":30,
"plannedStart": "2023-06-06T08:00:00",
"plannedFinish": "2023-06-07T16:00:00",
"plannedDuration":16,
"plannedUnits":176.0,
"atCompletionUnits":8.0,
"remainingUnits":440.0,
"costCode": "00000~~00700",
"start": "2023-06-06T08:00:00",
"finish": "2023-06-07T16:00:00",
"duration": 16.0,
"actualStart": "2023-06-06T08:00:00",
"actualFinish": "2023-06-07T16:00:00",
"remainingUnitsPerTime": 11.0,
"plannedUnitsPerTime": 11.0,
"actualDuration": 10,
"actualUnits": 8,
"profile" : "Linear"
}
]
}
Sample Response (Manual Activity Sheet – Current Project – Sample of Assignments for Completed Activity)
The REST service returns a response for the above request.
{
"data": [
{
"actualUnits": 8.0,
"plannedUnitsPerTime": 11.0,
"plannedPricePerUnit": 30.0,
"plannedUnits": 176.0,
"remainingFinish": "",
"start": "2023-06-06T08:00:00",
"atCompletionUnits": 8.0,
"remainingUnits": 440.0,
"plannedStart": "2023-06-06T08:00:00",
"rateSource": "Override",
"duration": 16.0,
"activityId": "A1020",
"actualFinish": "2023-06-07T16:00:00",
"plannedFinish": "2023-06-07T16:00:00",
"costCode": "00000~~00700",
"actualsPricePerUnit": 30,
"roleCode": "CivEng",
"remainingStart": "",
"remainingDuration": 0,
"plannedDuration": 16.0,
"finish": "2023-06-07T16:00:00",
"id": 571,
"actualStart": "2023-06-06T08:00:00"
}
],
"message": [
"success"
],
"status": 200,
"rest_audit_id": 3517
}
Sample Request (Manual Activity Sheet – Current Project – Sample of Assignments for In Progress Activity)
This is a request sent for a Manual Activity Sheet for a current project with assignments for In Progress activities.
{
"options":{
"project_number":"P-0016",
"source":"Others",
"sourceProjectId":"P-0016",
"activitySheetType":"manual",
"removeUnreferencedData":false,
"activitySheetName":"ACTUTC530",
"projectType": "Current"
},
"data": [
{
"activityId":"A1010",
"roleCode":"CivEng",
"rateSource": "Override",
"workspaceCode" :"NON_PROD",
"plannedPricePerUnit": 30.0,
"actualsPricePerUnit":30,
"plannedStart": "2023-06-08T08:00:00",
"plannedFinish": "2023-06-15T16:00:00",
"plannedDuration":48,
"plannedUnits":48.0,
"atCompletionUnits":32.0,
"remainingUnits":32.0,
"actualUnits":0,
"costCode": "00000~~00700",
"actualStart":"2023-06-05T08:00:00",
"start": "2023-06-05T08:00:00",
"finish": "2023-06-09T16:00:00",
"duration": 40.0,
"remainingStart": "2023-06-08T08:00:00",
"remainingFinish": "2023-06-09T16:00:00",
"remainingDuration" : 16,
"plannedUnitsPerTime" : 1,
"remainingUnitsPerTime":2,
"actualDuration": 0,
"profile" : "Linear"
}
]
}
Sample Response (Manual Activity Sheet – Current Project – Sample of Assignments for In Progress Activity)
The REST service returns a response for the above request.
{
"data": [
{
"plannedFinish": "2023-06-15T16:00:00",
"actualUnits": null,
"plannedPricePerUnit": 30.0,
"plannedUnits": 48.0,
"remainingFinish": "2023-06-09T16:00:00",
"start": "2023-06-05T08:00:00",
"atCompletionUnits": 32.0,
"remainingUnits": 32.0,
"plannedStart": "2023-06-08T08:00:00",
"rateSource": "Override",
"plannedUnitsPerTime" : 1,
"remainingUnitsPerTime":2,
"duration": 40.0,
"actualUnits":0,
"activityId": "A1010",
"costCode": "00000~~00700",
"actualsPricePerUnit": 30,
"roleCode": "CivEng",
"remainingStart": "2023-06-08T08:00:00",
"remainingDuration": 16.0,
"plannedDuration": 48.0,
"finish": "2023-06-09T16:00:00",
"id": 575,
"actualStart": "2023-06-05T08:00:00"
}
],
"message": [
"success"
],
"status": 200,
"rest_audit_id": 3555
}
Options JSON Map: Supported Validation Messages and Status Codes
The following error messages and status codes display in the response when incorrect values are provided in the request.
Field Name | Use-case Scenario | Status Code | Error Message |
---|---|---|---|
source | The source is not given in JSON input payload | 12007 | The API request is missing the required information: [source] |
source | A wrong source value. | 12008 | Invalid value was found in a field: [source]. Allowed values: [Primavera Cloud, Others] |
source | A wrong value type for source such as boolean or numbers. | 12008 | Invalid value was found in a field: [source]. Allowed values: [Primavera Cloud, Others] |
source | An empty source value. | 12030 | The API request contains empty value for: [source]. Allowed values: [Primavera Cloud, Others] |
project_number | An invalid project_number. | 602 | Project/Shell Number is not correct. |
project_number | The project_number is not given | 12018 | The API request is missing the required information: [project_number]. |
project_number | If the project status is inactive or on-hold or View Only for a given project_number. | 12020 | The API request contains an invalid value: [project_number]. Please check the status of this project_number in Unifier. |
project_number | The project_number is empty. | 12128 | The API request contains empty value for: [project_number]. |
sourceProjectId | If the sourceProjectId is not configured in the source shell. | 12021 | The API request contains an invalid value: [sourceProjectId]. Please check if this sourceProjectId has been configured in Unifier. |
sourceProjectId | Invalid special characters in the sourceProjectId. | 12022 | The API request contains invalid characters in: [sourceProjectId]. The following characters are not allowed : / \\ : * ? \" < > | ' = |
sourceProjectId | A missing sourceProjectId. | 12005 | The API request is missing the required information: [sourceProjectId] |
sourceProjectId | A blank sourceProjectId. | 12032 | The API request contains empty value for: [sourceProjectId]. |
sourceProjectId | Invalid length of sourceProjectId. | 12014 | Invalid value was found in a field: 'sourceProjectId'. Allowed length: [250] |
activitySheetType | A missing activitySheetType value. | 12010 | The API request is missing the required information: [activitySheetType] |
activitySheetType | Accepts only "manual" or "system", else throwing validation. | 12011 | Invalid value was found in a field: [activitySheetType]. Allowed values: [manual, system] |
activitySheetType | The source is "Primavera Cloud" in the request, and the activitySheetType is "manual". | 12671 | Invalid value was found in a field: [activitySheetType]. If source=Primavera Cloud, allowed values: [system] |
activitySheetType | The source is "Others" in the request and the activitySheetType is "system". | 12671 | Invalid value was found in a field: [activitySheetType]. If source=Others, allowed values: [manual] |
projectType | The projectType is missing in the payload. | 12143 | The API request is missing the required information: [projectType]. |
projectType | The projectType is empty/blank. | 12144 | The API request contains empty value for: [projectType]. |
projectType | The wrong data type(integer/boolean) value is passed for projectType. | 12142 | Invalid value was found in a field: [projectType]. Allowed only alphanumeric value. |
projectType | Some invalid value except "Current"/"Baseline" passed in projectType. | 12145 | Invalid value was found in a field: [projectType]. Allowed values: [Current, Baseline] |
activitySheetName | The activity sheet name is empty for activity sheet type "manual", and displays validation. | 12012 | The API request is missing the required information: [activitySheetName]. |
activitySheetName | The activitySheetName exceeds 250 characters. | 12017 | Invalid value was found in a field: [activitySheetName]. Allowed length: [250] |
activitySheetName | he activitySheetName does not exist. | 12013 | The API request contains an invalid value: [activitySheetName]. Please check if this activitySheetName with type=manual has been configured in Unifier. |
removeUnreferencedData | A non-boolean value is provided in removeUnreferencedData. | 12016 | Invalid value was found in a field: [removeUnreferencedData]. Allowed values: [true, false] |
Data JSON List: Supported Validation Messages and Status Codes
The following error messages and status codes display in the response when incorrect values are provided in the request.
Field Name | Use-case Scenario | Status Code | Error Message |
---|---|---|---|
activityId | The activityId exceeds 120 characters. | 12003 | nvalid value was found in a field: [activityId]. Allowed length: [120] |
activityId | The activityId is missing in payload. | 12009 | The API request is missing the required information: [activityId] |
activityId | A non-string value is provided for activityId.. | 12033 | Invalid value was found in a field: [activityId]. Allowed only string value or use quotations. Activity ID: <activityId> |
activityId | The activityId does not exist in the Activity Sheet. | 12606 | Invalid value was found in a field [activityId]. Allowed Activity ID that already exists in Activity Sheet. Activity ID: <activityId> |
rateSource | The rateSource is empty, or Non-String, or null, or invalid value. | 12600 | Invalid value was found in a field: [rateSource]. Allowed values: [Resource, Role or Override]. Activity ID: <activityId> |
rateSource | The rateSource is missing in payload. | 12611 | The API request is missing the required information: [rateSource]. Activity ID: <activityId> |
workspaceCode | The invalid workspaceCode like not string or not alphanumeric or empty or null. | 12115 | Invalid value was found in a field: [workspaceCode]. Allowed only alphanumeric value. |
workspaceCode | The workspaceCode is missing in payload. | 12612 | The API request is missing the required information: [workspaceCode]. |
resourceCode | The rateSource is "Resource" and the resourceCode is missing in the payload. | 12400 | The API request is missing the required information: [resourceCode]. Activity ID: <activityId> |
resourceCode | The rateSource is "Resource" and the Resource Code is empty. | 12401 | The API request contains an empty value for: [resourceCode]. Activity ID: <activityId> |
resourceCode | A non-string value is provided for Resource Code. | 12402 | Invalid value was found in a field: [resourceCode]. Allowed only string value or use quotations. Activity ID: <activityId> |
resourceCode | The Resource Code exceeds 120 characters. | 12403 | Invalid value was found in a field: [resourceCode]. Allowed length: [120]. Activity ID: <activityId> Resource Code: <resourceCode> |
resourceCode | A duplicate resourceCode exists under the same activityId in the request. | 12613 | Only unique value allowed for [resourceCode] under an Activity. Activity ID: <activityId> Resource Code: <resourceCode> |
resourceCode | The Resource Code does not exist in the Master Rate Sheet | 12607 | Invalid value was found in a field [resourceCode]. Allowed only the Resource codes present in Master Rate Sheet. Activity ID: <activityId> Resource Code: <resourceCode> |
roleCode | The rateSource is "Role" and the Role Code is missing. | 12421 | The API request is missing the required information: [roleCode]. Activity ID: <activityId> |
roleCode | The rateSource is "Role" and the Role Code is empty. | 12422 | The API request contains an empty value for: [roleCode]. Activity ID: <activityId> |
roleCode | A non-string value is provided for Role Code. | 12423 | Invalid value was found in a field: [roleCode]. Allowed only string value or use quotations. Activity ID: <activityId> |
roleCode | The Role Code exceeds 120 characters. | 12424 | Invalid value was found in a field: [roleCode]. Allowed length: [120]. Activity ID: <activityId> Role Code: <roleCode> |
roleCode | A duplicate Role Code exists under the same activityId in the request. | 12614 | Only unique value allowed for [roleCode] under an Activity. Activity ID: <activityId> Role Code: <roleCode> |
roleCode | The Role Code does not exist in Master Rate Sheet | 12608 | Invalid value was found in a field [roleCode]. Allowed only the Role codes present in Master Rate Sheet. Activity ID: <activityId> Role Code: <roleCode> |
plannedPricePerUnit | An Invalid plannedPricePerUnit (Not Double) or empty or null. | 12601 | Invalid value was found in a field: [plannedPricePerUnit]. Allowed only positive decimal value. Activity ID: <activityId>/Resource Code: <resourceCode>/Role Code: <roleCode> |
plannedPricePerUnit | The plannedPricePerUnit exceeds 999999999999999 or less than 0. | 12602 | Invalid value was found in a field: [plannedPricePerUnit]. Allowed Range [0-999999999999999]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
actualsPricePerUnit | An invalid actualsPricePerUnit (Not Double) or empty or null. | 12601 | Invalid value was found in a field: [actualsPricePerUnit]. Allowed only positive decimal value. Activity ID: <activityId>. Resource Code: <resourceCode>/Role Code: <roleCode> |
actualsPricePerUnit | The actualsPricePerUnit exceeds 999999999999999 or less than 0. | 12602 | Invalid value was found in a field: [actualsPricePerUnit]. Allowed Range [0-999999999999999]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
plannedUnits | An invalid plannedUnits (Not Double) or empty or null. | 12604 | Invalid value was found in a field: [plannedUnits]. Allowed only numerical/decimal value. Activity ID: <activityId> Resource Code: <resourceCode>/Role Code: <roleCode> |
plannedUnits | The plannedUnits is less than -99999999999999 or exceeds 999999999999999. | 12605 | Invalid value was found in a field: [plannedUnits]. Allowed Range [-999999999999999 - 999999999999999]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
plannedUnits | PlannedUnits != PlannedDuration*PlannedUnitPerTime (for Manual Activity Sheet only). | 12615 | Invalid value was found in a field [plannedUnits]. The value provided should be equal to (plannedDuration * plannedUnitPerTime) of the assignment. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
actualUnits | Invalid actualUnits (Not Double) or empty or null. | 12604 | Invalid value was found in a field: [actualUnits]. Allowed only numerical/decimal value. Activity ID: <activityId> Resource Code: <resourceCode>/Role Code: <roleCode> |
actualUnits | actualUnits is less than -99999999999999 or exceeds 999999999999999. | 12605 | Invalid value was found in a field: [actualUnits]. Allowed Range [-999999999999999 - 999999999999999]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
actualUnits | For In Progress or Completed Activities, the actualsUnits is missing in the request. | 12670 | The API request is missing the required information: [actualUnits]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
atCompletionUnits | An invalid atCompletionUnits (Not Double) or empty or null. | 12604 | Invalid value was found in a field: [atCompletionUnits]. Allowed only numerical/decimal value. Activity ID: <activityId> Resource Code: <resourceCode>/Role Code: <roleCode> |
atCompletionUnits | The atCompletionUnits is less than -99999999999999 or exceeds 999999999999999. | 12605 | Invalid value was found in a field: [atCompletionUnits ]. Allowed Range [-999999999999999 - 999999999999999]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
atCompletionUnits | For Not Started or In Progress Activities : If AtCompletionsUnits != RemainingUnits + ActualUnits (for Manual Activity Sheet only). | 12615 | nvalid value was found in a field [atCompletionUnits]. The value provided should be equal to (remainingUnits + actualUnits) of the assignment. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
atCompletionUnits | For Completed Activities : If AtCompletionsUnits != ActualUnits (for Manual Activity Sheet only). | 12615 | Invalid value was found in a field [atCompletionUnits]. The value provided should be equal to (actualUnits) of the assignment. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
remainingUnits | Invalid remainingUnits (Not Double) or null. | 12604 | Invalid value was found in a field: [remainingUnits]. Allowed only numerical/decimal value. Activity ID: <activityId> Resource Code: <resourceCode>/Role Code: <roleCode> |
remainingUnits | The remainingUnits is less than -99999999999999 or exceeds 999999999999999. | 12605 | Invalid value was found in a field: [remainingUnits]. Allowed Range [-999999999999999 - 999999999999999]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
remainingUnits | If RemainingUnits != RemainingDuration*RemainingUnitsPerTime (for Manual Activity Sheet only). | 12615 | Invalid value was found in a field [remainingUnits]. The value provided should be equal to (remainingDuration * remainingUnitsPerTime) of the assignment. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
costCode | An Invalid costCode is provided - (Non-String) or empty or null or blank. | 12609 | Invalid value was found in a field: [costCode]. Allowed only string values. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
costCode | The costCode does not exist in the Cost Sheet. | 12610 | Invalid value was found in a field [costCode]. Allowed only the Cost codes present in Cost Sheet. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
costCode | Inactive costCode provided in the API request. | 12623 | Invalid value was found in a field: [costCode]. Allowed only active Cost codes. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
plannedStart | An invalid plannedStart format or null or empty value is provided in the request. | 12620 | The API request contains an invalid value: [plannedStart]. Correct date format [yyyy-MM-ddTHH:mm:ss]. Activity ID: <activityId>/Resource Code: <Resource Code>/Role Code: <roleCode> |
plannedStart | The plannedStart less than Activity Planned Start Date. | 12621 | Invalid value was found in a field [plannedStart]. plannedStart cannot be less than Activity plannedStart. Activity ID: <activityId>/Resource Code: <Resource Code>/Role Code: <roleCode> |
plannedStart | The plannedStart provided is on a holiday or a non-working day. | 12672 | Invalid value was found in a field: [plannedStart]. Please provide a working day according to the calendar. Activity ID: <activityId>/Resource Code: <Resource Code>/Role Code: <roleCode> |
plannedFinish | An invalid plannedFinish format or null or empty value provided in the request. | 12620 | The API request contains an invalid value: [plannedFinish]. Correct date format [yyyy-MM-ddTHH:mm:ss]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
plannedFinish | The plannedFinish provided is on a holiday or a non-working day. | 12672 | Invalid value was found in a field: [plannedFinish]. Please provide a working day according to the calendar. Activity ID: <activityId>/Resource Code: <Resource Code>/Role Code: <roleCode> |
plannedDuration | An invalid plannedDuration (Not Integer) or empty or null. | 12616 | Invalid value was found in a field: [plannedDuration]. Allowed only positive integer value. Activity ID: <activityId> Resource Code: <resourceCode>/Role Code: <roleCode> |
plannedDuration | The plannedDuration is less than zero or exceeds 20000. | 12617 | Invalid value was found in a field: [plannedDuration]. Allowed Range [0-20000]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
plannedDuration | If plannedDuration != plannedFinish - plannedStart. | 12618 | Invalid value was found in a field [plannedDuration]. The value provided should be equal to (plannedFinish - plannedStart) of the assignment, as per the calendar defined. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
actualStart | An invalid actualStart format or null or empty value is provided in the request. | 12620 | The API request contains an invalid value: [actualStart]. Correct date format [yyyy-MM-ddTHH:MM:SS]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
actualStart | If Actual Start is in the future. | 12625 | Invalid value was found in a field [actualStart]. actualStart cannot be later than Today. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
actualStart | actualStart provided is on holiday or non-working day. | 12672 | Invalid value was found in a field: [actualStart]. Please provide a working day according to the calendar. Activity ID: <activityId>/Resource Code: <Resource Code>/Role Code: <roleCode> |
actualFinish | Invalid actualFinish format or null or empty value provided in the API Request. | 12620 | The API request contains an invalid value: [actualFinish]. Correct date format [yyyy-MM-ddTHH:mm:ss]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
actualFinish | The Actual Finish is in future. | 12625 | Invalid value was found in a field [actualFinish]. actualFinish cannot be later than Today. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
actualFinish | The plannedStart provided is on a holiday or a non-working day. | 12672 | Invalid value was found in a field: [plannedStart]. Please provide a working day according to the calendar. Activity ID: <activityId>/Resource Code: <Resource Code>/Role Code: <roleCode> |
actualFinish | The actualFinish provided is on a holiday or a non-working day. | 12672 | Invalid value was found in a field: [actualFinish]. Please provide a working day according to the calendar. Activity ID: <activityId>/Resource Code: <Resource Code>/Role Code: <roleCode> |
remainingStart | An invalid remainingStart format or null or empty value provided in the request. | 12620 | The API request contains an invalid value: [remainingStart]. Correct date format [yyyy-MM-ddTHH:mm:ss]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
remainingStart | For NotStarted Activity, if plannedStart date and remainingStart are provided in the request, they should be the same, otherwise displays an error. | 12624 | Invalid value was found in a field [remainingStart]. The value provided should be equal to plannedStart, if Activity status = Not Started. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
remainingStart | For In Progress Activities, if the remaining start date less than Activity Remaining Start date then throw an error. | 12626 | Invalid value was found in a field [remainingStart]. The value provided should be equal to or greater than remainingStart of the Activity, if Activity status = In Progress. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
remainingStart | The remainingStart provided is on a holiday or a non-working day. | 12672 | Invalid value was found in a field: [remainingStart]. Please provide a working day according to the calendar. Activity ID: <activityId>/Resource Code: <Resource Code>/Role Code: <roleCode> |
remainingFinish | Invalid remainingFinish format or null or empty value provided in the API Request. | 12620 | The API request contains an invalid value: [remainingFinish]. Correct date format [yyyy-MM-ddTHH:mm:ss]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
remainingFinish | For NotStarted Activity, if remainingFinish date and plannedFinish date are provided in the request, then they should be same, else display an error. | 12624 | Invalid value was found in a field [remainingFinish]. The value provided should be equal to plannedFinish, if Activity status = Not Started. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
remainingFinish | The remainingFinish provided is on a holiday or a non-working day. | 12672 | Invalid value was found in a field: [remainingFinish]. Please provide a working day according to the calendar. Activity ID: <activityId>/Resource Code: <Resource Code>/Role Code: <roleCode> |
remainingDuration | An invalid remainingDuration (Not Integer) or empty or null. | 12616 | Invalid value was found in a field: [remainingDuration]. Allowed only positive integer value. Activity ID: <activityId> Resource Code: <resourceCode>/Role Code: <roleCode> |
remainingDuration | The remainingDuration is less than zero or exceeds 20000. | 12617 | Invalid value was found in a field: [remainingDuration]. Allowed Range [0-20000]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
remainingDuration | remainingDuration!= RemainingFinish - RemainingStart. | 12618 | Invalid value was found in a field [remainingDuration]. The value should be equal to (remainingFinish - remainingStart) of the assignment, as per the calendar defined. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
start | An invalid start format or null or empty value provided in the request. | 12620 | The API request contains an invalid value: [start]. Correct date format [yyyy-MM-ddTHH:mm:ss]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
start | For NotStarted Activity, if Planned start date and Start date are provided in the request, they should be same, else displays an error. | 12624 | Invalid value was found in a field [start]. The value provided should be equal to plannedStart, if Activity status = Not Started. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
start | For In Progress & Completed Activities, if the actual start date and start are not same, then display an error. | 12627 | Invalid value was found in a field [start]. The value provided should be equal to actualStart (actualStart (Assignment)= actualStart (Activity), if not provided in API), if Activity status = In Progress or Completed. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
start | The start provided is on aholiday or a non-working day. | 12672 | Invalid value was found in a field: [start]. Please provide a working day according to the calendar. Activity ID: <activityId>/Resource Code: <Resource Code>/Role Code: <roleCode> |
finish | An invalid finish format or null or empty value is provided in the request. | 12620 | The API request contains an invalid value: [finish]. Correct date format [yyyy-MM-ddTHH:mm:ss]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
finish | For NotStarted Activity, if Planned finish date and finish are provided in the Request, they should be same. Otherwise, display an error. | 12624 | Invalid value was found in a field [finish]. The value provided should be equal to plannedfinish, if Activity status = Not Started. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
finish | For In Progress Activities, if the Remaining finish date and finish are not same, display an error. | 12628 | Invalid value was found in a field [finish]. The value provided should be equal to remainingfinish, if Activity status = In Progress. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
finish | For Completed Activities, if the actual finish date and finish are not same, display an error. | 12629 | Invalid value was found in a field [finish]. The value provided should be equal to actualFinish (actualFinish (Assignment)= actualFinish (Activity), if not provided in API), if Activity status = Completed. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
finish | The finish provided is on a holiday or a non-working day. | 12672 | Invalid value was found in a field: [finish]. Please provide a working day according to the calendar. Activity ID: <activityId>/Resource Code: <Resource Code>/Role Code: <roleCode> |
duration | An invalid Duration (Not Integer) or empty or null. | 12616 | Invalid value was found in a field: [duration]. Allowed only positive integer value. Activity ID: <activityId> Resource Code: <resourceCode>/Role Code: <roleCode> |
duration | The duration is less than zero or exceeds 20000 | 12617 | Invalid value was found in a field: [duration]. Allowed Range [0-20000]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
duration | If Duration != Finish - Start | 12618 | Invalid value was found in a field [duration]. The value provided should be equal to (finish - start) of the assignment, as per the calendar defined. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
plannedUnitsPerTime | An Invalid plannedUnitsPerTime (Not Double). | 12604 | Invalid value was found in a field: [plannedUnitsPerTime]. Allowed only numerical/decimal value. Activity ID: <activityId> Resource Code: <resourceCode>/Role Code: <roleCode> |
plannedUnitsPerTime | The plannedUnitsPerTime is less than -99999999999999 or exceeds 999999999999999. | 12605 | Invalid value was found in a field: [remainingUnitsPerTime ]. Allowed Range [-999999999999999 - 999999999999999]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
remainingUnitsPerTime | An invalid remainingUnitsPerTime (Not Double). | 12604 | Invalid value was found in a field: [remainingUnitsPerTime ]. Allowed only numerical/decimal value. Activity ID: <activityId>. Resource Code: <resourceCode>/Role Code: <roleCode> |
remainingUnitsPerTime | The remainingUnitsPerTime is less than -99999999999999 or exceeds 999999999999999. | 12605 | Invalid value was found in a field: [remainingUnitsPerTime ]. Allowed Range [-999999999999999 - 999999999999999]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
remainingUnitsPerTime | For NotStarted Activity, if the remainingUnitsPerTime is included in the request, it should be same as plannedUnitsPerTime. Otherwise, displays an error. | 12624 | Invalid value was found in a field [remainingUnitsPerTime]. The value provided should be equal to plannedUnitsPerTime, if Activity status = Not Started. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
profile | If the profile in the request is empty, (Non-String), null or an invalid value. | 12619 | Invalid value was found in a field: [profile]. Allowed values: [Linear]. Activity ID: <activityId> Resource Code: <Resource Code>/Role Code: <roleCode> |
Related Topics
Create or Update Assignment Spreads
Create or Update Activity Spreads
Create, Update, and Remove Activities from the System Activity Sheet of a Specific Shell
Get Activities from the System Activity Sheet of a Specific Shell
Create, Update, and Delete Activities in the Manual Activity Sheet of a Specific Shell
Create or Update Baseline Schedule for Manual Activity Sheet
Get Activities in the Manual Activity Sheet of a Specific Shell
Schedule Project for Manual Activity Sheet
Recost Project for Manual Activity Sheet
Last Published Wednesday, April 9, 2025