La misma función funciona bien, si el código no se importa y solo en la hoja.

El .withsuccesshandler () no transmite el valor de retorno a la función llamada.

El código en Code.gs devuelve un booleano (el registro lo obtiene), la función llamada con .withsuccesshandler () no lo consigue y la variable es indefinida .

html

<html>
  <form id="myForm">
  [...]
  <input type="button" value="Submit" 
 onClick="google.script.run.withSuccessHandler(DataSaved).withFailureHandler(Error).processForm(this.form)"
        />
</form>
<div id="Message"></div>
 <script>
    function DataSaved(ret){
    if(ret==true){
    document.getElementById('Message').innerHTML = "Finished!";
    }else{
    document.getElementById('Message').innerHTML = ret+"Wrong Sheet!";
    }
};
    function Error(err){
    document.getElementById('Message').innerHTML = "An error occurred: "+err;
};
 </script>

code.gs

function processForm(myForm) {
  var data = myForm.data
  var fu = ParseExport(data)
  console.log(typeof fu);console.log(JSON.stringify(fu))
  return fu
}

La línea resultante es: undefinedWrong Sheet!

stackdriver

Stackdriver-Protokolle
29.06.2019, 19:39:11
FEHLERBEHEBUNG
boolean
29.06.2019, 19:39:11
FEHLERBEHEBUNG
true

Ya no sé dónde buscar el error. Incluso movió la función de Google.Script.run en el bloque de script para probar si cambia algo (no). El manejador de errores funciona bien ...

0
Tezexlo 29 jun. 2019 a las 20:28

1 respuesta

La mejor respuesta

Fue mi error, ya que la hoja importadora tiene una clase de envoltura para manejar la llamada a las funciones importadas de script, que también debe pasar la devolución.

0
Tezexlo 4 jul. 2019 a las 21:00