StrataFrame Forum

DDT - Ordem de criação das VIEWS e UDFs

http://forum.strataframe.net/Topic18281.aspx

By Rogerio Mauri - 8/3/2008

IVAN... Por gentileza, peço que faça a tradução deste tópico. Desde já, obrigado.

No DDT a ordem de publicação de VIEWS e UDFs funciona assim:

1o.) São criadas as VIEWS, ordenadas pelo campo [Priority].

2o.) São criadas as UDFs, ordenadas também pelo campo [Priority].

Ocorre, no entanto, que às vezes necessitamos referenciar uma UDF 'Scalar-valued' dentro de uma VIEW e como as VIEWs são construídas primeiro o 'update' do banco de dados retorna erro, pois a referenciada UDF ainda não existe. Resultado: ERRO e a VIEW também não é criada.

Para contornar essa situação, a ordem de criação (campo priority) precisa ser compartilhada entre VIEWS e UDFs. Por exemplo:

Priority 01 - cria a VIEW:  vw_TbDivida
Priority 02 - cria a UDF:    uf_ReferenciaDivida (que utiliza a view 'vw_TbDivida' para retornar uma informação qualquer - view do tipo scalar).
Priority 03 - cria a VIEW:  vw_TbDividaReferenciada (essa view faz uma chamada à UDF uf_ReferenciaDivida para retornar um campo customizado, segundo um parâmetro passado).

Isso exigirá uma mudança na maneira como o Strataframe DDT faz a publicação de 'views' e 'UDFs'. No entanto, a sequência correta na criação desses dois objetos dependentes garantirá pleno uso da potencialidade de recursos do SQL Server.

Aguardo seu retorno...

Rogério Mauri
Licitec Software
http://blog.licitec.com.br

By Ivan George Borges - 8/4/2008

Olá Rogério.

Você já baixou e instalou o último beta do SF 1.6.6 ?

Se não, aqui está o link:

http://forum.strataframe.net/FindPost18263.aspx

Nesta última versão, o DDT possibilita configurar prioridades. Então, se você setar prioridade 2, ela será instalada antes de algo de prioridade 3, e assim por diante.

Me diga depois se isto resolve seu caso.

Abraços.

By Rogerio Mauri - 8/4/2008

Ivan... Boa Tarde e grato pelo seu retorno.

De fato não atualizei para a versão 1.6.6 (beta). Estou aguardando a publicação final.

Quanto à prioridade de criação, a versão 1.6.5 já faz isso, mas dentro da própria categoria do objeto. Refiro-me, no entanto, a uma ordenação compartilhada entre os objetos SP, Views e UDFs.

Por exemplo:

- Prioridade 10 - Cria primeiro a VIEW "view_TbDivida"
- Prioridade 20 - Na sequência, cria uma UDF "uf_Teste"
- Prioridade 30 - Volta para as view e cria a VIEW "view_TbDivida2"
- Prioridade 40 - Cria uma SP "sp_Customizada"
- Prioridade 50 - Cria outra SP "sp_Customizada2"
- Prioridade 60 - Cria agora outra UDF "uf_Teste2"

E assim sucessivamente. Isso já está presente na versão 1.6.6?

Caso não esteja, recomendo essa importante mudança, pois sem essa condição não é possível customizar SPs, views e UDFs que fazem referência entre si.

Abraços.

By Ivan George Borges - 8/4/2008

De fato não atualizei para a versão 1.6.6 (beta). Estou aguardando a publicação final.

Só para te dar um toque, eu não esperaria por isto, pois esta versão beta já está bem testada, inclusive dentro das aplicações da MicroFour. Parece bastante seguro utilizar a versão 1.6.6 já neste momento.

E assim sucessivamente. Isso já está presente na versão 1.6.6?

Sim.

Abraços. Wink

By Rogerio Mauri - 8/4/2008

Ok Mestre...

Obrigado pelo suporte.

BigGrin

By Ivan George Borges - 8/4/2008

Legal.

Qualquer coisa, dá um toque.

Cool