google-apps-script - 您无权访问此文档 Appscript
问题描述
为什么我有一个错误:您没有访问此文档的权限。当我使用“try{}catch(error){}”时?有异常的部分正确完成
const ssID = SpreadsheetApp.getActive().getId();
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Premia')
.addItem('Send information', 'sendInfo')
.addToUi();
}
function sendInfo() {
try {
PREMIA.importDane(ssID);
}
catch (error) {
var ui =SpreadsheetApp.getUi()
ui.alert("Error");
}
}
这是我的图书馆代码 PREMIA,这是我的图书馆代码 PREMIA,这是我的图书馆代码 PREMIA,这是我的图书馆代码 PREMIA,这是我的图书馆代码 PREMIA,这是我的图书馆代码 PREMIA,这是我的图书馆代码 PREMIA,这里这是我的图书馆代码 PREMIA,这是我的图书馆代码 PREMIA,这是我的图书馆代码 PREMIA,这是我的图书馆代码 PREMIA,这是我的图书馆代码 PREMIA,
function importDane(ssID) {
const baza = SpreadsheetApp.openById('ID OF MY DATABASE SPREADSHEET');
const bazaBaza = baza.getSheetByName('Baza');
const bazaSlownik = baza.getSheetByName('Słownik');
const bazaSlownikDane = bazaSlownik.getDataRange().getValues();
//const bazaDostep = baza.getSheetByName("Dostęp").getDataRange().getValues();
var ss=SpreadsheetApp.openById(ssID);
var sheet = ss.getSheetByName("Premie");
var dane = sheet.getDataRange().getValues();
var licznik =0;
for (var i=2; i<dane.length;i++) {
if (dane [i][6]=="Wyślij") {
licznik++;
var przelozony = dane[0][1];
var miesiac = dane[i][0];
var nazwisko = dane[i][1];
var imie = dane[i][2];
var pesel = dane[i][3];
var biuro = dane[i][4];
var premia = dane[i][5];
if (miesiac=="Styczeń") {
for (let a =0;a<bazaSlownikDane.length;a++) {
if (bazaSlownikDane[a][1]==pesel){
var wyplata=bazaSlownikDane[a][2];
var odroczono=(wyplata*0.06);
var dowyplaty = (premia-odroczono);
if(dowyplaty<0) {
dowyplaty=0;
odroczono=premia;
}
}
}
} else if (miesiac=="Luty") {
for (let a =0;a<bazaSlownikDane.length;a++) {
if (bazaSlownikDane[a][1]==pesel){
var wyplata=bazaSlownikDane[a][3];
var odroczono=(wyplata*0.06);
var dowyplaty = (premia-odroczono);
if(dowyplaty<0) {
dowyplaty=0;
odroczono=premia;
}
}
}
} else if (miesiac=="Marzec") {
for (let a =0;a<bazaSlownikDane.length;a++) {
if (bazaSlownikDane[a][1]==pesel){
var wyplata=bazaSlownikDane[a][4];
var odroczono=(wyplata*0.06);
var dowyplaty = (premia-odroczono);
if(dowyplaty<0) {
dowyplaty=0;
odroczono=premia;
}
}
}
} else if (miesiac=="Kwiecień") {
for (let a =0;a<bazaSlownikDane.length;a++) {
if (bazaSlownikDane[a][1]==pesel){
var wyplata=bazaSlownikDane[a][5];
var odroczono=(wyplata*0.06);
var dowyplaty = (premia-odroczono);
if(dowyplaty<0) {
dowyplaty=0;
odroczono=premia;
}
}
}
} else if (miesiac=="Maj") {
for (let a =0;a<bazaSlownikDane.length;a++) {
if (bazaSlownikDane[a][1]==pesel){
var wyplata=bazaSlownikDane[a][6];
var odroczono=(wyplata*0.06);
var dowyplaty = (premia-odroczono);
if(dowyplaty<0) {
dowyplaty=0;
odroczono=premia;
}
}
}
} else if (miesiac=="Czerwiec") {
for (let a =0;a<bazaSlownikDane.length;a++) {
if (bazaSlownikDane[a][1]==pesel){
var wyplata=bazaSlownikDane[a][7];
var odroczono=(wyplata*0.06);
var dowyplaty = (premia-odroczono);
if(dowyplaty<0) {
dowyplaty=0;
odroczono=premia;
}
}
}
} else if (miesiac=="Lipiec") {
for (let a =0;a<bazaSlownikDane.length;a++) {
if (bazaSlownikDane[a][1]==pesel){
var wyplata=bazaSlownikDane[a][8];
var odroczono=(wyplata*0.06);
var dowyplaty = (premia-odroczono);
if(dowyplaty<0) {
dowyplaty=0;
odroczono=premia;
}
}
}
} else if (miesiac=="Sierpień") {
for (let a =0;a<bazaSlownikDane.length;a++) {
if (bazaSlownikDane[a][1]==pesel){
var wyplata=bazaSlownikDane[a][9];
var odroczono=(wyplata*0.06);
var dowyplaty = (premia-odroczono);
if(dowyplaty<0) {
dowyplaty=0;
odroczono=premia;
}
}
}
} else if (miesiac=="Wrzesień") {
for (let a =0;a<bazaSlownikDane.length;a++) {
if (bazaSlownikDane[a][1]==pesel){
var wyplata=bazaSlownikDane[a][10];
var odroczono=(wyplata*0.06);
var dowyplaty = (premia-odroczono);
if(dowyplaty<0) {
dowyplaty=0;
odroczono=premia;
}
}
}
} else if (miesiac=="Październik") {
for (let a =0;a<bazaSlownikDane.length;a++) {
if (bazaSlownikDane[a][1]==pesel){
var wyplata=bazaSlownikDane[a][11];
var odroczono=(wyplata*0.06);
var dowyplaty = (premia-odroczono);
if(dowyplaty<0) {
dowyplaty=0;
odroczono=premia;
}
}
}
} else if (miesiac=="Litopad") {
for (let a =0;a<bazaSlownikDane.length;a++) {
if (bazaSlownikDane[a][1]==pesel){
var wyplata=bazaSlownikDane[a][12];
var odroczono=(wyplata*0.06);
var dowyplaty = (premia-odroczono);
if(dowyplaty<0) {
dowyplaty=0;
odroczono=premia;
}
}
}
} else if (miesiac=="Grudzień") {
for (let a =0;a<bazaSlownikDane.length;a++) {
if (bazaSlownikDane[a][1]==pesel){
var wyplata=bazaSlownikDane[a][13];
var odroczono=(wyplata*0.06);
var dowyplaty = (premia-odroczono);
if(dowyplaty<0) {
dowyplaty=0;
odroczono=premia;
}
}
}
}
var status = "Nowe zgłoszenie";
var wynik = [[miesiac,nazwisko,imie,biuro,pesel,przelozony,premia,wyplata,dowyplaty,odroczono,status]];
var wynikZespol = [["Wysłano",dowyplaty,odroczono]];
Logger.log("wynik: "+wynik);
Logger.log("wynik zespołu: "+wynikZespol);
var freeRow = bazaBaza.getLastRow()+1;
bazaBaza.getRange(freeRow,1,1,11).setValues(wynik); //wstawianie wartości do arkusza Baza
sheet.getRange(i+1,7,1,3).setValues(wynikZespol); //wstawianie wartości do arkusza Premie, poszczególnych zespołów
}
}
var ui = SpreadsheetApp.getUi();
if (licznik==0) {
ui.alert('Brak informacji do wysyłki odnośnie wysokości premii');
} else {
ui.alert("Raport został wysłany w ilości: "+licznik+" sztuk");
}
}
解决方案
这可能是一个错误:
即使方法包含在try...catch中,与方法openById或openByUrl对应的错误消息也会显示在日志中。
在问题跟踪器中报告:
这之前已在问题跟踪器中报告过:
任何受此影响的人,请考虑通过加注星标来订阅此问题,以便跟踪它并帮助确定它的优先级。
更多细节:
请注意,这里是否使用库无关紧要,因为即使未在主代码中直接调用此方法,这也是可重现的:
function myFunction() {
try {
SpreadsheetApp.openById("SS_ID");
} catch(err) {
console.log("ERROR");
}
}
在这两种情况下,代码都成功进入并执行了该catch
块,但最后记录了错误消息,并且 Execution 的状态设置为Failed
:
另请注意,类似DocumentApp.openById的方法不会显示此行为。
推荐阅读
- python - Python写入文件需要很长时间
- python - Python - 从链接下载 GIF
- c++ - 将变量声明为引用时的堆使用后释放
- oracle - 如何将(clob 数据)行转换为列
- python-3.x - 当我尝试在 python 中制作多人游戏时,我不断收到错误
- android - 您的设备与此版本不兼容 - 显示在所有设备上
- php - 在 PHP 中对数组元素进行分组和重新排序
- html - 如何将包含 html 数据的数据框写入磁盘?
- react-native - react-native 如何在子组件中获取父组件背景颜色
- jmeter - 如何在jmeter中获得每秒500的吞吐量