Release notes

2022r11

Fix for message in BAPI service when using PUT /contractEntries call on manually linked bundled run

Previously, when

  • manually linking a bundled run to transmission, for example 1-3;

  • setting the site preference Minimal number of runs to be taken from the bundle automatically upon exploitation right creation to that same number, so for example 3;

  • and updating the contract entry of the right using the PUT /contractEntries call and a body that increases the number of runs,

a message log appeared in the BAPI service and the following response would be returned:

{
    "statusCode": "422",
    "message": "Operation cannot be completed due to violations",
    "timestamp": "2022-12-16T11:50:10Z",
    "concept": "ContractEntry",
    "id": null,
    "errors": null
}

This issue has been fixed. The following response is now returned in this scenario instead of appearing in the service:

{
    "statusCode": "422",
    "message": "Operation cannot be completed due to violations",
    "timestamp": "2022-12-16T11:56:57Z",
    "concept": "ContractEntry",
    "id": null,
    "errors": [
        {
            "errorCode": "RIGHTS-00311",
            "description": "This run cannot be taken from the bundle because it is manually linked: Luce - Run, 1 - 4",
            "data": [
                "Luce - Run, 1 - 4"
            ]
        }
    ]
}

2022r10

Fix for updating external number of runs or free reruns using /contracts calls of rights API

In a previous version, an external number of runs and free reruns was introduced to be able to update run or free rerun numbers to a lower number than used in the schedule. (RN-5109) This could be done using the /contract or /contractEntries calls of the rights API.

Previously, however, the POST and PUT /contract calls still returned the following error when trying to make the number of runs or free reruns lower and a run was already linked:

{
   "statusCode": "422", 
   "message": "Operation cannot be completed due to violations",
   "timestamp": "2022-08-22T13:45:14Z",
   "concept": "Contract",
   "id": "CN 12345",
   "errors": [
        "This run cannot be deleted: Big - Run, 1 - 1"
   ]
}

This issue has been fixed. Both the /contract or /contractEntries calls will update as expected.

2022r8

Direct and indirect quotation in GET /currency call of rights API

It was already possible to use the GET /currencies call of the rights API to retrieve all possible values of the Currency drop-down list.

From this version, the response will also include the values of the direct and indirect quotation of the default conversion for each currency, as they are defined on the drop-down list:

[
    {
        "id": "EUR",
        "name": "Euro",
        "directQuotation": 1,
        "indirectQuotation": 1
    },
    {
        "id": "GBP",
        "name": "GBP",
        "directQuotation": 1.1538017769,
        "indirectQuotation": 0.8667000000
    }
]

2022r7

Free rerun period units in rights API

When defining the free rerun period on rights, several units are available:

  • Broadcast day

  • Day starting at same time as run

  • Hour

  • Calendar day

The unit Day starting at same time as run used to be called Calendar day but was renamed in a previous version. (RN-2098)

In version 2021r2.001, the unit Calendar day was added (RN-4459), but it was not yet part of the rights API.

From this version, it has been added to the possible units of the rights API.

The FreeRerunPeriod attribute is used in the following calls:

  • POST /contracts/{contractId}

  • PUT /contracts/{contractId}

  • GET /contracts/{contractId}

  • POST contracts/{contractId}/contractEntries/{productId}

  • PUT contracts/{contractId}/contractEntries/{productId}

  • GET contracts/{contractId}/contractEntries/{productId}

  • GET exploitationRights/{exploitationRightId}

Fix for same financial stock partition in PUT /costDefinitions call of rights API

Previously, when

  • you would send a GET /costDefinitions call with the rights API to retrieve the details of a cost definition;

  • and you would send that response body in a PUT /costDefinitions call without changing it,

then an error would be returned saying that the financial stock partition could not be modified, even though it had not changed.

This issue has been fixed. If the stock partition does not change, the call will be accepted.

2021r3.000

BAPI call for exploitation right

From this version, in the rights API, a new GET /exploitationRights/exploitationRightId call has been added. The call contains the same exploitation right information as you can find already today in the GET /contractEntries call, but also the contractId is returned.

The difference between the response bodies of GET calls /contracts/{contractId}/contractEntries/{productId} and /exploitationRights/{exploitationRightId} is that the GET /contractEntries call also returns the attribute additionalRights.

2020r1.002.000

API version: v1.4.0

External reference cannot be cleared by BAPI

Within any POST and PUT call, if a an attribute is sent empty, WHATS'ON will clear that field. Previously, this was also possible with the external reference of a contract, exploitation right, exploitation window or cost definition.

Now, this is fixed. When no external reference is provided but the attribute is sent empty or null, we will ignore that tag and proceed as if there was no ID field (external reference) provided. This means that it should remain as is in a PUT call or return a new one in a POST call.

2019r3.003

API version: v1.4.0

Cost definitions and amortizations

From this version on, it is possible to work with cost definitions and their amortizations via new calls in the rights API.

Run status

From this version on, it is also possible to change the status of runs via new calls in the rights API.

More detailed error messages

Several improvements were done to return more specific error message in case of problems during a call.

Episode ID referring to other product type

When you update a series contract entry using the POST or PUT calls for contracts or contract entries, and one of the provided episodeIDs does not refer to an episode but a different product type, previously, the returned error message only said:

{

    "statusCode": "500",

    "message": "Message not understood: #,"

} 

Now, the error message indicates the specific problem:

{
    "statusCode": "422",
    "message": "Operation cannot be completed due to violations",
    "details": {
        "message": {
            "id": "CORE-00002",
            "description": "$_Operation cannot be completed due to violations",
            "parameters": []
        },
        "timestamp": "2021-04-23T07:14:33Z",
        "concept": "ContractEntry",
        "message": "INCONSISTENT FIELD - episodeIds",
        "data": "142205527 is not an episode"
    }
} 
Deleting a planned contract entry

When you update a contract using the POST or PUT calls, and a contract entry was left out while runs were already consumed, this meant the contract entry could not be removed. Previously, the returned error message only said:

{
       "statusCode": "422",
       "message": null,
       "details":
       {
              "message":
              {
                     "id": "RIGHTS-00001",
                     "description": "$_ContractEntry could not be removed",
                     "parameters": [
                     ]
              },
              "concept": "Contract"
       }

Now, the error message indicates the specific contract entry:

{
    "statusCode": "422",
    "message": null,
    "details": {
        "message": {
            "id": "RIGHTS-00001",
            "description": "$_ContractEntry could not be removed",
            "parameters": [
                "[Kine2] Knives Out (Disney)"
            ]
        },
        "concept": "Contract"
    }
}
Invalid episode ID

When you update a series contract entry using the POST or PUT calls for contracts or contract entries, and one of the provided episodeIDs is not correct, previously, the returned error message only said:

{
    "statusCode": "404",
    "message": "The specified resource does not exist.",
    "details": {
        "message": {
            "id": "CORE-00004",
            "description": "$_Referenced resource not found",
            "parameters": []
        },
        "concept": "ContractEntry"
    }
}

Now, the error message indicates which IDs are invalid in the parameters:

{
    "statusCode": "404",
    "message": "The specified resource does not exist.",
    "details": {
        "message": {
            "id": "CORE-00004",
            "description": "$_Referenced resource not found",
            "parameters": [
                "B357556527",
                "B357570527"
            ]
        },
        "concept": "Contract"
    }
}