Google Data Studio no obtiene datos nuevos de Google Sheet porque Google Sheet no está abierto y las fórmulas no se ejecutarán para actualizar los datos.
Normalmente, al abrir la Hoja de cálculo de Google, se tarda alrededor de 5 minutos en terminar de ejecutar todas las fórmulas. (es un archivo muy grande, con muchas fórmulas)
Disparador configurado para funcionar cada 10 minutos.
function wakupSheet(){ var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); Utilities.sleep(100000); }Según la respuesta de Rubén "El script no hará que se vuelvan a calcular las fórmulas ya que no está haciendo ningún cambio en la hoja de cálculo".
¿Qué pasaría si tuviera que crear un bucle que cambie la fecha en una celda 10 veces con un minuto de suspensión (totalizando 10 minutos de la hoja activa actualizando la fecha y dando a la hoja 10 minutos para ejecutar todas las fórmulas necesarias)?
function wakeupSheet() { for (i=0; i<10; r++) { changeDate(); Utilities.sleep(60000); } } function changeDate() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); var date = Utilities.formatDate(new Date(), "GMT-7", "MMMM dd, yyyy' @ 'HH:mm:ss"); var endDate = date sheet.getRange(4, 1).setValue("The data was last refreshed on: " + endDate); }La secuencia de comandos no hará que se vuelvan a calcular las fórmulas, ya que no está haciendo ningún cambio en la hoja de cálculo, por otro lado, y lo que es más importante, es que se utilizan los resultados de las fórmulas de una hoja de cálculo que tarda más de unos segundos en volver a calcularse como fuente de datos para Google Data. Studio o cualquier otra herramienta similar generalmente es una muy mala idea porque no ofrecen una forma de controlar cuánto tiempo se espera para que finalice el recálculo y Google Sheets no incluye una forma de asegurarse de que no haya un recálculo en progreso o si el último recálculo ha terminado, aparte de sondear un "testigo" (una celda que sabe que cambiará al final de cada recálculo).
Teniendo en cuenta lo anterior, es muy probable que su "mejor" opción sea transferir el trabajo realizado por las fórmulas al script en lugar de usar algo como Utilities.sleep(100000)