0

会社で CRM システムを実行するスクリプトがあり、Fusion テーブルをデータベースとして使用しています。新しいレコードを入力するたびに、このレコードがこのフュージョン テーブルに保存されます。保存アクションが実行されると、次のコードを使用して、データベースに渡されるデータのコピーをスプレッドシートに作成し、データのバックアップを作成します。

function AtualizarSpreadsheet(e)
{
  var app = UiApp.getActiveApplication();
  var planilha = SpreadsheetApp.openById(SPREADSHEET_ID);
  var sheet = planilha.getActiveSheet();

  var enviado = "NÃO";
  var id = e.parameter.id;
  var nomeDoReclamante = e.parameter.nomeDoReclamante;
  var telefone = e.parameter.telefone;
  var ddd = e.parameter.ddd;
  var prefixo = e.parameter.prefixo;
  var sufixo = e.parameter.sufixo;
  var email = e.parameter.email;
  var regiao = e.parameter.regio;
  var categoria = e.parameter.categoria;
  var produto = e.parameter.produto;
  var subcategoria = e.parameter.subcategoria;
  var versaoDeSoftware = e.parameter.versoDeSoftware;
  var dataDeInicio = e.parameter.dataDeInicio;
  var dia = e.parameter.dia;
  var mes = e.parameter.ms;
  var ano = e.parameter.ano;
  var tituloDoProblema = e.parameter.ttuloDoProblema;
  var descricao = e.parameter.descrio;
  var status = e.parameter.status;
  var prioridade = e.parameter.prioridade;
  var informarEngenharia = e.parameter.informarEngenharia;
  var dataDeRegistro = e.parameter.dataDeRegistro;
  var horaDeRegistro = e.parameter.horaDeRegistro;
  var historico = e.parameter.histrico;
  var ordem = e.parameter.ordem;
  sheet.s
  sheet.appendRow([enviado,
                   id,
                   nomeDoReclamante,
                   telefone,
                   ddd,
                   prefixo,
                   sufixo,
                   email,
                   regiao,
                   categoria,
                   produto,
                   subcategoria,
                   versaoDeSoftware,
                   dataDeInicio,
                   dia,
                   mes,
                   ano,
                   tituloDoProblema,
                   descricao,
                   status,
                   prioridade,
                   informarEngenharia,
                   dataDeRegistro,
                   horaDeRegistro,
                   historico,
                   ordem]);
  return app;
}

スプレッドシートで関数 onOpen() を実行して、スプレッドシートが開かれるたびに 1 つの電子メールを送信します。ただし、フュージョン テーブル スクリプトが次のコマンドを実行すると: SpreadsheetApp.openById(SPREADSHEET_ID); onOpen() 関数はトリガーされていません。スプレッドシートを開いても、その機能を実行できません。onOpen() 関数の詳細は次のとおりです。

function onOpen() 
{
    MailApp.sendEmail("EMAIL", "SUBJECT", "BODY");
}

私は何を間違っていますか?

4

1 に答える 1

1

単純なトリガーでサポートされていないサービス(MailApp)を呼び出そうとしています。onOpen()関数を別の何かで呼び出し、代わりにインストール可能な「onopen」トリガーをアタッチする必要があります。

https://developers.google.com/apps-script/understanding_triggers

于 2012-10-26T20:27:44.110 に答える