#google-apps-script #google-sheets #shared-directory #flysystem-google-drive
#google-apps-script #google-sheets #общий каталог #flysystem-google-drive
Вопрос:
Я хочу, чтобы папки со всеми файлами или вложенными папками в них перемещались из одного каталога / папки в другую на основе значения в Google Sheet, но в то же время не изменять идентификатор папки, потому что папка доступна другим членам команды, поэтому не хочу связываться сдоступ. Я просмотрел всю сеть. я нашел скрипт, который создает копию папки (которая определенно изменяет идентификатор) и удаляет старую папку, что может определенно изменить статус доступа. URL-адрес папки находится на листе, который следует перемещать по каталогам. Вот код, который может помочь для лучшего понимания.
function onEdit(e) {
const inactive_folder = DriveApp.getFileById('1_hBkktH0Alzx06XS0Hu2tI0MSQ_SffKw');
const active_folder = DriveApp.getFolderById('13uon5guBduiA0gCKiLjl9ElOgek9CiU6');
if (e.range.columnStart != 1 || e.value != "Inactive"){
const rData = e.source.getActiveSheet().getRange(e.range.rowStart,1,1,13).getValues();
// Url of the client folder in 11th column
let client_folder = rData[0][11];
DriveApp.getFileById(client_folder).moveTo(inactive_folder);
} else {
DriveApp.getFileById(client_folder).moveTo(active_folder);
}
}
Любая помощь будет высоко оценена.
Комментарии:
1. В вашей ситуации, где
inactive_folder
иactive_folder
? Например, они помещаются на общий диск или на ваш Google Диск?2.
onEdit()
Определенно, не с помощью триггера.3. Они находятся на Google Диске на общем диске. По сути, я хочу, чтобы эта функция каждый раз считывала изменения и предпринимала соответствующие действия, т. Е. Она должна просматривать ссылку на папку в столбце 11 и статус клиента в столбце 1, если статус неактивен, он должен переместить папку клиента в неактивный, и если клиент снова активен, он долженснова переместите ту же клиентскую папку в Active.
4. Что заставляет oyu думать, что предоставленный вами фрагмент кода
creates the copy of the folder
? Это не так, этот код перемещает папку. Однако, как указал @Yuri Khristich, этот код не будет работать при ПРОСТОМ запуске onEdit из-за проблем с авторизацией .5. У меня есть еще один фрагмент, добавленный в скрипт, который создает папки и листы для каждого клиента, который я добавляю на лист. Теперь мне нужен какой-то скрипт, который перемещает эти папки / листы в активный или неактивный каталог / папку при изменении статуса клиента. Эти папки / листы объединяются в одну папку с именем клиента, которое может быть уникальным. например, есть папка с именем клиента, в ней есть другие вложенные папки и листы. Поэтому, если возможно, мы также можем переместить только одну папку с именем клиента, и это может переместить все вложенные папки и файлы вместе с ней.