执行时间太长 Google Apps 脚本

Execution time too long Google AppsScript

我创建此脚本是为了将 Google 联系人中的姓氏大写。 只是剧本太花时间了。 一个想法?

function nomDeFamilleEnMajuscules() {
  Logger.clear();
  var contacts = ContactsApp.getContacts();
  for (var i in contacts) {
    var nomDeFamille = contacts[i].getFamilyName();
    if (nomDeFamille != '') {
      Logger.log("Nom de famille " + contacts[i].getFamilyName());
      var nomDeFamilleMajuscules = nomDeFamille.toUpperCase();
      var iDContact = contacts[i].getId();
      var contact = ContactsApp.getContactById(iDContact);
      contact.setFamilyName(nomDeFamilleMajuscules);
    }
  }
}

仅更新​​尚未大写的联系人:

    ...
    if(nomDeFamilleMajuscules != nomDeFamille) {
        var iDContact = contacts[i].getId();
        var contact = ContactsApp.getContactById(iDContact);
        contact.setFamilyName(nomDeFamilleMajuscules);
    }
    ...

您可能需要 运行 几次脚本才能应用所有联系人,但至少不会每次都重新开始。

ContactsApp.getContactById 可能会花费大量时间,因此仅在实际需要时执行它应该会加快速度。