2016-08-23 3 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은 선택한 상태에 연락처가 너무 많아 연속 루프가 발생하면 문제가 발생했습니다.

관련 문제