2016-08-23 40 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

謝謝你的猜測。我會測試它,但不知道,它的工作原理。我需要一個簡單的觸發器+一個可安裝的觸發器並運行它們。 –