How-To для Cache / Сервис недвижимости в Google Script - PullRequest
0 голосов
/ 29 апреля 2020

Добрый день,

Я создал инструмент управления тарифами, с помощью которого вы можете, например, выпускать предложения для клиентов. Если мои коллеги (каждый со своей версией листа) нажимают показанную ниже функцию SaveQuote, иногда это занимает некоторое время, иногда это происходит в течение 1 секунды.

Я предполагаю, что это связано с какими-то кэшированными значениями?

Теперь я прочитал, что можно использовать службу кэширования или даже службы свойств для получения временных / постоянных значений кэша. Я читаю документацию для обоих сервисов, но не могу понять, где разместить сервисы, чтобы они работали. Это в начале сценария, в конце, внутри или отдельно?

Ниже приведен один из нескольких моих сценариев. Какие значения будут хорошим способом кэширования? Как они будут кэшироваться? Я не понимаю схему ключ / пара за функцией кеша.

Мои коллеги используют мой инструмент около 8 часов в день. Так что я думаю, что служба недвижимости будет более подходящей?

Может ли кто-нибудь помочь мне здесь? Я с удовольствием предоставлю больше информации, если это необходимо.

Любые комментарии к моему коду также приветствуются, если, например, его можно написать более эффективно.

Заранее большое спасибо. Ваша помощь очень ценится.

function SaveQuote() {

var ratenprogramm = SpreadsheetApp.getActiveSpreadsheet();
var ratenprogrammuser = SpreadsheetApp.openByUrl(
    'https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxx/edit'); 
var quotations = ratenprogrammuser.getSheetByName("Quotations");
var quotation = ratenprogramm.getSheetByName("Quotations");   
var diverses = ratenprogramm.getSheetByName("Diverses");  
var ergebnis = ratenprogramm.getSheetByName("Ergebnis");   

var prefix = diverses.getRange('X23').getValue(); 

var modusarray = ["EX-LCL-","EX-FCL-","IM-LCL-","IM-FCL-"];
var rangearray = ["A2","B2","D2","E2"];
var rangearray2 = ["H2","I2","K2","L2"];

   for(i=0;modusarray.length-1;i++)
   {
     if (prefix == modusarray[i])
     {
      var newquote = quotations.getRange(rangearray[i]).getValue()+1;
      quotations.getRange(rangearray2[i]).setValue(newquote);
      break;
     }     
   }                    

var quotationnumber = prefix+newquote;    

diverses.getRange('Y22').setValue(quotationnumber);  

var stuff1 = ratenprogramm.getRange('C3');
var stuff2 = ergebnis.getRange('E6'); 
var stuff3 = diverses.getRange("A23");   
var stuff4 = diverses.getRange("A22");

var stuffarray = [stuff1, stuff2, stuff3, stuff4];

    for(i=0;i<=3;i++)
    {
     stuffarray[i].setValue(quotationnumber);
    }  

    diverses.getRange("A21").setValue(0);   

var DataRange = quotation.getRange('A8:R8');
var DataCopied = DataRange.getDisplayValues();

var startRow = quotations.getRange('G2').getValue();                        

// eigenequotes.getRange(startRow2, startColumn, numRows, numColumns).setValues(DataCopied);  

for(i = 0;i<19;i++)  
{
  var range = quotations.getRange(startRow, i+1);
  range.setValue(DataCopied[0][i]); 
} 

SpreadsheetApp.flush(); 

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