Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

221
Vistas
Google Scripts onEdit no funciona cuando se edita en AppSheet

Tengo un conjunto de datos de hojas de Google con una aplicación Appsheet para editar/actualizar fácilmente el conjunto de datos. Utilizando los scripts de Google, pude crear un registro de cambios para poder determinar con qué frecuencia se cambiaba información particular y de qué estaba cambiando. Funcionó perfectamente al realizar cambios en Google Sheets.

Sin embargo, cuando realizo cambios en la aplicación AppSheet, no realiza un seguimiento de esas ediciones. ¿Alguien tiene otras alternativas? según tengo entendido, onEdit no funciona para esta aplicación.

Gracias

 function onEdit(e) { var changelogSheetName = "Changelog"; var ss = SpreadsheetApp.getActiveSpreadsheet(); var cell = SpreadsheetApp.getActiveRange(); var timestamp = new Date(); var currentSheet = ss.getActiveSheet(); var currentSheetName = currentSheet.getName(); var previousValue = e.oldValue; var newValue = cell.getValue(); var typeChange = "Edit"; var field = currentSheet.getRange(1, cell.getColumn()).getValue(); var id = currentSheet.getRange(cell.getRow(), 1).getValue(); var id2 = currentSheet.getRange(cell.getRow(), 2).getValue(); // if it is the changelog sheet that is being edited, do not record the change to avoid recursion if (currentSheetName == changelogSheetName) return; var changelogSheet = ss.getSheetByName(changelogSheetName); if (changelogSheet == null) { // no changelog sheet found, create it as the last sheet in the spreadsheet changelogSheet = ss.insertSheet(changelogSheetName, ss.getNumSheets()); Utilities.sleep(2000); // give time for the new sheet to render before going back ss.setActiveSheet(currentSheet); changelogSheet.getRange('A1:I1').setBackground('#E0E0E0'); changelogSheet.appendRow(["Timestamp", "field", "id", "id2", "Sheet", "Cell", "Type", "Old Value", "New Value", "User"]); changelogSheet.deleteColumns(8,19); changelogSheet.setFrozenRows(1); changelogSheet.setColumnWidth(1, 170); changelogSheet.setColumnWidth(7, 170); changelogSheet.protect(); } var user = Session.getEffectiveUser().getEmail(); if (previousValue == null){ typeChange = "Add"; } else if (newValue == "") { typeChange = "Remove"; } changelogSheet.appendRow([timestamp, field, id, id2, currentSheetName, cell.getA1Notation(), typeChange, previousValue, newValue, user]); }

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda