2015-10-26 27 views
0

運行腳本我有以下問題:谷歌表腳本:這取決於最後編輯

「我有一個包含複製是在應用程序使用的信息,當應用程序被複制人修改了谷歌表,我想收到一封電子郵件,以便我知道更新應用程序內部使用的字符串。'還有其他非自動方式可以實現這一點,但複製人員非常瞭解Google文檔,有時不記得通知我有關更改,或者「在此插入其他原因」。

無論如何,我創建了一個函數來生成一組字符串,我可以將它粘貼到Xcode中並運行應用程序。唯一的手動部分現在正在運行該功能並將輸出傳送到Xcode中。輸出存儲在同一文檔的單獨表單中。 (最新的副本在頂部)。

這篇文章的技術問題/要點,我如何將這個過程發送給發送給我的下一步,以便我可以對Xcode字符串文件進行更改?

我很樂於接受建議/其他想法,因爲我試圖對此進行迭代,而且我覺得只要複製人員更新工作表時我就會運行該腳本,我會很長一段時間。

下面是我在哪裏:

我試圖通過谷歌的文檔搜索,SO,和其他網站,發現以下幾點:

How to access revision history of a spreadsheet using GAS?

https://code.google.com/p/google-apps-script-issues/issues/detail?id=394

stackoverflow_com /問題/ 10584528/documentlist-api-and-gas-how-to-marry-them

sites_google_c OM /網站/ scriptsexamples /新連接到谷歌服務/ driveservice

productforums_google_com /論壇/#!話題/文檔/ zty8X8Pkwbs

(以上均爲不鏈接作爲我的名聲是不夠的發佈更多目前比2個鏈接)。

所有這些來源都表明有一種方法可能可以解決這個問題,但是對於像'最後一個編輯者'這樣的更改應該導致腳本函數運行'這樣簡單的任務來說,這是一項非常艱鉅的任務。

我的想法是讓我的功能在表格編輯時運行,只要最後一個修飾符是複製人員,然後運行,否則什麼都不做。

我也可能會遺漏一個小細節/怪癖,可能會阻止我想要從甚至可能實現的目標。希望通過這篇文章找到一些見解/答案。

在此先感謝!

回答

0

一個快速的解決辦法是讓你的「複製人」中創建電子表格中的約束腳本的東西,如:

function myFunction() { 
    var user = Session.getActiveUser().getEmail(); 
    if(user =='user-email'){ 
    MailApp.sendEmail('destination-email', 'subject', 'test trigger: ' + user); 
    } 
} 

運行功能只是用於測試和授予權限。

然後,他將不得不通過轉到菜單「資源 - >所有觸發器」來創建一個觸發器。 然後點擊「沒有觸發器設置,點擊這裏現在添加一個。」 選擇功能的名稱。 而不是時間驅動,選擇「從電子表格」 然後選擇事件「在編輯」 並保存觸發器。

現在,「複製人員」應修改電子表格以測試電子郵件是否已發送。

請記住,通過這種方法,「複製人員」所做的每個修改都會觸發該事件,並且您將收到一封新郵件。

+0

感謝您的快速解決方案!儘管我會收到大量的電子郵件,但我可能會走這條路。目前,我認爲隨着時間的推移,會有很多更新的時期,所以希望這有助於:)。 – dslowin