我正在开展一个R& D项目,在那里我阅读了我的电子邮件内容(其中包含服务器相关指标),并将数据发布到Google Spreadsheet
以绘制图表。
目前,当我从Google App Script
手动运行脚本时,它运行正常,但是当我安排触发器时,它会因错误而失败 - Cannot convert [object Object] to (class)
。
我的邮件包含以下信息,我阅读并绘制图表:
Date&Time JVM PID CPU MEM FGC
03-09-2017-09-08-PM abc01_xzy01 12345 1.2% 2.75 3
03-09-2017-09-08-PM abc01_xzy01 12345 3.5% 2.71 4
03-09-2017-09-08-PM abc01_xzy01 12345 4.6% 2.79 5
我的代码:
function getGmail(start) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var isubject = "TEST REPORT";
start = start || 0;
var threads = GmailApp.getInboxThreads(start, 1);
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages();
for (var j = 0; j < messages.length; j++) {
var sub = messages[j].getSubject();
if (sub==isubject){
var msg=messages[j].getPlainBody();
var msg=msg.trim()
}
}
result1(msg)
}
function result1(range) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss.getSheetByName("Sheet1")
var lr=sheet1.getLastRow()
var output=[]
var line=range.split(" ")
for(j=0;j<line.length;j++){
output.push(line[j].split(" "))
}
sheet1.getRange(lr+1, 1, output.length, output[0].length).setValues(output)
}
}
我在第6行得到错误var threads = GmailApp.getInboxThreads(start, 1);
但不确定原因。我在这里检查了各种解决方案,并尝试修改它们(比如应用2D数组,更改setValues
格式等),但没有一个有效。
如何确定我的代码在保持触发状态时的行为方式?
答案 0 :(得分:1)
您无法从触发器向函数传递参数,因此在使用触发器运行时,函数中的start未定义。这就是它在第6行失败的原因。