背景: 问题的核心是我有一个Alteryx作业,将文件拖放到我的google驱动器中。这些文件实际上需要在Team Drive文件夹中。尽我所能尝试,但我没有找到让Alteryx做到这一点的方法。因此,需要此脚本。
实际问题: 因此,这里有一个标准:我使用相同的命名约定创建了文件,只是更改了日期。我需要这些文件从我的驱动器移到最终处理它们的团队驱动器。 使用堆栈上已经存在的资源,我在这里找到了很棒的解决方案:1和这里2,我能够将一个工作脚本拼凑在一起。
了解我是一位功能有限的python数据分析程序员。因此,我的JS和Google脚本充其量是最基本的。我第一次测试脚本时,它可以工作。奇妙的是,直到没有。 它毫无问题地移动了我的第一个文件。然后,我在驱动器中创建了相同文件的几个副本,以查看其如何处理多个文件。我现在收到一个错误:
例外:找不到具有给定ID的项目,或者您找不到 有权访问它。 (第15行,文件“ CodeA1”)
这是我的代码:
function SearchFiles() {
//searches based on naming criteria
var searchFor ='title contains "Reference Data Performance"'; //test file
var names =[];
var fileIds=[];
var files = DriveApp.searchFiles(searchFor);
while (files.hasNext()) {
var file = files.next();
var fileId = file.getId();// To get FileId of the file
fileIds.push(fileId);
var name = file.getName();
names.push(name);
}
var file = DriveApp.getFileById(fileIds);
supportsTeamDrives: true;
supportTeamDrives: true;
var targetFolder = DriveApp.getFolderById('TEAMDriveID');
targetFolder.addFile(file);
}
答案 0 :(得分:0)
例外:找不到具有给定ID的项目,或者您找不到 有权访问它。
如果出现此错误,则最常发生
TeamDriveId
不正确还请注意:
supportsTeamDrives: true; supportTeamDrives: true;
是参数
混淆Drive API
,不要与DriveApp
答案 1 :(得分:0)
更新:
我最终使用了该脚本的简化版本。我让Alteryx以小时为单位计划文件创建(三个不同的文件)。然后,在每个Alteryx计划删除之后立即在Google Apps中触发一次运行脚本。简单?是。不雅吗也许。整周都在运行,文件到达目的地供人们处理。
function SearchFiles() {
//searches based on naming criteria
var searchFor ='title contains "Reference Data Performance"'; //looks for file that matches requirements
var files = DriveApp.searchFiles(searchFor);
while (files.hasNext()) {
var file = files.next();
var fileId = file.getId();// To get FileId of the file
var file = DriveApp.getFileById(fileId); //grabs file ready to pass to google drive.
supportsTeamDrives: true;
supportTeamDrives: true;
var targetFolder = DriveApp.getFolderById('FOLDERID');
targetFolder.addFile(file);//good for getting a single file needs loop to grab multiple from Array
}
}