Para trabalhar com banco de dados no Magic xpi, utilizamos o Data Mapper. A partir dele podemos rodar scripts de inserts, updates, deletes ou selects. Nesse post veremos como executar stored procedures através do DataMapper.
O primeiro passo é arrastar um Data Mapper para a área de passo e clicar no botão “Configuration”.
Crie um “Destination” do tipo Database e clique em “Properties”.
Nota: Lembre-se que no destination podemos apenas executar updates, inserts ou deletes e no source apenas select.
No campo “DB Operation” escolha a opção Dynamic, depois clique no botão “SQL”.
Esta é a tela onde você vai inserir seus scripts.
Existem duas formas de trabalhar com procedures no Magic xpi:
1) Criando uma procedure no banco de dados e executando-a pelo Magic xpi:
2) Inserindo o script da procedure diretamente.
Porém, seja de uma maneira ou de outra, normalmente nós precisaremos passar parâmetros para as procedures.
No caso de estarmos apenas executando uma procedure criada no banco de dados temos duas opções:
1- Passar os parâmetros por varáveis de ambiente.
Fazendo desta forma não é necessária a configuração de um “source”, pois os valores dos parâmetros estão disponíveis nas variáveis de ambiente e a procedure será executada apenas uma vez.
2- Passando os parâmetros por Placeholders.
Agora podemos atribuir valores para os parâmetros da procedure dinamicamente.
A partir de um source, que pode ser um select em uma tabela, um XML, um arquivo FlatFile, variáveis ou até mesmo o resultado de uma procedure de consulta, faremos o mapeamento do “source” para os placeholders do “destination”.
Nota: O Magic xpi fará a execução da procedure de acordo com o número de registros trazidos no source e a cada execução passará valores diferentes aos placeholders(execução Dinâmica).
Quando um script de uma procedure é inserido diretamente no Magic xpi, podemos também usar os Placeholders e executar o script dinamicamente.
Da mesma forma, quando apenas executamos a procedure, também temos uma execução dinâmica quando inserimos o script diretamente.
Quando trabalhamos com procedures de select o procedimento é o mesmo, porém duas coisas mudam:
1) No campo “DB Operation” não temos a opção Dynamic, temos apenas a opção Select.
2) Para trabalhar com parâmetros, podemos usar somente variáveis de ambiente.
a-)Executando a procedure.
b-) executando o script.
Nota: As procedures usadas no source do Data Mapper SEMPRE devem retornar um select, conforme exemplo acima.