Вызовите Функцию Создать Представление Фильтра, Если В Представлении Удалить Фильтр Нечего Удалять

#api #google-apps-script #google-sheets #google-sheets-api

Вопрос:

Вот моя функция просмотра «Удалить фильтр» и «Создать представление фильтра», которая работает, Но я хочу вызвать функцию «Создать представление фильтра» В своей функции просмотра «Удалить фильтр», если удалять нечего, как это сделать?

Я пытаюсь избежать этой ошибки, когда удалять нечего:

«Исключение GoogleJsonResponseException: вызов API sheets.spreadsheets.batchUpdate завершился ошибкой: Необходимо указать хотя бы один запрос.

Удалить просмотры фильтров @ Code.gs:108» // Удалить определенные просмотры фильтров

 function deleteFilterViews(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var id = ss.getId();
 
  var myFilterViews = Sheets.Spreadsheets.get(id, {
    ranges: 'Purchase Orders List',
    fields: 'sheets/filterViews',
  }).sheets[0].filterViews;
    
const regex = /(PO_Log Precentage)/gm; // This Deletes filter views named PO_Log Precentage 


let unNamedViews =  myFilterViews.filter(function(ele){return regex.exec(ele['title'])});
  

  Sheets.Spreadsheets.batchUpdate({
    requests: unNamedViews.map(function(e) {
      return { deleteFilterView: { filterId: e['filterViewId'] } };
    }),
  },id);
};
Here Is My Create Filter View Function
function filter_view (){
  const spreadsheetId = SpreadsheetApp.getActiveSpreadsheet();
 
  const sheetId = spreadsheetId.getActiveSheet().getSheetId();
  
  const addFilterViewRequest = [
    {
       'addFilterView' : {
         filter : {
           title : 'PO_Log Precentage', // Title Of filter view amp; make sure no space in title
           range : {
             sheetId : sheetId, // The filter view sheetId
             'startRowIndex': 0,
             'startColumnIndex':0,
             
           }, // Using comma to seprate different conditional values
            'criteria': {
              2:{  // This number the column you are indexing in the spreadsheet 
               'condition': {
                 'type': "NUMBER_GREATER_THAN_EQ",
                 'values':[
                   {
                     "userEnteredValue" :'80%'                      
                     
                   },// Using comma to seprate different conditional values 80 amp; 95

                 ],
               }
               
             },1:{
                   'condition': {
                     'type' : "CUSTOM_FORMULA",
                     'values' : [
                       {
                         "userEnteredValue" : '=not(regexmatch($Q$2:$Q,"(?i)Close-Out|Cancelled"))'
                       }
                     ],
                   }
                 }
           
         }

       }
    }
    }
  ]
    
 

https://docs.google.com/spreadsheets/d/1QW5PIGzy_NSh4MT3j_7PggxXq4XcW4dCKr4wKqIAp0E/edit#gid=611584429