2015-10-31 1 views
1

В скрипт приложения Google, создавая копию электронной таблицы, которая содержит связанную форму, которая также используется для копирования связанной формы при копировании между двумя разными учетными записями Google. Это, похоже, уже не так.Копирование электронной таблицы Google больше не копирует связанную форму

В приведенном ниже примере getFormUrl возвращает null. Что такое обход, чтобы скопировать связанную форму вместе с таблицей, как это было раньше?

// from a 2nd google consumer account, get file by ID of a master 
// spreadsheet in a different user account that contains a linked Form 
var masterSpreadsheetFile = DriveApp.getFileById('1Jeh4b0BrF4qjogErZpd-bnnoVhLdRj2-hfwXy.....'); 

// make a copy of the master for this 2nd free google consumer account user 
var copiedSpreadsheetFile = masterSpreadsheetFile.makeCopy('myCopiedSpreadsheet', 'MyFolder'); 

// set the name of the Copied linked Form 
var copiedSpreadsheet = SpreadsheetApp.open(copiedSpreadsheetFile); 
var copiedFormUrl = copiedSpreadsheet.getFormUrl(); // fails here 
var copiedFormId = getIdFromUrl(copiedFormUrl); 
var copiedFormFile = DriveApp.getFileById(copiedFormId); 
copiedFormFile.setName('myNewCopiedForm'); 
enter code here 

Копирование листа через графический интерфейс пользователя в том же аккаунте пользователя. Копирует связанную форму.

+0

Было ли это работать раньше? Если да, лучше сообщить о проблеме [здесь] (https://code.google.com/p/google-apps-script-issues/issues/list). Кроме этого, попробовали ли вы копировать форму «Мастер» вместе с таблицей? – pointNclick

ответ

0

Я нашел проблему, должны были быть сделаны некоторые изменения, связанные с обработкой разрешений для связанных форм. Раньше связанная форма должна унаследовать разрешения электронной таблицы, к которой она привязана. Теперь эти разрешения должны быть явно заданы в форме. Поэтому простое решение заключалось в том, чтобы войти в форму, «добавить коллаборационистов» и установить «Любой, у кого есть ссылка, может редактировать».

С учетом этого изменения, когда вы делаете копию электронной таблицы между двумя разными учетными записями Google, она также скопирует связанную форму.