Ir para o conteúdo

Função de Tempo de Execução mvSQL - CALLER()

Resumo

As colunas da linha atual podem ser disponibilizadas para os objetos de dados abaixo. Esta função pode então acessar esses valores em vários locais.

Caller() pode ser usado em expressões em regras CRUD em eventos, manipuladores de sucesso ou manipuladores de erros. Quando a função Caller() é usada em um manipulador de sucesso ou erro, a ação procurará um determinado campo na regra de ação a partir da qual está sendo executada. Quando a função Caller() é usada em uma regra de ação, ela analisa os valores dos campos do registro no objeto de negócios no qual o evento está sendo executado. Consulte o Exemplo de uso com manipulador de sucesso para esclarecimentos.

Novidade no Vinyl 3.3, as funções de tempo de execução podem retornar mais que uma string se um parâmetro de tipo for especificado.

Nota

Esta função mvSQL só funcionará em regras CRUD, e não com outros objetos de dados criados no Vinyl.

Sintaxe

CALLER(<name> [, datatype>])

Parâmetros

Nome

Uma string representando o nome do critério solicitado.

Tipo de Dados

Tipo de dados, string é padrão, opcional. Tipos de dados suportados:

  • Sequência (padrão)
  • Numérico
  • UUID

Devoluções

As funções de tempo de execução sempre retornam uma string SQL. Eles não retornam NULL. Em vez disso, eles retornam um valor “vazio”. O parâmetro type determina qual valor vazio é retornado:

  • Uma String vazia retorna ''
  • Um retorno numérico vazio '0' em 3.2, 0 em 3.3
  • Um UUID vazio retorna '00000000-0000-0000-0000-000000000000' em 3.2, uuid('00000000-0000-0000-0000-000000000000') em 3.3

Observações

O CALLER() função sempre retorna uma string SQL.

Exemplos

Exemplo de Segmentação para Outra Tabela

  • Uma linha da tabela Cliente possui um evento Maiúsculas direcionado a outra tabela.

Esta regra poderia ser criada:

SELECT UPPER(CALLER('CustomerName')) as UppercasedName FROM CustomerArchive

O que seria avaliado em tempo de execução para:

SELECT UPPER('John Doe') as UppercasedName FROM CustomerArchive

Exemplo de Uso com Manipulador de Sucesso

  • O Business Object '123' possui um Evento denominado 'event'
  • 'evento' tem uma ação do tipo regra com a regra 'abc'
  • 'abc' possui um evento Success Handler, onde Action do tipo Rule possui a regra 'def'
  • 'def' tem um Chamador de Expressão('uuid')
  • Caller('uuid') tem como alvo o PK da Tabela de Destino para 'def' com 'bind' como o tipo de Destino
  • 'uuid' de Caller('uuid') existe apenas por nome em 'abc', não no Business Object '123'
  • No cenário apropriado, o Success Handler é acionado e atualiza com êxito o registro apropriado na Tabela de Destino de 'def' de acordo com a Regra