Использование магазина свойств; добавление в массив информации, получение информации - PullRequest
0 голосов
/ 10 июля 2019

У меня есть дополнение, которое я обновляю для Sheets.Я хочу хранить информацию каждый раз, когда пользователь запускает одну из двух функций, поэтому я создал функцию отправки информации в Свойства документа.В конечном итоге я хочу отправить эти данные на лист после того, как определенное количество значений будет собрано.Проблема, с которой я столкнулся, заключается в том, что когда я запускаю тестовую функцию для регистрации содержащихся данных, она показывает только самые последние данные;Я не уверен, что добавляю к существующим данным или заменяю их.Пары данных должны включать адрес электронной почты пользователя и имя вкладки листов, созданной одной из двух функций, вызывающих эту функцию storeStats.Вкратце: * Нужно ли объявлять имя хранилища свойств перед добавлением в него данных?* Как мне добавить больше данных, не удаляя старые?* Как я могу проверить, сколько данных хранится?Я размышляю в духе array.length, но не уверен, что это работает в свойствах * Я предполагаю, что мне нужно использовать команду parse, чтобы получить ее и отправить на лист в конце.Это может закончиться отдельным вопросом позже, но любые идеи приветствуются.

function storeStats(sheetTitle) {
var docProps = PropertiesService.getDocumentProperties();
var userID = Session.getActiveUser().getEmail(); 
var thisData = {user:userID, sheet:sheetTitle};
var thisDataStr = JSON.stringify(thisData);
var useData = "USEDATA";  //name of the properties store maybe
docProps.setProperties(useData,thisDataStr);
Logger.log(useData.length);
//send when enough values are present
//use parse to extract and send?
// /*if(/*see how many values are in the data set*/) {
   //parse values from value set array 
   //send the whole batch to the range on the collection sheet
//} */

}

Пока не создано никаких ошибок, но при этом возвращается только один адрес электронной почты и одно имя листа, а не все значения, отправленные из предыдущих вызовов функций.

1 Ответ

2 голосов
/ 10 июля 2019

docProps.setProperties(useData,thisDataStr); не добавляет данные в «USEDATA», если вы хотите добавить или добавить данные, вам нужно сделать что-то вроде этого:

docprops.setProperty('USEDATA', docprops.getProperty('USEDATA') + thisDataStr);

Пример:

function propertiesTest() {
  var ps=PropertiesService.getScriptProperties();
  ps.setProperty('test','');
  for(var i=0;i<10;i++) {
    ps.setProperty('test',ps.getProperty('test') + '\n' + i)
  }
  Logger.log(ps.getProperty('test'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...