API App Maker Server

Aplicativo

Essa classe permite que um script de servidor acesse dados e verifique as permissões, além de fornecer outras funcionalidades específicas para o App Maker.

    var userRoles = app.getActiveUserRoles();
    if (userRoles.indexOf(app.roles.Admins) >= 0) {
      // Create admin-only application settings record.
      var settings = app.models.Settings.newRecord();
      app.saveRecords([settings]);
    }
    

Essa classe está disponível apenas nos aplicativos do App Maker. Veja a referência dos Apps Script para todas as outras classes gerais disponíveis nos aplicativos do App Maker.

Propriedades

Nome Tipo Descrição
roles string[string] Todas as funções de usuário definidas neste aplicativo.


    if (userRoles.indexOf(app.roles.Admins) < 0) {
      throw 'Access denied';
    }
    
models Model[string] Todos os modelos de dados definidos no aplicativo.


    var record = app.models.Person.newRecord();
    app.saveRecords([record]);
    
metadata Metadata Todos os metadados definidos no aplicativo.


    var displayField = app.metadata.models.model1.displayField;
        
ManagedError function(message: String) Exibe uma mensagem de erro personalizada.


    throw new app.ManagedError("Custom message shown to app users");
      
transaction Transaction Controla transações em modelos do Cloud SQL.


    app.transaction.cloudSql.start(app.transaction.cloudSql.isolation.REPEATABLE_READ);
      

Métodos

Nome Valor de retorno Descrição
getActiveUserRoles() string[] Retorna os papéis do usuário atual. Veja também Session.getActiveUser().


    var roles = app.getActiveUserRoles();
    if (roles.indexOf(app.roles.Admins) < 0) {
      throw 'Access denied';
    }
    
saveRecords(
  records:Record[])
undefined Cria novos registros de rascunhos (se o campo _key do registro for null) ou atualiza registros atuais (se _key não for null). Define o campo _key para registros recém-criados.


    var record = app.models.Person.newRecord();
    app.saveRecords([record]);
    
deleteRecords(
  records:Record[])
undefined Exclui registros.


    var record = app.models.Person.getRecord(key);
    app.deleteRecords([record]);
    
getRoleMembers(role:string) string[] Retorna todos os membros que pertencem a um papel específico.


    var role = app.roles.Admins;
    var members = app.getRoleMembers(role);
    

Não retorna membros individuais de um grupo que você adicionou a um papel.

Associação

Essa classe representa uma associação entre dois registros, um no modelo em uma extremidade de uma relação específica e o outro no modelo na outra extremidade. Isso pode ser o mesmo modelo.

Cada associação consiste em duas chaves, que identificam os registros associados.

Essa classe está disponível apenas nos aplicativos do App Maker. Veja a referência dos Apps Script para todas as outras classes gerais disponíveis nos aplicativos do App Maker.

Propriedades

Nome Tipo Descrição
sourceKey string A chave do registro no modelo na extremidade da origem da relação. Use Record._sourceKey para acessar o registro.
targetKey string A chave do registro no modelo na extremidade do destino da relação. Use Record._targetKey para acessar o registro.

Para identificar qual extremidade de uma relação é a origem e qual é o destino, consulte a guia Segurança para ver um modelo na relação. As permissões de relação têm títulos como Funcionário + Departamento. Funcionário e Departamento são nomes das extremidades da relação. O modelo correspondente à primeira extremidade da relação é o modelo de origem, e o modelo correspondente à segunda extremidade da relação é o modelo de destino.

Modelo

Essa classe representa um modelo de dados no App Maker. Ela permite que um script acesse registros de dados desse modelo.

Essa classe está disponível apenas nos aplicativos do App Maker. Veja a referência dos Apps Script para todas as outras classes gerais disponíveis nos aplicativos do App Maker.

Métodos

Nome Valor de retorno Descrição
deleteRecords(
  keys:string[])
undefined Exclui vários registros pelas chaves.
getRecord(
  key:string)
Record Carrega um registro por chave.
getRecords(
  keys:string[])
Record[] Carrega vários registros pelas chaves. Pode retornar menos registros se algumas chaves não puderem ser encontradas. Os registros retornados são ordenados na mesma ordem em que as chaves foram passadas.
newQuery() Query Cria uma consulta para carregar registros do modelo atual que correspondem a determinados critérios.


    var query = app.models.Person.newQuery();
    query.filters.Name._startsWith = 'John';
    query.filters.Age._greaterThan = 20;
    query.sorting.Name._ascending();
    query.sorting.Age._descending();
    var records = query.run();
    
newRecord() Record Cria um novo registro não salvo (registro de rascunho). O campo _key do novo registro será null até que ele seja salvo.


    var record = app.models.Person.newRecord();
    app.saveRecords([record]);
    

Consulta

Essa classe representa uma consulta de dados no App Maker. Ela permite que um script controle a filtragem, a classificação e a paginação de registros de dados. Quando um usuário inicia uma consulta, o App Maker aplica os filtros de propriedade à consulta e verifica as permissões dos resultados antes de retorná-los ao usuário.

Essa classe está disponível apenas nos aplicativos do App Maker. Veja a referência dos Apps Script para todas as outras classes gerais disponíveis nos aplicativos do App Maker.

Propriedades

Nome Tipo Descrição
filters Dynamic Adiciona filtros à consulta. Filtros compatíveis: equals, notEquals, lessThan, greaterThan, lessThanOrEquals, greaterThanOrEquals, in, notIn, startsWith, notStartsWith, contains, notContains.


    var query = app.models.Person.newQuery();
    query.filters.Name._startsWith = 'John';
    query.filters.Age._greaterThan = 20;
    var records = query.run();
    

Os filtros in e notIn verificam se o valor no campo é igual (ou não) a qualquer valor em uma determinada matriz.

Filtros startsWith, notStartsWith, contains, notContains são compatíveis apenas com strings e listas de strings.

Os filtros lessThan, greaterThan, lessThanOrEquals, greaterThanOrEquals têm suporte apenas para números, datas e strings, além dos tipos de dados de lista correspondentes.

Ao consultar modelos de diretório, é possível usar somente determinados filtros. Para ver uma lista completa, consulte Campos de usuário e operadores de consulta.

limit number Define o número máximo de registros a serem retornados para a consulta.
offset number Define o número de registros a serem ignorados e não incluídos no resultado da consulta.
parameters Dynamic Fornece acesso a parâmetros personalizados no Script de Consulta.
sorting Dynamic Adiciona a classificação à consulta.


    var query = app.models.Person.newQuery();
    query.sorting.Name._ascending();
    query.sorting.Age._descending();
    var records = query.run();
    
prefetch Dynamic Adiciona pré-busca à consulta. A pré-busca garantirá que os registros relacionados sejam carregados na mesma solicitação com a consulta, em vez de carregá-los sob demanda mais tarde, quando forem acessados. A pré-busca reduz o número total de solicitações, ao custo de uma consulta inicial mais cara, o que pode melhorar o desempenho.


    var query = app.models.Employee.newQuery();
    query.prefetch.Manager._add();
    query.prefetch.Manager.Reports._add();

    var records = query.run();
    for (var i in records) {
      var manager = records[i].Manager; // No extra call to DB
      var reports = manager.Reports; // No extra call to DB
      ...
    }
               

Métodos

Nome Valor de retorno Descrição
run() Record[] Executa a consulta, retorna os registros que correspondem aos critérios de consulta.


    var query = app.models.Person.newQuery();
    query.filters.Name._startsWith = 'John';
    query.filters.Name._ascending();
    var persons = query.run();
    

Registro

Essa classe representa um registro de dados no App Maker. Ela permite que um script acesse campos de registro e registros relacionados.

Essa classe está disponível apenas nos aplicativos do App Maker. Veja a referência dos Apps Script para todas as outras classes gerais disponíveis nos aplicativos do App Maker.

Propriedades

Nome Tipo Descrição
_key string A chave de registro é única no modelo fornecido. A chave é gerada quando o registro é salvo e é null para novos registros não salvos (registros de rascunho).
<field> Dynamic Há um campo para cada campo de registro ou relação. As relações qualquer para 1 são representadas por campos simples, enquanto as relações qualquer para N são representadas por matrizes.


    var person = app.models.Person.newRecord();
    person.name = 'John Doe';
    person.age = 35;
    app.saveRecords([person]);

    var manager = app.models.Person.newRecord();
    manager.name = 'Jeff Williams';
    manager.age = 45;
    app.saveRecords([manager]); // You must save new record before using it in relations.

    person.manager = manager;
    app.saveRecords([person]);
    

Metadados

Essa classe representa todos os metadados no aplicativo. Ela permite que um script acesse os metadados desse aplicativo.

Essa classe está disponível apenas nos aplicativos App Maker. Veja a referência dos Apps Script para todas as outras classes gerais disponíveis nos aplicativos do App Maker.

Propriedades

Nome Tipo Descrição
models ModelMetadata[string] Todos os modelos definidos no aplicativo.

ModelMetadata

Essa classe representa um modelo de metadados no App Maker. Ela permite que um script acesse os metadados desse modelo.

Essa classe está disponível apenas nos aplicativos App Maker. Veja a referência dos Apps Script para todas as outras classes gerais disponíveis nos aplicativos do App Maker.

Propriedades

Nome Tipo Descrição
description string A descrição do modelo, conforme especificado no Editor de Modelos.
displayField Field[string] O campo de exibição de um modelo. Pode ser nulo.
fields Field[string] Todos os campos definidos no modelo.
name string O nome do modelo, conforme especificado no Editor de Modelos.
readOnly bool Se um modelo é somente leitura. Se um modelo for somente leitura, os dados não poderão ser gravados nesse modelo.
relations Relation[string] Todas as relações provenientes de um determinado modelo.
type string O tipo de banco de dados de um modelo: Calculado, Cloud SQL ou Diretório.

Campo

Essa classe representa um campo no App Maker. Ela permite que um script acesse um campo desse modelo.

Essa classe está disponível apenas nos aplicativos do App Maker. Veja a referência dos Apps Script para todas as outras classes gerais disponíveis nos aplicativos do App Maker.

Propriedades

Nome Tipo Descrição
autoIncrement bool Se o campo é incrementado automaticamente pelo banco de dados.
defaultValue Dynamic O valor padrão do campo. Pode ser nulo.
description string A descrição do campo. Pode ser nulo.
displayName string O nome de exibição do campo. Pode ser nulo.
key string A chave deste campo.
maxLength number O comprimento máximo do valor em caracteres. Pode ser nulo.
maxValue number|date O valor máximo do campo. Pode ser nulo.
minLength number O comprimento mínimo do valor em caracteres. Pode ser nulo.
minValue number|date O valor mínimo do campo. Pode ser nulo.
name string O nome do campo.
possibleValues Dynamic[] Exibe todos os valores possíveis do campo. Pode ser nulo.
regexp string Uma expressão regular à qual todos os valores válidos precisam corresponder. Pode ser nulo.
regexpError string A mensagem de erro para mostrar ao usuário se a expressão regular não corresponde à entrada do usuário. Uma ocorrência de '%s' na mensagem de erro será substituída pela entrada do usuário. Pode ser nulo.
required bool Se o campo é obrigatório.
type string O tipo do campo: String, Número, Data ou Booleano.
wholeNumber bool Se o número no campo é inteiro. Um número é inteiro se não contiver casas decimais significativas.

Relação

Essa classe representa um lado de uma relação do modelo especificado a outro no App Maker. Ela permite que um script acesse uma relação desse modelo.

Essa classe está disponível apenas nos aplicativos do App Maker. Veja a referência dos Apps Script para todas as outras classes gerais disponíveis nos aplicativos do App Maker.

Propriedades

Nome Tipo Descrição
ascending bool Se o campo "classificar por" do modelo final está classificado em ordem crescente.
count string A contagem de um modelo ("Um", "Muitos").
model ModelMetadata O modelo final de uma relação.
name string O nome final de uma relação.
owner bool Se o modelo final tem a relação.

Por exemplo, se uma "Fatura" tem os respectivos "Itens", então app.metadata.models.Items.relations.Invoice.owner seria true.

sortBy Field O campo pelo qual o modelo final é classificado. Pode ser nulo.

Transação

Fornece acesso à API Transaction no App Maker. Disponível apenas em aplicativos que têm pelo menos um modelo do Cloud SQL.

Propriedades

Nome Tipo Descrição
cloudSql CloudSqlTransaction Controla transações em modelos do Cloud SQL.
TransactionError function(message:String) Exceção que indica um erro de transação.

CloudSqlTransaction

Esse tipo permite que um script inicie, confirme, retroceda e verifique o status das transações do banco de dados nos modelos do Cloud SQL.

Propriedades

Nome Tipo Descrição
isolation IsolationLevel Enumeração de possíveis níveis de isolamento.
lockOnRead LockMode Enumeração de possíveis modos Lock On Read para definir via setLockOnRead().

Métodos

Nome Valor de retorno Descrição
isStarted() bool Se uma transação está atualmente em andamento.


    app.transaction.cloudSql.isStarted();
                    

start
level:IsolationLevel)
undefined Inicia uma transação. Lança um erro se outra transação já estiver em andamento.


    app.transaction.cloudSql.start(
    app.transaction.cloudSql.isolation.REPEATABLE_READ);
            

O parâmetro é opcional. READ_COMMITTED é o padrão se nenhum valor for passado.

commit() undefined Confirma a transação atual. Lança um erro se o aplicativo tentar confirmar antes de uma transação ser iniciada.


    app.transaction.cloudSql.commit();
            

rollback() undefined Reverte todas as alterações na transação atual e libera todos os bloqueios do banco de dados. Lança um erro se o aplicativo tentar reverter antes que uma transação tenha sido iniciada.


    app.transaction.cloudSql.rollback();
            

setLockOnRead(
lockMode:LockMode)
undefined Aplica o modo de bloqueio especificado para todas as leituras do banco de dados até que a transação seja concluída ou o modo de bloqueio seja alterado com o método.


    app.transaction.cloudSql.setLockOnRead(
    app.transaction.cloudSql.lockOnRead.UPDATE);

IsolationLevel

Enumeração de possíveis níveis de isolamento.

Propriedades

Nome Tipo Descrição
READ_UNCOMMITTED IsolationLevel A transação atual pode ver alterações não enviadas de outras transações. Saiba mais.
READ_COMMITTED IsolationLevel A transação atual pode ver alterações enviadas de outras transações. Saiba mais.
REPEATABLE_READ IsolationLevel A transação atual pode ver alterações enviadas de outras transações. Garante que todas as leituras repetidas de um registro retornem registros no mesmo estado. Saiba mais.
SERIALIZABLE IsolationLevel A transação atual é completamente isolada de outras transações. As transações são executadas sequencialmente. Saiba mais.

LockMode

Enumeração de possíveis modos de leitura de bloqueio (em inglês) para definir com setLockOnRead().

Propriedades

Nome Tipo Descrição
NO_LOCK LockMode Nenhum bloqueio aplicado. Modo padrão.
SHARE LockMode Outras transações podem ler dados bloqueados pela transação atual, mas não podem modificá-la.
UPDATE LockMode Outras transações não podem ler ou modificar dados bloqueados pela transação atual.