Update Editable SOV Column Data
PUT /ws/rest/service/v2/projectsovsheet/columns
Available From: 26.10
Purpose
Update eligible editable values for lines in one Base Commit SOV. All lines for that Base Commit SOV are validated before the SOV update is committed. Repeating the same values is idempotent and does not create duplicate effects.
Prerequisites
Ensure you have Update permissions for SOV Services.
Request Format
The request has an options object that identifies the project and Base Commit BP/design, and a data array that identifies one Base Commit record and its target SOV lines.
| Field | Required? | Description |
|---|---|---|
options.project_number |
Yes | Project or shell number |
options.base_commit_bpname |
Yes | Supported Base Commit BP/design name |
data[].record_no |
Yes | One Base Commit record number |
data[].rows[]._refnum |
Yes | SOV line reference number (Ref.) |
data[].rows[].bitemid |
Yes | Full hierarchical CBS Code for the SOV line |
data[].rows[].<field> |
As needed | Eligible editable DE name and new value |
Recommendations
- Call the retrieval operation before an update to capture the current field names,
_refnum, andbitemidvalues. - Send only fields that must change and validate data values against the configured field definitions before calling the API.
- Use the
rest_audit_idfrom every response in integration logs and troubleshooting records. - Plan any Cash Flow impacts separately. The REST update does not perform the UI SOV-to-Cash-Flow synchronization.
Sample Request
{
"options": {
"project_number": "P-0007",
"base_commit_bpname": "Pay Test 4 Contract",
},
}
data": [{
"record_no": "uxpayt41-0006",
"rows": [{"_refnum": 1, "bitemid": "01000~~01700",
"A1": "Test21_AP2", "long_desc": "L1192"}]
}]
}
Response Format
A successful response has status 200. The message array provides the record status and returned line values. A failed validation returns status and record-level details in message. No lines in that Base Commit SOV are updated.
Sample Success Response
{
"data": [],
"message": [{"_record_status": "success", "record_no": "uxpayt41-0006",
"rows": [{"_refnum": 1, "bitemid": "01000~~01700",
"A1": "Test21_AP2", "long_desc": "L1192"}]}],
"status": 200, "rest_audit_id": 170
}
Sample Failed Response
{
"data": [],
"message": [{"_record_status": "Ref. 1 - A1: Maximum length exceeded.",
"record_no": "uxpayt41-0006"}],
"status": 3000, "rest_audit_id": 368
}
Supported Validation Messages and Status Codes
The following validation messages and status codes display in the response when incorrect values are provided in the request.
| Use-case Scenario | Status Code | Message or Result |
|---|---|---|
| Missing project number | 13001 | Project/Shell number is mandatory and is missing in the input request. |
| Invalid project number | 602 | Project/Shell Number is not correct. |
| Inactive, View-Only, or On-Hold project/shell | 1245 | Create/Update/Delete cannot be performed when project/shell status is Inactive or View-Only or On-Hold. |
| Missing or invalid request keys | 1707 | Invalid Input Parameter. |
| Invalid BP name | 603 | Business Process Name is not correct. |
| Unsupported SOV type | 11013 | Provide a valid Base Commit BP Name of Classic Payment Applications SOV Type. |
| SOV not found | 11011 | Could not retrieve SOV Information. |
| More than one Base Commit record | 11014 | Only one Base Commit record is supported. |
| Group by Commit Code | 11017 | Base Commit SOV Line type Group by commit codes is not supported. |
| Line or field validation failure | 3000 | Record status identifies the Ref. line and the invalid field or line-identity issue. |
| Update privilege not granted | 403 | Forbidden. |