Deluge Script In CRM To Deal With More Than 200 Records

Deluge Script In CRM To Deal With More Than 200 Records

Hi,

I have a Deluge script, which works perfectly. We have a custom field in the Campaigns module called Total_Raised which looks at the Donation_Amount field in the custom module, Donations. The idea is to sum up the total of all donation amounts.

However, it stops at 200 records, the Zoho default cut-off, as I understand it. Is there any way of being able to search through more than 200 records, possibly up to 2000? My existing working code is:

  1. void automation.UpdateDonationTotal(Int campaignId)
  2. {
  3.     if(campaignId != null)
  4.     {
  5.         // Fetch related donations for the given Campaign ID
  6.         donations = zoho.crm.getRelatedRecords("Donations", "Campaigns", campaignId, 1, 200);

  7.         // Initialize the total amount
  8.         totalRaised = 0.0;

  9.         // Iterate over each donation and sum the Donation Amount
  10.         for each donation in donations
  11.         {
  12.             if(donation.get("Donation_Amount") != null)
  13.             {
  14.                 totalRaised = totalRaised + donation.get("Donation_Amount");
  15.             }
  16.         }

  17.         // Fetch the current Campaign record to compare Total_Raised
  18.         campaignRecord = zoho.crm.getRecordById("Campaigns", campaignId);
  19.         existingTotal = campaignRecord.get("Total_Raised");

  20.         // Debugging log
  21.         info "Campaign ID: " + campaignId;
  22.         info "Total Raised (calculated): " + totalRaised;
  23.         info "Existing Total Raised: " + existingTotal;

  24.         // Update only if the calculated value differs from the existing value
  25.         if(existingTotal != totalRaised)
  26.         {
  27.             // Prepare data for updating the Campaign's Total Raised field
  28.             updateMap = Map();
  29.             updateMap.put("Total_Raised", totalRaised);

  30.             // Update the Campaign record
  31.             response = zoho.crm.updateRecord("Campaigns", campaignId, updateMap);

  32.             if(response.get("code") == "SUCCESS")
  33.             {
  34.                 info "Successfully updated Total Raised for Campaign ID: " + campaignId;
  35.             }
  36.             else
  37.             {
  38.                 info "Failed to update Total Raised for Campaign ID: " + campaignId + ". Response: " + response;
  39.             }
  40.         }
  41.         else
  42.         {
  43.             info "No update needed. Total Raised is already correct.";
  44.         }
  45.     }
  46.     else
  47.     {
  48.         info "Invalid Campaign ID: " + campaignId;
  49.     }
  50. }
Is there any way we can search more than 200 records and make the calculation?