Google Apps Script перемещает файл в папку Team Drive - PullRequest
1 голос
/ 24 октября 2019

Справочная информация: Суть проблемы заключается в том, что у меня есть задание Alteryx, которое сбрасывает файлы на мой диск Google. Эти файлы фактически находятся в папке Team Drive. Как ни старайся, нигде я не нашел способ сделать это для Alteryx. Таким образом, отсюда и необходимость в этом сценарии.

Актуальная проблема: Итак, вот критерии: у меня файлы создаются с тем же соглашением об именах с изменением только даты. Мне нужны эти файлы, чтобы перейти с моего диска на командный диск, где они в конечном итоге работают. Используя ресурсы, уже находящиеся здесь, в стеке, я нашел здесь замечательные решения: 1 и здесь 2 , чтобы я смог собрать рабочий скрипт.

ПониматьЯ немного функциональный программист на Python для анализа данных. Так что мои сценарии JS и Google в лучшем случае зачаточны. Первый раз, когда я тестировал скрипт, он работал. Чудесно, до тех пор, пока этого не произошло. Он переместил мой первый файл без проблем. Затем я создал несколько копий этого же файла на диске, чтобы посмотреть, как он обрабатывает несколько файлов. Теперь я получаю сообщение об ошибке:

Исключение: невозможно найти элемент с указанным идентификатором или у вас нет прав доступа к нему. (строка 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);

}

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

Обновление:

Я закончил с упрощенной версией этого скрипта. У меня было Alteryx планировать создание файла (три разных файла) с шагом в час. Затем в Google Apps сработал триггер, запускающий сценарий сразу после каждого запланированного удаления Alteryx. Просто? Да. Безвкусный? Может быть. Работает всю неделю, и люди приходят к месту назначения для работы.

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

  }

}
0 голосов
/ 25 октября 2019

Исключение: не удалось найти элемент с указанным идентификатором или у вас нет прав на доступ к нему.

Эта ошибка чаще всего возникает, если либо

  • Неправильный TeamDriveId
  • Учетная запись, с которой запускается сценарий, не является членом командного диска

Также обратите внимание:

supportsTeamDrives: true; supportTeamDrives: true;

- параметры для Drive API, не следует путать с DriveApp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...