Update Rows

You can also update rows in the specified table.

REQUEST URI

https://<ZohoAnalytics_Server_URI>/restapi/v2/workspaces/<workspace-id>/views/<view-id>/rows

Put

oauthscopeZohoAnalytics.data.update

QUERY PARAMETERS

 

Parameter Name
Description
CONFIG*JSONObject

Config parameter specifications are available in the below section.

FIELDS FOR CONFIG JSON

KeyDescription
columns*JSONObject

JSONObject with column name as key and data as value.

Sample: {"columnName1":"value1","columnName2":"value2"}
criteriaString

If criteria is sent, then the rows matching the criteria alone are updated.

Sample: {"criteria":"\"SalesTable\".\"Region\"='East'"}
Refer this link for more details about how to construct a criteria.
updateAllRowsBoolean

To update all the rows in the table.
addIfNotExist

Boolean

Default Value: false

It controls whether to add a new row with the provided details if the provided criteria doesn't matches with the existing data. 

dateFormatString

Specify this in-case any date field is being added and its format cannot be auto recognized.

Sample: dd-MMM-YYYY
Refer this link for more details about how to construct a custom date format.
columnDateFormatJSONObject
Specify this in case multiple date fields are being imported having different format each.
Column name as key and date format as value.

Sample: {"columnName1":"dd-MMM-YYYY","columnName2":"MM/dd/yyyy"}

POSSIBLE ERROR CODES

7103 , 7138 , 8002 , 8004 , 8504 , 8506 , 8516

Sample Request

Copiedcurl https://analyticsapi.zoho.com/restapi/v2/workspaces/<workspace-id>/views/<view-id>/rows?CONFIG=<encoded_json_value> 
-X 'PUT' 
-H 'ZANALYTICS-ORGID: <org-id>' 
-H 'Authorization: Zoho-oauthtoken <access_token>'
Copiedusing System;
using System.Collections.Generic;
using ZohoAnalytics;
using System.Text.Json;

namespace ZohoAnalyticsTest
{
    class Program
    {
        long orgId = 55522777;
        long workspaceId = 35130000001055707;
        long viewId = 35730000007354002;

        public void UpdateRow(IAnalyticsClient ac)
        {
            Dictionary<string, string> columnValues = new Dictionary<string, string>();
            columnValues.Add("Product", "Test");
            string criteria = "\"Region\"='East'";
            IViewAPI view = ac.GetViewInstance(orgId, workspaceId, viewId);
            JsonElement response = view.UpdateRow(columnValues, criteria, null);
            Console.WriteLine(response);
        }

        static void Main(string[] args)
        {
            string clientId = "1000.xxxxxxx";
            string clientSecret = "xxxxxxx";
            string refreshToken = "1000.xxxxxxx.xxxxxxx";

            try
            {
                IAnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);
                Program obj = new Program();
                obj.UpdateRow(ac);
            }
            catch (ServerException ex)
            {
                Console.WriteLine("Server exception - " + ex.GetErrorMessage());
            }
            catch (Exception ex)
            {
                Console.WriteLine("Other exception - " + ex.Message);
            }
        }
    }
}
Copiedpackage main

import (
    "fmt"
    ZAnalytics "zoho/pkg/analyticsclient"
)

var(
    clientId = "1000.xxxxxxx"
    clientSecret = "xxxxxxx"
    refreshToken = "1000.xxxxxxx.xxxxxxx"

    orgId = "55522777"
    workspaceId = "35130000001055707"
    viewId = "35730000007354002"
)

func UpdateRow(ac ZAnalytics.Client) {
    config := map[string]interface{}{}
    columnvalues := map[string]interface{}{}
    columnvalues["Region"] = "Test"
    columnvalues["Product Category"] = "Updated"
    columnvalues["Product"] = "Updated"
    criteria := "\"Region\"='Test'"
    view := ZAnalytics.GetViewInstance(&ac, orgId, workspaceId, viewId)
    result , err := view.UpdateRow(columnvalues, criteria, config)
    if(err != nil){
        fmt.Println("Error - " + err.ErrorMessage)
    }else{
        fmt.Println(result)
    }
}

func main() {

    ac := ZAnalytics.GetAnalyticsClient(clientId, clientSecret, refreshToken)
    UpdateRow(ac)

}
Copiedimport com.zoho.analytics.client.*;
import org.json.*;

public class Test {

    private long orgId = 55522777l;
    private long workspaceId = 35130000001055707l;
    private long viewId = 35730000007354002l;

    public static void main(String args[]){

        String clientId = "1000.xxxxxxx";
        String clientSecret = "xxxxxxx";
        String refreshToken = "1000.xxxxxxx.xxxxxxx";

        Test tObj = new Test();
        AnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);

        try {
            tObj.updateRows(ac);
        }
        catch (ServerException ex) {
            System.out.println("Server exception - ErrorCode : " + ex.getErrorCode() + ", ErrorMessage : "  + ex.getErrorMessage());
        }
        catch (ParseException ex) {
            System.out.println("Parser exception - ErrorMessage : "  + ex.getResponseMessage());
        }
        catch (Exception ex) {
            System.out.println("Other exception - ");
            ex.printStackTrace();
        }
    }

    public void updateRows(AnalyticsClient ac) throws Exception {
        JSONObject columnValues = new JSONObject();
        columnValues.put("Region", "UpdatedValue");
        String criteria = "\"Region\"='East'";
        ViewAPI view = ac.getViewInstance(orgId, workspaceId, viewId);
        JSONObject result = view.updateRow(columnValues, criteria, null);
        System.out.println(result);
    }
}
Copied<?php

    require 'AnalyticsClient.php';

    class Test
    {
        public $ac = NULL;
        public $client_id = "1000.xxxxxxx";
        public $client_secret = "xxxxxxx";
        public $refresh_token = "1000.xxxxxxx.xxxxxxx";

        public $org_id = "55522777";
        public $workspace_id = "35130000001055707";
        public $view_id = "35730000007354002";

        function __construct() {
            $this->ac =  new AnalyticsClient($this->client_id, $this->client_secret, $this->refresh_token);
        }

        function updateRow() {
            $column_values = array();
            $column_values["name"] = "Vincent";
            $criteria = "\"age\"='30'";
            $view = $this->ac->getViewInstance($this->org_id, $this->workspace_id, $this->view_id);
            $response = $view->updateRow($column_values, $criteria);
            print_r($response);
        }
    }

    $test_obj = new Test();

    try {
        $test_obj->updateRow();
    }
    catch(ServerException $se) {
        echo "Server exception : " . $se->getErrorMessage() . "\n";
    }
    catch(IOException $ioe) {
        echo "IO exception : " . $ioe->getErrorMessage() . "\n";
    }
    catch(ParseException $pe) {
        echo "Parser exception : " . $pe->getErrorMessage() . "\n";
    }
    catch(Exception $e) {
        echo "Exception : " . $e->getErrorMessage() . "\n";
    }
?>
Copiedfrom __future__ import with_statement
from AnalyticsClient import AnalyticsClient
import sys
import json

class Config:

    CLIENTID = "1000.xxxxxxx";
    CLIENTSECRET = "xxxxxxx";
    REFRESHTOKEN = "1000.xxxxxxx.xxxxxxx";

    ORGID = "55522777";
    WORKSPACEID = "35130000001055707";
    VIEWID = "35730000007354002";

class sample:

    ac = AnalyticsClient(Config.CLIENTID, Config.CLIENTSECRET, Config.REFRESHTOKEN)

    def update_row(self, ac):
        column_values = {}
        column_values["Region"] = "Updated East"
        column_values["Product Category"] = "Updated Sample"
        column_values["Product"] = "Updated Test"
        criteria = "\"Region\"='East'"
        view = ac.get_view_instance(Config.ORGID, Config.WORKSPACEID, Config.VIEWID)
        result = view.update_row(column_values, criteria)
        print(result)

try:
    obj = sample()
    obj.update_row(obj.ac);

except Exception as e:
    print(str(e))
Copiedvar analyticsClient = require('./AnalyticsClient');

var clientId = '1000.xxxxxxx';
var clientSecret = 'xxxxxxx';
var refreshtoken = '1000.xxxxxxx.xxxxxxx';
var orgId = '55522777';
var workspaceId = '35130000001055707';
var viewId = '35730000007354002';

var ac = new analyticsClient(clientId, clientSecret, refreshtoken);

var columnValues = {};
columnValues['Date'] = '14/01/2021';
columnValues['Region'] = 'East';
columnValues["Product Category"] = 'Furniture';

var config = {};
var criteria = "\"Region\"='East'";
var view = ac.getViewInstance(orgId, workspaceId, viewId);
view.updateRow(columnValues, criteria, config).then((response) => {
    console.log(response);

}).catch((error) => {
    console.log('errorCode : '+error.errorCode);
    console.log('errorMessage : '+error.errorMessage);
});
CopiedorgId = "55522777";
workspaceId = "35130000001055707";
viewId = "35730000007354002";

headersMap = Map();
headersMap.put("ZANALYTICS-ORGID",orgId);

columnsMap = Map();
columnsMap.put("Region","West");
columnsMap.put("Product","Clock");
config = Map();
config.put("columns",columnsMap);
criteria = "\"Region\"='East'";
config.put("criteria",criteria);
parameters = "CONFIG=" + config.toString();

response = invokeurl
[
    url :"https://analyticsapi.zoho.com/restapi/v2/workspaces/" + workspaceId + "/views/" + viewId + "/rows" + "?" + parameters
    type :PUT
    headers:headersMap
    connection:"analytics_oauth_connection"
];
info response;

Sample value for CONFIG parameter:

Copied{
   "columns":{
        "<column-name1>":"<column-value1>",
        "<column-name2>":"<column-value2>"
    },
    "criteria":"\"<table-name>\".\"<column-name>\"='value'"
}

Download client libraries : C# | GO | JAVA | PHP | PYTHON | NodeJS

Sample Response

CopiedHTTP/1.1 200 OK
Content-Type:application/json;charset=UTF-8

{
    "status": "success",
    "summary": "Update row",
    "data": {
        "updatedColumns": {
            "region": "East",
            "Sales": "1000"
        },
        "updatedRows": 27,
        "invalidColumns": {}
    }
}