2017-01-12 7 views
0

をのonEdit実行されません。GASはGmailApp.getUserLabelByNameレコードが私のスプレッドシートに追加されたとき、私は電子メールのドラフトを作成するには、Google Appsスクリプト(GAS)を作成した

私はこのような(大幅に単純化された)私のメソッドを呼び出すためにonEditを使用:「の前に」

function onEdit(e){ 
    populateCache("test"); 
} 
function populateCache(label){ 
    Logger.log("before"); 
    var thisLabel = GmailApp.getUserLabelByName(label); 
    Logger.log("after"); 
} 

このログが、「後」に達したことがない、と私はすべてのエラーを得ることはありません。デバッグを介してメソッドを手動で呼び出すと、期待通りに機能します。

なぜこの行はonEditで失敗するのですか?

var thisLabel = GmailApp.getUserLabelByName(label); 

どのように動作させるのですか?

+1

"onEdit()"のトリガーを設定しましたか?トリガがなければ、パーミッションエラーが発生します。 – Tanaike

+0

それはうまくいった!答えとしてマークしておけば、私はそれを受け入れます。私はなぜコードがその部分まで問題なく実行されたのだろうと思う。 – davids

+0

ご意見ありがとうございます。私はそれを答えとして要約した。それを確認してください。 – Tanaike

答えて

1

次のスクリプトで状況を確認しました。 "onEdit()"がトリガーとして登録されていない場合、 "Logger.log(e)"に許可エラーが表示されます。トリガを登録すると、エラーが消えます。そして、 'Logger.log( "after")'が実行されました。

function onEdit(e){ 
    populateCache("test"); 
} 
function populateCache(label){ 
    Logger.log("before"); 
    try{ 
    var thisLabel = GmailApp.getUserLabelByName(label); 
    } 
    catch(e){ 
    Logger.log(e) 
    } 
    Logger.log("after") 
} 
関連する問題