Update on zoho analytics base table via deluge
Fri Jun 27 2025 11:21:24 GMT+0000 (Coordinated Universal Time)
Saved by @usman13
////////////////////////////////// orgId = "667823888"; workspaceId = "1724734000003983010"; viewId = "1724734000019844002"; headersMap = Map(); headersMap.put("ZANALYTICS-ORGID",orgId); config = Map(); config.put("responseFormat","json"); paramsMap = Map(); paramsMap.put("CONFIG",config.toString()); email = "zoho@rebiz.com"; WS_name = "Zoho One Analytics"; ///////////////////Get Analytics table data////////v2 api///////// Get_Analytics_Data = invokeurl [ url :"https://analyticsapi.zoho.com/restapi/v2/bulk/workspaces/" + workspaceId + "/views/" + viewId + "/data" type :GET parameters:paramsMap headers:headersMap connection:"zoho_analytics" ]; //info Get_Analytics_Data; if(Get_Analytics_Data != "" && Get_Analytics_Data.get("status") == "success") { jobId = Get_Analytics_Data.get("data").get("jobId"); } getUrl("https://httpstat.us/200?sleep=10000"); download_Data = invokeurl [ url :"https://analyticsapi.zoho.com/restapi/v2/bulk/workspaces/" + workspaceId + "/exportjobs/" + jobId + "/data" type :GET headers:headersMap connection:"zoho_analytics" ]; //info download_Data; get_download_Data = download_Data.get("data"); //info get_download_Data; Expense_Data_Analytics_List = List(); Expense_id_list = List(); All_Expense_Data = List(); counter = 0; for each expense in get_download_Data { Expense_ID = expense.get("Expense ID"); Date = expense.get("Date"); Expense_Date = expense.get("Expense Date"); Vendor = expense.get("Vendor"); customer = expense.get("Customer"); Expense_Category_Account_ID = expense.get("Expense Category Account ID"); Paid_through_Account_ID = expense.get("Account ID"); Paid_through_Account_Name = expense.get("Account"); Expense_No = expense.get("Expense #"); Expense_Description = expense.get("Expense Description"); Product_Category = expense.get("Product Category"); Department = expense.get("Department"); Amount = expense.get("Amount"); New_Amount = toDecimal(expense.get("New Amount")).round(2); info New_Amount; Employee_Paid_Through = expense.get("Employee Paid Through"); Department_Tag_Option_ID = expense.get("Department Tag Option ID"); Product_Category_Tag_Option_ID = expense.get("Product Category Tag Option ID"); ////////////////// Tags List /////////////////////////// Tags_list = list(); dep_tags_map = Map(); dep_tags_map.put("tag_id",1398255000000000333); dep_tags_map.put("tag_option_id",Department_Tag_Option_ID); Tags_list.add(dep_tags_map); //////////////////////////////////////////// Prod_tags_map = Map(); Prod_tags_map.put("tag_id",1398255000000000339); Prod_tags_map.put("tag_option_id",Product_Category_Tag_Option_ID); Tags_list.add(Prod_tags_map); ///////////////////////////////////////// if(!Expense_id_list.contains(Expense_ID)) { Expense_id_list.add(Expense_ID); expenseMap = Map(); expenseMap.put("expense_id",Expense_ID); line_item = list(); line_item_map = Map(); line_item_map.put("account_id",Expense_Category_Account_ID); line_item_map.put("amount",New_Amount); line_item_map.put("tags",Tags_list); //add new amount variable expenseMap.put("account_id",Expense_Category_Account_ID); expenseMap.put("date",Expense_Date); expenseMap.put("amount",toDecimal(New_Amount)); expenseMap.put("Employee Paid Through",Employee_Paid_Through); expenseMap.put("Line_Items",line_item); All_Expense_Data.add(expenseMap); if(toDecimal(New_Amount) > 0) { line_item.add(line_item_map); } //////////// } else { line_item_map = Map(); line_item_map.put("account_id",Expense_Category_Account_ID); line_item_map.put("amount",toDecimal(New_Amount)); line_item_map.put("tags",Tags_list); // add new amount column indexFound = Expense_id_list.indexOf(Expense_ID); Line_item_list = All_Expense_Data.get(indexFound).get("Line_Items"); if(toDecimal(New_Amount) > 0.0) { Line_item_list.add(line_item_map); } } } //info "Size of expense" + All_Expense_Data.size(); for each expense in All_Expense_Data { update_Map = Map(); update_Map.put("line_items",expense.get("Line_Items")); update_Map.put("account_id",expense.get("account_id")); new_exp_date = expense.get("date").toDate().toString("yyyy-MM-dd"); update_Map.put("date",new_exp_date); total_amount = 0.0; for each line_item in expense.get("Line_Items") { total_amount = total_amount + toDecimal(line_item.get("amount")); } info "Total Amount" + total_amount.round(1); update_Map.put("amount",total_amount.round(1)); update_Map.put("paid_through_account_id",expense.get("paid_through_account_id")); ////////////////////////////////// Update_Expense = invokeurl [ url :"https://www.zohoapis.com/books/v3/expenses/" + Expense_ID + "?organization_id=669825616" type :PUT parameters:update_Map.toString() connection:"zoho_books" ]; info "Update_Expense Response:" + Update_Expense; checkCode = Update_Expense.get("code"); if(checkCode == 0) { /////////////////////Update the data on zoho analytics/////////// columnsMap = Map(); columnsMap.put("Expense ID",Expense_ID); columnsMap.put("Is Updated","Yes"); columnsMap.put("Expense Details",Line_item_list.toString()); columns = Map(); columns.put("columns",columnsMap); paramsMap = Map(); paramsMap.put("CONFIG",columns.toString()); headersMap = Map(); headersMap.put("ZANALYTICS-ORGID",orgId); response = invokeurl [ url :"https://analyticsapi.zoho.com/restapi/v2/workspaces/" + workspaceId + "/views/1724734000020312044/rows" type :POST parameters:paramsMap headers:headersMap connection:"zoho_analytics" ]; //info response; } }
Comments