The FTE changed in value when using RestAPI on GET and Patch method
search cancel

The FTE changed in value when using RestAPI on GET and Patch method

book

Article ID: 263490

calendar_today

Updated On:

Products

Clarity PPM On Premise Clarity PPM SaaS

Issue/Introduction

You have created an investment extension object that allows you to enter the staff plan, when you issue a GET in the RESTAPI, the value (segment section) seems changed to a different type.
The same situation happens when using PATCH to update the staff plan.

Below is a GET example in Postman.

The person is allocated 1 FTE in May23, Jun23, July23, Sep23.

After issue GET request in Postman,

https://<host>/ppm/rest/v1/custMitLeaves/5700006/teams/6272387?fields=allocationCurve

The response is as follows, the value you assume would be 1 FTE, but it changes with a different type.

"allocationCurve": {

        "isFiscal"false,

        "curveType""value",

        "total"2252340,

        "dataType""numeric",

        "_type""tsv",

        "start""2023-03-23T00:00:00",

        "finish""2023-09-29T11:04:00",

        "segmentList": {

            "total"2252340,

            "defaultValue"0,

            "segments": [

                {

                    "start""2023-03-23T00:00:00",

                    "finish""2023-04-02T00:00:00",

                    "value"0

                },

                {

                    "start""2023-05-01T00:00:00",

                    "finish""2023-07-30T00:00:00",

                    "value"1621140

                },

                {

                    "start""2023-07-31T00:00:00",

                    "finish""2023-08-27T00:00:00",

                    "value"0

                },

                {

                    "start""2023-08-28T00:00:00",

                    "finish""2023-10-01T11:02:30",

                    "value"631200

                }

            ]

        }

    }

 

Using PATCH and the JSON above, it is expected to save 1 FTE as the original.

However, the allocation is changed to 3600, it looks like it gets saved as a different TSV

Environment

Release : 16.0.0, 16.1.0, 16.1.1

Resolution

As part of your GET request, try adding ",(workEffortUnit=fte)" to the end of your URL
For example:
GET
https://HOSTNAME/ppm/rest/v1/projects/5078206/teams/5083496?&tsvParams=(periods=(actualsCurve,months,4,2023-03-01T08:00:00,fiscal),(allocationCurve,months,4,2023-03-01T08:00:00,fiscal),(estimatesCurve,months,4,2023-03-01T08:00:00,fiscal),(hardAllocationCurve,months,4,2023-03-01T08:00:00,fiscal)),(workEffortUnit=fte)

For the PATCH, include "(workEffortUnit=fte)" in the body:

PATCH 
https://HOSTNAME/ppm/rest/v1/projects/5078206/teams/5083496

body
{
      "allocationCurve": {
        "workEffortUnit": "fte",
        "pattern": "uniform",
        "periodList": [
          {
            "periods": [
              {
                "start": "2023-03-01T00:00:00",
                "finish": "2023-03-31T00:00:00",
                "value": 4.4444
              }
            ]
          }
        ]
      },
      "_internalId": 5083496
    }