1

I have Android apps that can save data database in a Google spreadsheet, and the data table looks like this:

enter image description here

And I have script update like this :

//Update
   if (e.parameter.func == "Update") {

    var sku = e.parameter.SKU;
    var exp = e.parameter.EXPIRED;
    var loc = e.parameter.LOCATION;
    var stat = e.parameter.STATUS;
    
    var lr= sh.getLastRow();
    for(var i=1;i<=lr;i++){
      var data_sku = sh.getRange(i, 1).getValue();
      if(data_sku==sku){
        sh.getRange(i, 2).setValue(exp);
        sh.getRange(i, 3).setValue(loc);
        sh.getRange(i, 4).setValue(stat);
        return ContentService.createTextOutput("Successfully Updated").setMimeType(ContentService.MimeType.TEXT);
        
      } 
    }
  }

But if I want to change the status of row 3 in the application, the only thing that changes is the first row:

enter image description here

I think I should give 3 parameter variables besides sku, but I don't know where to put them.

When I put code like this, its throws an error. Maybe anyone can help me?

//Update
   if (e.parameter.func == "Update") {

    var sku = e.parameter.SKU;
    var exp = e.parameter.EXPIRED;
    var loc = e.parameter.LOCATION;
    var stat = e.parameter.STATUS;
    
    var lr= sh.getLastRow();
    for(var i=1;i<=lr;i++){
      var data_sku = sh.getRange(i, 1).getValue();
      var data_exp = sh.getRange(i, 2).getValue();
      var data_loc = sh.getRange(i, 3).getValue();
      if(data_sku==sku and data_exp==exp and data_loc==loc){
        sh.getRange(i, 2).setValue(exp);
        sh.getRange(i, 3).setValue(loc);
        sh.getRange(i, 4).setValue(stat);
        return ContentService.createTextOutput("Successfully Updated").setMimeType(ContentService.MimeType.TEXT);
        
      } 
    }
  }
andrewJames
  • 19,570
  • 8
  • 19
  • 51

2 Answers2

1

Try to change:

if(data_sku==sku and data_exp==exp and data_loc==loc){

with:

if(data_sku==sku && data_exp==exp && data_loc==loc){
Yuri Khristich
  • 13,448
  • 2
  • 8
  • 23
1
//Update
   if (e.parameter.func == "Update") {

    var sku = e.parameter.SKU;
    var exp = e.parameter.EXPIRED;
    var loc = e.parameter.LOCATION;
    var stat = e.parameter.STATUS;
    
    var lr= sh.getLastRow();
    for(var i=2;i<=lr;i++){
      var data_sku = sh.getRange(i, 1).getValue();
      var data_exp = sh.getRange(i, 2).getValue();
      var data_loc = sh.getRange(i, 3).getValue();
      if(data_sku==sku && data_exp==exp && data_loc==loc){
        sh.getRange(i, 2).setValue(exp);
        sh.getRange(i, 3).setValue(loc);
        sh.getRange(i, 4).setValue(stat);
        return ContentService.createTextOutput("Successfully Updated");
      } 
    }
  }
Cooper
  • 59,616
  • 6
  • 23
  • 54