Merge Table Records

post

/rest/api/v1.3/folders/{folderName}/suppData/{tableName}/members

This operation is used to merge (update) Supplemental Table records.

Request

Path Parameters
Body ()
Request body
Root Schema : Supplemental Table records
Type: object
Title: Supplemental Table records
Show Source
Nested Schema : matchColumnNames
Type: array
The column names to be used to match the member record to the Supplemental Table records. Only used during the merge operation.
Show Source
Nested Schema : recordData
Type: object
Record data that represents field names and corresponding values for the member.
Show Source
Nested Schema : fieldNames
Type: array
Field names in the Supplemental Table
Show Source
Nested Schema : records
Type: array
Array of values corresponding to the fieldNames. Each element in the array represents a single member.
Show Source
Nested Schema : items
Type: array
Field values for the member in the Supplemental Table
Show Source
Back to Top

Response

Supported Media Types

Default Response

Body ()
Root Schema : Supplemental Table records
Type: object
Title: Supplemental Table records
Show Source
Nested Schema : matchColumnNames
Type: array
The column names to be used to match the member record to the Supplemental Table records. Only used during the merge operation.
Show Source
Nested Schema : recordData
Type: object
Record data that represents field names and corresponding values for the member.
Show Source
Nested Schema : fieldNames
Type: array
Field names in the Supplemental Table
Show Source
Nested Schema : records
Type: array
Array of values corresponding to the fieldNames. Each element in the array represents a single member.
Show Source
Nested Schema : items
Type: array
Field values for the member in the Supplemental Table
Show Source
Back to Top

Examples

Tip:

Need Higher API Call Limits? We have an API on Asynchronous API with the same functionality. Please use the Asynchronous Merge Supplemental Table Records API.

For an existing supplemental table, new members can be added or data for existing members can be updated. For a given supplemental table in a specific folder, an array of record data that contains field names and their corresponding field values are specified using a matchColumnNames attribute in the payload. A maximum of 200 records can be merged in one request.

FIELDS DESCRIPTION
Authorization <AUTH_TOKEN>
Content-Type application/json

Sample Request Body:

NOTES:
  1. The "matchColumnNames" attribute in the payload is used to identify the column to use to match to a record in the supplemental table without a primary key.
  2. This interface enforces that "insertOnNoMatch" is "true" and "updateOnNoMatch" is "REPLACE_ALL" in the request payload.
  3. Field names specified in the "fieldNames" attribute are case sensitive. They must match their case as defined in the supplemental table.
       {
        "recordData" : {
          "fieldNames" : ["PK1", "PK2", "F1", "F2", "PK3"],
          "records" : [
                      ["1", "1", "onerec", "onecol", "1"],
                      ["1", "1", "onerec", "onecol", "2"],
                      ["1", "1", "onerec", "onecol", "3"]
                      ],
          "mapTemplateName" : null
        },
         "insertOnNoMatch" : true,
         "updateOnMatch" : "REPLACE_ALL",
         "matchColumnNames" : ["F1"]
       }

  

Sample Response: Success

NOTES:
  • When a record was merged successfully, the record in the response mirrors the record in the request payload.
  • In case merge failed, the first element of the record contains an error message starting with "MERGEFAILED:" and depending on the number of elements present in the record in the request, the other elements in the record in the response are empty strings. Client developers can look for the string "MERGEFAILED:" in the response for a particular row to determine whether that recipient was merged successfully or not.
  • The order of records in the response matches the order of records specified in the request payload. Furthermore, other attributes in the response like mapTemplateName, insertOnNoMatch, updateOnMatch, and matchColumn will mirror the valid values specified in the request payload or default to null/false in case of invalid values.
       {
         "recordData":    {
            "fieldNames":       [
               "F1",
               "F2"
            ],
            "records": [[
               "onerec",
               "updatedvalues"
            ]],
            "mapTemplateName": null
         },
         "insertOnNoMatch": true,
         "updateOnMatch": "REPLACE_ALL",
         "matchColumnNames": ["F1"],
         "links": [   {
            "rel": "self",
            "href": "/rest/api/v1.3/folders/DemoNewsLetter/suppData/CompositePKSuppTable/members",
            "method": "POST"
         }]
      }

  

Sample Response in case matchColumnNames and fieldNames specified cannot be used to identify records to merge:

     {
       "recordData":    {
          "fieldNames":       [
             "PK1",
             "PK2",
             "F1",
             "F2",
             "PK3"
          ],
          "records":       [
                      [
                "MERGEFAILED: Unable to identify record to Merge from the Match Columns and FieldNames Specified.",
                "",
                "",
                "",
                ""
             ],
                      [
                "MERGEFAILED: Unable to identify record to Merge from the Match Columns and FieldNames Specified.",
                "",
                "",
                "",
                ""
             ],
                      [
                "MERGEFAILED: Unable to identify record to Merge from the Match Columns and FieldNames Specified.",
                "",
                "",
                "",
                ""
             ]
          ],
          "mapTemplateName": null
       },
       "insertOnNoMatch": true,
       "updateOnMatch": "REPLACE_ALL",
       "matchColumnNames": ["F1"],
       "links": [   {
          "rel": "self",
          "href": "/rest/api/v1.3/folders/DemoNewsLetter/suppData/CompositePKSuppTable/members",
          "method": "POST"
       }]
    }

Sample Response in case insertOnMatch or updateOnNoMatch are invalid

           {
             "type": "",
             "title": "Invalid request parameters",
             "errorCode": "INVALID_PARAMETER",
             "detail": "insertOnNoMatch must be true and updateOnMatch must be REPLACE_ALL if matchColumnNames is specified",
             "errorDetails": []
           }
    

Sample Response in case matchColumnNames is not specified:

        {
           "type": "",
           "title": "Invalid request parameters",
           "errorCode": "INVALID_PARAMETER",
           "detail": "MatchColumnNames must be specified to merge into a table that does not have any primary keys",
           "errorDetails": []
        }
     
Back to Top