Скрипт Google Sheet работает ненадежно - PullRequest
0 голосов
/ 11 апреля 2019

Я дошел до того, что у меня есть довольно солидный скрипт, который:

1) Извлекает данные из новой вкладки данных и публикует их на существующей вкладке данных 2) Удаляет данные из новой вкладки данных 3) Удаляет дубликаты из существующей вкладки данных

Когда я изначально вставил этот скрипт, он работал отлично. Но после его запуска несколько раз кажется, что он останавливается в части сценария, исключающей дублирование. Поэтому, когда я запускаю его, запускаются первые два скрипта, но не третий. Если я выберу скрипт de-dupe для запуска сам по себе, он будет работать просто отлично.

Кто-нибудь еще видел эту проблему? Есть ли способ настроить скрипт на более надежный запуск, чтобы он всегда обрабатывал все три сценария?

Не уверен, как оттуда оптимизировать.

function Run(){
  insert();
  clear1();
  removeDuplicates();
}
function insert() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var source = ss.getSheetByName('Candidate Refresh'); // change here
  var des = ss.getSheetByName('Candidate Listing'); // change here

  var sv = source
    .getDataRange()
    .getValues();
  sv.shift();
  des.insertRowsAfter(1, sv.length);
  des.getRange(2, 1, sv.length, source.getLastColumn()).setValues(sv);
}
function clear1() {
  var sheet = SpreadsheetApp.getActive().getSheetByName('Candidate Refresh');
  sheet.getRange('A2:K100').clearContent()
}
function removeDuplicates() {
  var sheet=SpreadsheetApp.getActiveSheet();
  var rows=sheet.getLastRow();
  var firstColumn=sheet.getRange(1, 2, rows, 1).getValues();
  firstColumn = firstColumn.map(function(e){return e[0]})
  var uA=[];
  for (var i=rows;i>0;i--) {
    if (uA.indexOf(firstColumn[i-1])!=-1) {
      sheet.deleteRow(i);
    }else{
      uA.push(firstColumn[i-1]);
    }
  }
}

Все три сценария должны запускаться при запуске сценария запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...