Campos possuem a opção de disparar um evento após a alteração de valor do mesmo.

SourceKey: é a key do Business Delegate.
Function Name: é o nome da função que será chamada dentro do Business Delegate.

194194

Adicionar Botão para o evento: caso esta opção esteja ativa, um botão é adicionado no canto esquerdo do campo, e o evento será disparado apenas no clique deste botão.

Icone: caso a opção Adicionar Botão para o evento esteja ativa, você poderá escolher um ícone para este botão.

texto da tooltip: é o texto que aparecerá ao passar o mouse por cima do botão.

191191

Abaixo, um exemplo de Business Delegate com um evento.

603603

Como alterar atributos

Quando um evento é disparado, este acionará o método escolhido no business delegate. este método recebe como primeiro parâmetro, o parâmetro data, que contem todos os dados do registro, e é trafegavel em todas as camadas da aplicação.

function eventoAlteracaoAltura(data){
  if(data.altura < 1.6)
    data.tamanho = 'P';
}

Atributos "fantasma"

Caso necessite fazer algum tipo de controle em tela utilizando verificação de parâmetros, poderá a qualquer momento, criar para atributos "fantasma" dentro do parâmetro data

Exemplo:

function eventoAlteracaoIdade(data){
  if(data.idade >= 65) //caso o paciente seja idoso, preencher o questionario
    data.mostrarQuestionario = true;
  else
    data.mostrarQuestionario = false;
}

function evento(data){
  if(data.mostrarQuestionario === true)
        //faça algo
}

Retornar mensagem

é possível retornar uma mensagem após o evento. Esta mensagem pode ser uma label, ou um texto fixo:

function eventoAlteracaoIdade(data){
  if(data.idade >= 65){ //caso o paciente seja idoso, preencher o questionario
    data.mostrarQuestionario = true;
    
    return 'Por Favor, precisamos que preencha o formuário abaixo'
  }
  else {
    data.mostrarQuestionario = false;
    
    return 'label.meuform.noquestion';
  }
    
}

é possível tambem, exibir uma mensagem de erro, utilizando um throw

function eventoAlteracaoIdade(data){
        if(data.idade<18){
        throw 'label.meuform.error.age';
    }
}