简体   繁体   中英

How to continue running the script even if a user exists in Google Group using google scripts?

I need help with Google groups. The code currently checks if a member already exists but it stop when it does find one. How can I modify the code to allow it to process the next row without stopping?

TIA!

function updateGroup() {
  const s = SpreadsheetApp.openById("ID HERE");
  const sheet_name = s.getSheetByName("REPORT HERE");
  const sheet_data = sheet_name.getRange(2,1,sheet_name.getLastRow(),sheet_name.getLastColumn());
  const sheet_dataVal = sheet_data.getValues();
  
  for (var i = 0; i < sheet_dataVal.length-1; i++) {
    var member_Email = sheet_dataVal[i][9];  // REWS Projects Email Address

    var groupEmail = "GROUP EMAIL ADDRESS HERE";
    var member_Role = "MEMBER";
    var member_Type = "USER";
    var group = GroupsApp.getGroupByEmail(groupEmail);
    var comment = sheet_dataVal[i][13]; 
    
    if (comment === "Member Added to Group" || comment === "Member already exists") {continue;}
    
    var checkMembers = AdminDirectory.Members.list(groupEmail).members
    for (var m in checkMembers) {
      if (checkMembers[m].email == member_Email);
      return sheet_name.getRange(i+2,14).setValue("Member already exists");
      }
    addNewMembersToGroup(member_Email,member_Role,groupEmail,i,sheet_name);
  }
}  

function addNewMembersToGroup(member_Email,member_Role,groupEmail,i,sheet_name) {

  /* Member does not exists in group, add */
  var addNewMember = {
    kind: "admin#directory#member",
    email: member_Email,
    role: member_Role
  };
  AdminDirectory.Members.insert(addNewMember,groupEmail);
  sheet_name.getRange(i+2,14).setValue("Member Added to Group");
}

When you are using a return , the execution of the function is stopped - hence the issue you are getting.

In order to fix this, you should remove the return and have the if statement like this:

if (checkMembers[m].email == member_Email);
      sheet_name.getRange(i+2,14).setValue("Member already exists");

Reference

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM