2016-08-23 38 views
0

我知道可安装触发器是作为脚本的作者运行的。但是一些服务,如email service只能使用可安装的触发器。将简单触发器变量传递到可安装触发器

我需要使用简单的触发器来检查当前用户是否有权编辑特定范围和可安装触发器来发送电子邮件。

我有这样的代码:

var MY_VARIABLE; 

function onEdit() {  
    MY_VARIABLE = 'onEdit was here!'  
} 

function myOnEdit() { 
// installable trigger 
    Browser.msgBox(MY_VARIABLE); 

    // send email, use email service 
} 

结果是undefined

,我愿意有'onEdit was here!'

+4

您可以让onEdit更新脚本属性,让其他触发器检查每分钟是否有更新,然后发送电子邮件。 (脚本属性:https://developers.google.com/apps-script/reference/properties/properties-service) –

回答

2

,如果你写的东西,如:

function onEdit() {  
    MY_VARIABLE = 'onEdit was here!'; 
    myOnEdit(); 
} 

function myOnEdit() { 
    Browser.msgBox(MY_VARIABLE); 
} 

它会奏效。但是,如果“myOnEdit”不是与“onEdit”同时调用,脚本将会忘记一切。每次触发条(onEdit或当您手动启动功能时),环境都将被重置,并且“MY_VARIABLE”的内容将被遗忘。
他的评论是什么Wim den Herder proposed是很好的解决方案,您需要通过脚本的差异实例在Google Apps脚本可以记住的某处存储“MY_VARIABLE”值。这就是propertyService允许的。最后一件事,propertyService需要授权才能运行。所以你不能真正使用一个称为“onEdit”的函数来在每次单元修改时运行它,你需要重命名该函数(无论你想要什么)并在其上设置一个onEdit触发器。

+0

谢谢你的猜测。我会测试它,但不知道,它的工作原理。我需要一个简单的触发器+一个可安装的触发器并运行它们。 –