Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google Apps Script - Error: "DocsList" not Defined - Code Suddenly Stopped Working

This is my code:

//Creo degli oggetti contenenti i fogli
//var ss = SpreadsheetApp.getActiveSpreadsheet();
//var eu = ss.getSheetByName("EntrateUscite");

var files = DocsList.find("Cartellino");
for (var i in files){
        var fileId = files[i].getId();
     }
      var ss = SpreadsheetApp.openById(fileId);
      var eu = ss.getSheetByName("EntrateUscite");



var ultimaRigaPiena = eu.getLastRow();
var primaRigaVuota = eu.getLastRow()+1;




var colTimeS =1;
var colTipo =2;
var colLav =3;
var colLavD =4;
var colInc =5;
var colIncD=6;
var colMese =7;
var colTargetMese =8;
var colGiorno=9;
var colTargetGiorno=10;




function doGet(e) {
  var app = UiApp.createApplication();

  //////////////////////////////////////////////////////////
  var buttonEntrata = app.createButton('Entrata');
  app.add(buttonEntrata);

  var labelEntrata = app.createLabel('Entrata!')
                 .setId('statusLabelEntrata')
                 .setVisible(false);
  app.add(labelEntrata);
   
  var handlerEntrata = app.createServerHandler('myClickHandlerEntrata');
  buttonEntrata.addClickHandler(handlerEntrata);
  
  /////////////////////////////////////////////////////////////
  var buttonUscita = app.createButton('Uscita');
  app.add(buttonUscita);

  var labelUscita = app.createLabel('Uscita!')
                 .setId('statusLabelUscita')
                 .setVisible(false);
  app.add(labelUscita);
   
  var handlerUscita = app.createServerHandler('myClickHandlerUscita');
  buttonUscita.addClickHandler(handlerUscita);
  
  return app;
}

function myClickHandlerEntrata(e) {
  var app = UiApp.getActiveApplication();

  var labelEntrata = app.getElementById('statusLabelEntrata');
  labelEntrata.setVisible(true);
  
  entrata()

  app.close();
  return app;
}

function myClickHandlerUscita(e) {
  var app = UiApp.getActiveApplication();

  var labelUscita = app.getElementById('statusLabelUscita');
  labelUscita.setVisible(true);
  
  uscita()

  app.close();
  return app;
}




function entrata(){
  entrataUscita("1");
}
function uscita(){
  entrataUscita("0");
}



function entrataUscita(tipo) {
  //Controllo se l'ultimo record è di tipo (un'entrata o un'uscita) diverso da quello corrente
  if(eu.getRange(ultimaRigaPiena,colTipo).getValue()!=tipo){
    
    //in se non lo è procedo
    
    writeOnLastEmptyRow(colTimeS,getCurrTimeStamp());
    writeOnLastRow(colTipo,tipo);
    
    
    //Se il tipo è uscita allora calcolo quanto tempo è passato tra l'entrata e l'uscita con l'incrementale
    if(tipo==0){
      //Inserisco le ore lavorative come durata
      eu.getRange(primaRigaVuota,colLav).setFormula("="+int2Let(colTimeS)+primaRigaVuota+"-"+int2Let(colTimeS)+(primaRigaVuota-1));
      
      //Inserisco le ore lavorative come decimale
      eu.getRange(primaRigaVuota,colLavD).setFormula("=TO_TEXT("+int2Let(colLav)+primaRigaVuota+")*24");
      
      //Scrivo il mese
      eu.getRange(primaRigaVuota,colMese).setFormula("=CONCATENATE(LOOKUP(MONTH("+int2Let(colTimeS)+primaRigaVuota+
        ");'Nomi mesi'!A1:B12);\" \";YEAR("+int2Let(colTimeS)+primaRigaVuota+"))");
      
      //Scrivo il target mensile
      eu.getRange(primaRigaVuota,colTargetMese).setFormula("=Target!E2")
    
      //Scrivo il giorno  
      eu.getRange(primaRigaVuota,colGiorno).setFormula("=CONCATENATE(YEAR("+
                                                       int2Let(colTimeS)+primaRigaVuota+");\"/\";TEXT(MONTH("
      +int2Let(colTimeS)+primaRigaVuota+");\"00\");\"/\";TEXT(DAY("+
        int2Let(colTimeS)+primaRigaVuota+");\"00\"))")
        
      
      
      //Scrivo il terget giornaliero
      eu.getRange(primaRigaVuota,colTargetGiorno).setFormula("=Target!C2")
        
      
      //Se la cella con la quale devo fare l'addizione non è una durata
      if(isValidDate(eu.getRange(primaRigaVuota-2,colInc).getValue())){
        //la uso
        eu.getRange(primaRigaVuota,colInc).setFormula("="+int2Let(colLav)+primaRigaVuota+"+"+int2Let(colInc)+(primaRigaVuota-2));
      }else{
        //altrimenti no
         eu.getRange(primaRigaVuota,colInc).setFormula("="+int2Let(colLav)+primaRigaVuota);
      }
      
      //inserisco formula ore incrementeli in decimale
      eu.getRange(primaRigaVuota,colIncD).setFormula("=TO_TEXT(" + int2Let(colInc)+primaRigaVuota +")*24");
    } 
    
    
    
  }else{
    if(tipo==1){
      Browser.msgBox("Sei già dentro!");
    }else{
      Browser.msgBox("Sei già uscito!");
    }
  }
    
  
  
}






//Scrivo sul'ultima riga specificando la colonna ed il testo
function writeOnLastEmptyRow(column, text) {
  eu.getRange(eu.getLastRow()+1,column).setValue(text);
}

//Scrivo sul'ultima riga specificando la colonna ed il testo
function writeOnLastRow(column, text) {
  eu.getRange(eu.getLastRow(),column).setValue(text);
}



function getCurrTimeStamp(){
                                                  ///si aggiunge un'ora per l'ora legale 
  var oraCorrente = Utilities.formatDate(new Date().addHours(1), "GMT+1", "dd-MM-yyyy HH.mm.ss");
  return oraCorrente;
}



Date.prototype.addHours= function(h){
    this.setHours(this.getHours()+h);
    return this;
}



function isValidDate(value) {
    var dateWrapper = new Date(value);
    return !isNaN(dateWrapper.getDate());
}


function int2Let(n){
   return String.fromCharCode(65 + n-1); // where n is 0, 1, 2 ... IL -1 SERVE PERCHE L'INDICIZZAZIONE PARTIREBBE DA 0
}

function prova(){
   var prova = "sgh"
  
   Browser.msgBox(int2Let(1))
}

Today it stopped working without an apparent reason. It gives me this error:

ReferenceError: "DocsList" not Defined.

I worked perfectly for more than a year and this morning just stopped to give that error.

Sorry for the comments in italian :P

like image 644
AndreA Avatar asked Apr 21 '15 13:04

AndreA


People also ask

Why is my Google script not working?

There are a few possible causes for these errors: A Google server or system is temporarily unavailable. Wait for a few moments and try running the script again. There is an error in your script that doesn't have a corresponding error message.

What is === in Google script?

Equality (==): a == b results in true if the value a is equal to value b. Strict equality (===): a === b results in true if the value a is equal to value b and their types are also the same. Inequality (! =): a !=


1 Answers

According to Google developers page

enter image description here

try to use DriveApp instead of DocList. more info

like image 177
Sachin K Avatar answered Sep 22 '22 14:09

Sachin K