2016-08-23 2 views
0

私のGoogle Sheetの内容からデータベースに連絡先を作成するスクリプトがあります。まず、データベースに連絡先が存在しないことを確認し、連絡先を追加します。私は何千という連絡先を持っているので、既存の連絡先キャッシュ内の連絡先の数を減らすために、私は連絡先リストを状態ごとにフィルタリングします。appsスクリプトでvar値を変更できない

var leadsCache = []; 
function createContact(leads){ 
    var leadState = ''; 
    for(var i=0; i<leads.length; i++){ 
    if(leads[i].state != leadState){ 
     leadState = leads[i].state; 
     populateLeadsCache(leadState); 
    } 
    var existingLead = leadsCache[leads[i].email]; 
    if(existingLead === undefined){ 
     var leadId = createNewLead(leads[i]); 
    } 
    } 
} 

新しい状態のリードになるまで、期待どおりに動作します。コードはここにハングアップします:

leadState = leads[i].state; 

エラーメッセージは表示されません。私はvarを次のように空にすることができます:leadState = ''、しかし私は何かに値を設定することはできません。

コードをステップ実行すると、leads[i].stateに新しい文字列値があることがわかります。

なぜ値を変更できないのですか?私の望む結果を達成する最良の方法は何ですか?

UPDATE

私はApps Scriptのためのより良いエラー報告システムがあったことを望みます。私はpopulateLeadsCache(連続ループ)に問題があったことが判明しましたが、システムはleadState = leads[i].state;に固執していました。

Apps Scriptでエラー報告を改善する方法を知っている人は誰ですか?

答えて

0

私は質問に答えていますので閉じても構いませんが、誰か他の人が本当に問題ではない類似の問題を抱えている場合に備えてここに質問を残してください。

Apps Scriptには、堅牢なエラー報告ツールがなく、デバッガはコードの別の部分で真の問題を強調表示できませんでした。

Apps Scriptでタイムアウトメッセージを受け取ると、コードが破損しているように見える場所とは関係がない可能性があることに注意してください。

私にとって、選択された状態にコンタクトが多すぎると連続したループが発生した場合は、次のコード行であるpopulateLeadsCacheが問題になりました。

関連する問題