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 dentro de Eventos, Manipuladores de Sucesso ou Manipuladores de Erro. Quando a função Caller() é usada em um Manipulador de Sucesso ou Erro, a Ação procurará um determinado campo da Regra de Ação da qual está sendo executada. Quando a função Caller() é usada em uma Regra de Ação, ela procura valores de campo do registro no Objeto de Negócio no qual o Evento está sendo executado. Veja o Exemplo de Uso com Manipulador de Sucesso para esclarecimento.
Funções de tempo de execução podem retornar mais de 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 em App Builder.
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:
- String (padrão)
- Numérico
- UUID
Devoluções¶
Funções de tempo de execução sempre retornam uma string SQL. Elas não retornam NULL. Em vez disso, elas retornam um valor "vazio". O parâmetro type determina qual valor vazio é retornado:
- Uma String vazia retorna
''
- Um Numeric vazio retorna
'0'
- Um UUID vazio retorna
uuid('00000000-0000-0000-0000-000000000000')
Observações¶
O CALLER()
A função sempre retorna uma string SQL.
Exemplos¶
Exemplo de Segmentação de Outra Tabela¶
- Uma linha da tabela Customer tem um evento Uppercase que tem como alvo 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 Objeto de Negócios '123' tem um Evento chamado 'event'
- 'event' tem um tipo de Regra Ação com a Regra 'abc'
- 'abc' tem um Evento de Manipulador de Sucesso, onde Ação do tipo Regra tem Regra 'def'
- 'def' tem uma Expressão Caller('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 pelo nome somente em 'abc', não no Objeto de Negócios '123'
- No cenário apropriado, o Manipulador de Sucesso dispara e atualiza com sucesso o registro apropriado na Tabela de Destino de 'def' de acordo com a Regra