2017-10-03 5 views
1

ce script s'arrête juste à l'entrée de la dernière fonction: addToDocument().L'arrêt du script peut être dû à l'appel SpreadsheetApp onEdit(), puis à l'appel DocumentApp

Jusqu'à ce point tout fonctionne. Je présume un problème dû à onEdit() et DocumentApp appel?

Notez que séparément, mon addToDocument() fonctionne parfaitement.

function onEdit() { 
// simple timestamp -- when a single "t" is entered in a cell, replace it with a timestamp 
// see https://productforums.google.com/d/topic/docs/rC6MpQDC7n4/discussion 
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
var cell = SpreadsheetApp.getActiveRange(); 
if (cell.getValue() == "t") { 
cell.setValue(new Date()); 
} 

formatDate() // Some Date formatting using  : 'SpreadsheetApp' call 
mefCond() // Some conditonnal formatting using : 'SpreadsheetApp' call 
doCounts() // Some numéricals opérations, using : 'SpreadsheetApp' call 

//At this point the scripts enter in the following function, 
//and stops on the first line. Nothing being executed. 

addToDocument() // Time stamp on a document using : 'DocumentApp' call 
} 

Des idées?

Merci pour la lecture, Eric :-)

Répondre

0

Lorsque OnEdit est exécuté manuellement fonctionne avec un autre ensemble d'autorisations, mais tout en se Déclenche des restrictions particulières comme mentionné here. À partir de cette page, voir

Ils peuvent modifier le fichier auquel ils sont liés, mais ne peuvent pas accéder aux autres fichiers car cela nécessiterait une autorisation.

Veuillez vous référer au this pour les modes d'autorisation et ce que vous pouvez faire sous chacun d'entre eux. Peut-être la ligne 2 ci-dessous vous affecte ...

enter image description here

La solution pour vous, je crois est de convertir votre déclencheur simple dans un déclencheur installable. Here sont des détails sur la façon d'installer un déclencheur pour votre feuille de calcul. Rien ne changera en ce qui concerne votre fonction onEdit(), il vous suffit d'exécuter une fois l'extrait de code d'installation pour créer un déclencheur installable.

function createSpreadsheetEditTrigger() { 
    var ss = SpreadsheetApp.getActive(); 
    ScriptApp.newTrigger('onEdit') 
     .forSpreadsheet(ss) 
     .onEdit() 
     .create(); 
} 

Et here sont les détails sur les autorisations et d'autres détails. Ici, il mentionne clairement que vous pouvez accéder à d'autres services ..

Par exemple, le déclencheur ouvert installable Google Sheets active chaque fois que la feuille de calcul est ouverte par un utilisateur qui a un accès d'édition, comme simple onOpen() déclencheur. Toutefois, la version installable peut appeler les services nécessitant une autorisation. La version installable fonctionne avec l'autorisation de l'utilisateur qui a créé le déclencheur , même si un autre utilisateur avec un accès d'édition ouvre la feuille de calcul

+0

Merci beaucoup pour votre explication :-) Voyez-vous une solution pour exécuter des fonctions « SpreadsheetsApps appelle ", puis un" appel DocumentApp ", ce dernier déclenché par le déclencheur? Mon but est de sélectionner des valeurs dans une feuille de calcul, comme des chaînes de texte et la valeur "DateStamping", et de les copier dans un document. Si onEdit() ne porte pas DocumentApp, que puis-je faire? Merci de votre aide. Bonne journée. Eric :-) – Eric

+0

@Eric J'ai mis à jour ma réponse pour résoudre votre problème! – kaza