After some time of trying to see what is wrong with my copy of the Database, I finally managed to make it work (sort of).
I had two problems.
a) the dSupportSuite menu was not showing up. Solved this by creating a new trigger that would call the onOpen function that would run every time the spreadsheet would open (someone else on this thread did the same).
b) the spreadsheet was not updating itself. By studying the triggers I found out that the update function was not working properly. The problem was that, for some reason, the update function that is triggered every 5 minutes, was only working for the first client on my spreadsheet which was is row 4. What this function does is the following
-a check if the number (variable count) is higher than the total number of entries (rows) --- > If it is then "reset" the variable count to 4
-a check if there is no data on the selected cell (the one on the row that has the same number as the variable - basically the clientID) ---> if that is the case "exit" assigning the count variable the value 4.
-if the above statement is false (i.e. the cell in the first column and the column that has the number which is equal to the count variable has data, meaning a clientID) then three functions are called
-updateCustInfo , that updates the customer info from the most recent heartbeat email
-updateServices , that updates the services that have run (heartbead, maintenance, Windows Backup, Ninite etc.)
-alertMaintenance , that sends an email to the clientID found to have a maintenance executed 8 days before the alert date.
After that the function would exit.
So, as I said before, my problem was that the count variable was not increasing its value in order to continue to the next clientID (row) other than the row number 4. So I added a line after the alertMaintenance call which would increase the value of the variable count by 1.
This was the code I used to do this. I noticed that the if controlling all that ( if (count < totalCount) ) would not run for the last row so I changed this if to ---> if (count <= totalCount) , adding the = sign to the comparison of the variables.
So this way, the update function is running every 5 minutes updating one customer at each run. The only problem that I have is that even though I have heartbeats with today's date coming in the spreadsheet will only say that the most recent one is two days ago. I also tried updating manually clientIDs via the dSupportSuite menu the result is the same. I believe this has to do with a function called dSS.mostRecent that is being called in updateServices function. This only happened yesterday so I wonder if it is my changes on the code or something Ray is trying with this dSS.mostRecent function. I also cancelled (commented out) the alertMaintenance function because I have to find a way to translate the emails first...
So Ray, is there any chance to have access to the dSS.sendEmail function in order to translate the email that it outputs? I can only translate the bold pieces of the email by changing them in the code below
var missingFix = 'open ' + app_name + ' and select "' + maintenance_button_verbage + '" from the left hand menu';
but I can't change the ones in italics.
Dear George Acer Laptop,
Our records indicate that a Maintenance Routine has not been run on your computer in the last 12 days.
To correct this, open XXXXXXXXXXX and select "XXXXXXXXXXXXXXX" from the left hand menu.
If this notification has been sent in error, please contact your technician or reply to this email.
Sorry for the long post but I was just hoping to help anyone who would have a similar problem.
Thanks in advance,