Update the Copies pt-br Explainer

Explicação de Atualizar as cópias

Objetivo do desafio: Usar o Apps Script para concluir a etapa final da escrita de uma função para automatizar a criação do contrato.

Passo a passo da solução: No último tópico deste curso, você usará o Apps Script para criar uma função que automatize o processo de criação de contratos.

Neste desafio, você completará a última etapa da função principal.

A função principal foi dividida em 3 etapas:

  1. Abra uma planilha e obtenha um intervalo de valores
  2. Percorra cada linha do intervalo e chame makeCopy() para criar e nomear uma nova cópia do contrato
  3. Abra cada cópia e use updateDoc() para substituir seu texto de espaço reservado por texto da planilha

Para concluir o desafio, complete a etapa 3.

Dentro do laço for…of que está dentro da declaração de função main(), crie uma variável chamada copy que armazena o documento acessado por DocumentApp.openById(copyId). Depois, logo abaixo de copy, crie uma variável chamada edits que armazena a array aninhada:

[
  [ 'CLIENT', row[0] ],
  [ 'FEE', row[1] ],
  [ 'SERVICE', row[2] ]
]

Por último, abaixo de edits, chame a função updateDoc(). Defina o 1º argumento como copy e o 2º argumento como edits.

Conceitos de JavaScript: Variáveis, Strings, Arrays Aninhadas, Indexação da Array, Argumentos, Declarações de Função, Chamadas de Função
Conceitos do Apps Script: DocumentApp, .openById()

Bem, alguém sabe o resultado disso?

consegui assim:

let spreadsheetId = ‘114hEvWFEbgwmk9TIF54m6bRM6Nb-anMXF4G4qN1cufY’;
let contractId = ‘226uAXY0YRUj-HMW5LQZ2YeeJgyDqmJTpnzRkGmFLch0’;

function makeCopy(id, name) {
let file = DriveApp.getFileById(id);
let copy = file.makeCopy(name);
return copy.getId();
}

function updateDoc(doc, edits) {
for (let edit of edits) {
doc.replaceText(edit[0], edit[1]);
}
}

function main() {
let sheet = SpreadsheetApp.openById(spreadsheetId);
let values = sheet.getRange(“A2:C5”).getValues();

for (let row of values) {
let copyId = makeCopy(contractId, row[0] + ’ Contract’);
let copy = DocumentApp.openById(copyId)
let edits = [
[ ‘CLIENT’, row[0] ],
[ ‘FEE’, row[1] ],
[ ‘SERVICE’, row[2]]
];
updateDoc (copy, edits)
}

}

main();

2 Likes

O codigo não funciona para eu


Alguém sabe oq fiz de errado?