我有一个应用程序脚本,它设置为触发器,以在每月 1 日自动发送统计信息。我目前使用 PropertiesService() 类以名称值对的形式存储数据。 我需要存储的变量如下
这是一个编码示例:
const scriptProperties = PropertiesService.getScriptProperties(); scriptProperties.setProperties({ 'month': monthName, 'totalReferrals': totalReferrals, 'intakesComplete': intakesComplete, 'ssmReturns': ssmReturns, 'completedVsReturned': completedvsReturnedFormatted });
我这样提取数据:
const userProperties = PropertiesService.getScriptProperties(); const units = userProperties.getProperty('totalReferrals'); console.log('values of units %s', units);
它记录得很好。当该月第一天发送电子邮件时,如何保存上个月(例如:9 月)的数据,并提取该数据以发送 10 月的新统计数据。目标是将这两个月放在一起进行比较。它提取的数据不断变化,10 月 1 日的数据到 10 月 2 日会有所不同。
使用今天的日期作为顶级键并对其余值进行字符串化:
const dateAsStr = Intl.DateTimeFormat('en-US').format(new Date());
const scriptProperties = PropertiesService.getScriptProperties();
scriptProperties.setProperty(dateAsStr, JSON.stringify({ 'month': monthName, 'totalReferrals': totalReferrals, 'intakesComplete': intakesComplete, 'ssmReturns': ssmReturns, 'completedVsReturned': completedvsReturnedFormatted }));
要检索,
/*Oct 1 2024 date key*/
const date20241001AsStr = Intl.DateTimeFormat('en-US').format(new Date(2024,09/*month starts from 0*/,1 ));
const scriptProperties = PropertiesService.getScriptProperties();
const storedData = JSON.Parse(scriptProperties.getProperty(date20241001AsStr));