我已经创建了三个脚本(但我认为它们都是同一个应用程序的一部分?)作为我公司的Sheets插件(我们域中的所有用户)部署。我是我们帐户的管理员,并为所有域用户批准了该应用。
首先,用户点击一个按钮,提示他们正确命名当前Google表格的副本(付款申请表)并将其保存在我们驱动器上的正确文件夹中。然后他们打开这个新文件并在填写之后,工作表上的另一个按钮打开一个脚本,该文件将文件的所有权转移给负责批准请求的员工,并且仅向其他所有观众提供。该员工批准该请求,然后按下运行脚本的按钮以允许会计师编辑该文档。
脚本可以工作,但是后两个脚本每次运行时都要求授权(即使是从我这里)。我在Authorizing a Google Apps Script上看到了一个类似的问题,但我认为第一个答案仅适用于将脚本作为Web App运行的情况。我愿意这样做,但我也很难理解这个过程(我第一次写剧本)。感谢。
1
function saveAsSpreadsheet() {
var sheet = SpreadsheetApp.getActive();
var folder = DriveApp.getFolderById('XXXXXXXX');
var ui = SpreadsheetApp.getUi();
Browser.msgBox("Please rename document. Wait for prompts.");
var fileName = Browser.inputBox("Rename file like this: YYYY.MM.DD Payee Name");
DriveApp.getFileById(sheet.getId()).makeCopy(fileName, folder);
}
2
function setOwner() {
var sheet = SpreadsheetApp.getActive();
var file = DriveApp.getFileById(sheet.getId())
var owner = file.getOwner().getEmail();
file.setOwner("joe@ourdomain.com");
}
3
function setSharing () {
var sheet = SpreadsheetApp.getActive();
var file = DriveApp.getFileById(sheet.getId())
var owner = file.getOwner().getEmail();
var user = file.getEditors();
if (user = "jill@ourdomain.com"){
file.addEditor("jill@ourdomain.com")
} else if (user = "sue@ourdomain.com"){
file.setSharing(DriveApp.Access.DOMAIN, DriveApp.Permission.VIEW);
} else {
file.setSharing(DriveApp.Access.DOMAIN, DriveApp.Permission.VIEW);
}}