Sort Data by Columns

Sorts the data table based on the selected column.

REQUEST URI

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

Put

oauthscopeZohoAnalytics.modeling.update

QUERY PARAMETERS

 

Parameter Name
Description
CONFIGJSONObject

Config parameter specifications are available in the below section.

FIELDS FOR CONFIG JSON

KeyDescription
columns

JSONArray

List of column IDs to sort by.

Sample: ["column-id-1","column-id-2","column-id-3"]

sortOrderInteger

Sorting order (1 → Ascending, 2 → Descending).
resetSortBoolean

If true, resets existing sort configuration. Default - false.

Sample Request:

Copiedcurl https://analyticsapi.zoho.com/restapi/v2/workspaces/<workspace-id>/views/<view-id>/data/sort --data-urlencode 'CONFIG={"columns":[466206000000073014, 466206000000073013],sortOrder":1}'
-X 'PUT'
-H 'ZANALYTICS-ORGID: <org-id>'
-H 'Authorization: Zoho-oauthtoken <access_token>'
CopiedorgId = "55522777";
workspaceId = "<workspace-id>";
viewId = "<view-id>";

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

config = Map();

columnsList = {};
columnsList.add(466206000000073014);
columnsList.add(466206000000073013);
config.put("columns", columnsList);

config.put("sortOrder", 1);

paramsMap = Map();
paramsMap.put("CONFIG", config.toString());

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

info response;
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 SortDataByColumns(IAnalyticsClient ac)
        {
            List<long> columnIds = new()
            {
                466206000000069003,
                466206000000073013
            };

            int sortOrder = 2;   // 1 -> ascending, 2 -> descending

            IViewAPI view = ac.GetViewInstance(orgId, workspaceId, viewId);
            view.SortDataByColumns(columnIds, sortOrder, false, null);

            Console.WriteLine("success");
        }

        public void SortDataByColumnsReset(IAnalyticsClient ac)
        {
            IViewAPI view = ac.GetViewInstance(orgId, workspaceId, viewId);

            view.SortDataByColumns(null, null, true, null);

            Console.WriteLine("success");
        }
        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.SortDataByColumns(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      = "35130000006299001"
)

func SortDataByColumns(ac ZAnalytics.Client) {
    columnIDs := []interface{}{
        "466206000000073013",
        "466206000000073014",
    }

    sortOrder := 2 // 1 for ascending, 2 for descending

    view := ZAnalytics.GetViewInstance(&ac, orgId, workspaceId, viewId)

    exception := view.SortDataByColumns(columnIDs, sortOrder, false, nil)
    if exception != nil {
        fmt.Println("Error:", exception)
        return
    }

    fmt.Println("success")
}

func SortDataByColumnsReset(ac ZAnalytics.Client) {
    view := ZAnalytics.GetViewInstance(&ac, orgId, workspaceId, viewId)

    exception := view.SortDataByColumns(nil, 0, true, nil)
    if exception != nil {
        fmt.Println("Error:", exception)
        return
    }

    fmt.Println("success")
}

func main() {
    ac := ZAnalytics.GetAnalyticsClient(clientId, clientSecret, refreshToken)
    SortDataByColumns(ac)
}
Copiedimport com.zoho.analytics.client.*;
import org.json.*;

public class Test {

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

    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.sortDataByColumns(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 sortDataByColumns(AnalyticsClient ac) throws Exception {

        JSONArray columnIds = new JSONArray();
        columnIds.put("466206000000073014");
        columnIds.put("466206000000073013");

        int sortOrder = 2; // 1 = ASC, 2 = DESC

        ViewAPI view = ac.getViewInstance(orgId, workspaceId, viewId);

        view.sortDataByColumns(columnIds, sortOrder, false, null);
        System.out.println("success");
    }

    public void resetSort(AnalyticsClient ac) throws Exception {
        ViewAPI view = ac.getViewInstance(orgId, workspaceId, viewId);
        view.sortDataByColumns(null, null, true, null);
        System.out.println("success");
    }
}
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 = "35130000006310013";

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

    function sortDataByColumns() {
        $column_ids = array(
            "466206000000073014",
            "466206000000073013"
        );

        $sort_order = 2;

        $view = $this->ac->getViewInstance($this->org_id, $this->workspace_id, $this->view_id);
        $view->sortDataByColumns($column_ids, $sort_order, false);
        echo "success\n";
    }

    function resetSort() {
            $view = $this->ac->getViewInstance($this->org_id, $this->workspace_id, $this->view_id);
            $view->sortDataByColumns(NULL, NULL, true);
            echo "success\n";
        }
}

$test_obj = new Test();

try {
    $test_obj->sortDataByColumns();
}
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->getMessage() . "\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 = "35130000006310013"

class Sample:

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

    def sort_data_by_columns(self, ac):
        column_ids = ["100003000000002010", "100003000000002006"]
        sort_order = 2
        view = ac.get_view_instance(Config.ORGID, Config.WORKSPACEID, Config.VIEWID)
        view.sort_data_by_columns(column_ids, sort_order, False)
        print("success")
        
    def sort_data_by_columns_reset(self, ac):
        view = ac.get_view_instance(Config.ORGID, Config.WORKSPACEID, Config.VIEWID)
        view.sort_data_by_columns(None, None, True)
        print("success")

try:
    obj = Sample()
    obj.sort_data_by_columns(obj.ac)

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

var clientId = '';
var clientSecret = '';
var refreshToken = '';
var orgId = '';
var workspaceId = '';
var viewId = '';

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

var columnIds = ["100003000000002010", "100003000000002006"];
var sortOrder = 2;

var view = ac.getViewInstance(orgId, workspaceId, viewId);

view.sortDataByColumns(columnIds, sortOrder, false)
.then(() => {
    console.log("success");
})
.catch((error) => {
    console.log('errorCode : ' + error.errorCode);
    console.log('errorMessage : ' + error.errorMessage);
});
Copiedrequire 'zoho_analytics_client'

class Config
  CLIENT_ID     = "1000.xxxxxxx"
  CLIENT_SECRET = "xxxxxxx"
  REFRESH_TOKEN = "1000.xxxxxxx.xxxxxxx"

  ORG_ID        = "55522777"
  WORKSPACE_ID  = "35130000001055707"
  VIEW_ID       = "35130000006310013"
end

class Sample
  def initialize
    @ac = AnalyticsClient.new
           .with_data_center("US")
           .with_oauth({
             "clientId"     => Config::CLIENT_ID,
             "clientSecret" => Config::CLIENT_SECRET,
             "refreshToken" => Config::REFRESH_TOKEN
           })
           #.with_token_store_path("/home/admin/analytics_ruby_sdk/tokens") # Optional – specify a directory path to securely store the encrypted access token
           .build
  end

  def sort_data_by_columns
    column_ids = ["466206000000073013", "466206000000073014"]
    sort_order = 1 # 1 = Ascending, 2 = Descending

    view = @ac.get_view_instance(Config::ORG_ID, Config::WORKSPACE_ID, Config::VIEW_ID)
    view.sort_data_by_columns(column_ids, sort_order, false)
    puts "success"
  end
  
  def sort_data_by_columns_reset
    view = @ac.get_view_instance(Config::ORGID, Config::WORKSPACEID, Config::VIEWID)
    view.sort_data_by_columns(nil, nil, true)
    puts "success"
  end
end

begin
  obj = Sample.new
  obj.sort_data_by_columns
rescue ServerError => e
  puts "Server Error: #{e.response_content}"
rescue StandardError => e
  puts e.message
  puts e.backtrace.join("\n")
end

Download SDKs:  C# | GO | JAVA | PHP | PYTHON | NodeJS | Ruby

Sample value for CONFIG parameter:

Copied{
  "columns": [
    35130000003942068,
    35130000003942070
  ],
  "sortOrder": 2
}

Sample Response:

CopiedHTTP/1.1 204 No Content