4D v14 inclui novos eventos base local que se encontram no tema constantes Eventos da base.
Há novos eventos disponíveis nos eventos da base:
On after host database exit
On after host database startup
On before host database exit
On before host database startup
Estes eventos podem passar o controle ao recipiente que criamos inclusive antes de que se executem os métodos On Startup ou On Exit da base onde se encontra o recipiente.
Demos uma olhada rápida na estrutura. Temos nossa base e a pasta recipientes onde se encontra o componente. Vamos mudar o recipiente para adicionar os quatro eventos. Em Métodos, Métodos base = > Método base On Host, copiaremos o código que aparece na documentação, o que significa que os 4 eventos são visíveis aqui, e utilizam o método que criamos no recipiente indicando só o evento que está sendo executado.
Assim que estes eventos podem ser utilizados, por exemplo, para iniciar variáveis, recuperar arquivos, verificar a presença de um indicador ou de um arquivo, antes da abertura, depois da abertura, antes ou depois do encerramento, ou talvez para atualizar os arquivos, por exemplo. Fechemos o recipiente novo.
Agora a nível da base local, vamos a adicionar um par de coisas nos métodos base:
• No método On Startup, adicionamos uma alerta utilizando a alerta do recipiente para indicar que está sendo aberta a base local
• E no método base On Exit, indicamos também que a base local está sendo fechada.
Agora, se saímos e lançamos a primeira base de dados de novo, podemos ver o evento "on startup", ao sair o evento "on exit" quando a fechamos, mas não há rastro destes eventos que indicamos no recipiente. Por quê não? É uma questão de segurança. Se queremos executar eventos de recipientes, é obrigatório marcar a caixa que permite a execução do método evento On Event Host dos recipientes, que se encontra na página Segurança das Propriedades da base.
Assim em realidade é a base local a que permite aos recipientes executar os métodos em questão. Temos que fechar e abrir a base de novo para ver seu funcionamento. Assim que agora temos o evento "on before startup" do recipiente que se executa, “on startup” da base local, "on after host database startup" e logo, quando saímos, "on before exit" do recipiente, ainda que diz "host database" é o evento em questão pelo que em realidade é "on before exit" do recipiente, "on exit" da base local, logo, "on after exit" do recipiente.