I am trying with all my energy to create a code where I get a hyperlink of a file (uploaded to folder in drive) and move this file depending on a conditionn (switch case statement).
When I dissect the code and create subparts every subpart works. Am Stuck.
function onEdit(e) {
// defining variables. Basicly getting some values and ranges of a spreadsheet.
var row = e.range.getRow();
var col = e.range.getColumn();
var repet = e.source.getActiveSheet().getRange(row,11).getValue();
var rang_arquiv = e.source.getActiveSheet().getRange(row,20);
var arquiv = rang_arquiv.getValue();
var identif = e.source.getActiveSheet().getRange(row,20).getRichTextValue().getLinkUrl().match(/[-w]{25,}/);
var fornecedor = e.source.getActiveSheet().getRange(row,19).getValue();
// switch statemnt used to define a folder ID adress (end). Depending on a value of the spreadsheet I will move to a specific folder.
switch (fornecedor) {
case "ABC":
{
end = "1NsMaEwDiW8EOWUD5MNB6GGE5kOCJJlqh";
break;
}
case "PLATE":
{
end = "1pZJXTinCNCBU3t1Wyal5AUU-lARKpW71";
break;
}
case "DIGICERTA":
{
end = "1qo_cYe7rAhj4wN2bM_MqNkl1eXK21YP1";
break;
}
case "FOTOGRAV":
{
end = "1-vOoRpBLdwZjAJ_ZA2srOAvZOJ6ccge8";
break;
}
case "REGRAVAÇÃO":
{
break;
}
case "REPOSIÇÃO":
{
break;
}
}
// An if statement to verify some conditions
if(repet === "Novo" && col === 21 && e.source.getActiveSheet().getName() === "Fluxo Sangar" && row > 2 && arquiv != false && (e.oldValue === "false" && e.value === "TRUE")){
// here i wantr to get the file and move it. Already tried creating these var outside the if statement
var file = DriveApp.getFileById(identif);
var folder = DriveApp.getFolderById(end);
file.makeCopy(folder);
// After moving the file write the timestamp
e.source.getActiveSheet().getRange(row,22).setValue(identif);
}
Advertisement
Answer
You can’t do it with onEdit()
trigger. Simply triggers can operate only within the current spreadsheet and its data.
https://developers.google.com/apps-script/guides/triggers
Simple Triggers
They cannot access services that require authorization. For example, a simple trigger cannot send an email because the Gmail service requires authorization, but a simple trigger can translate a phrase with the Language service, which is anonymous.
They can modify the file they are bound to, but cannot access other files because that would require authorization.