Referências Circulares em Componentes UniPaaS

Manoel Frederico da Silva / Product Manager & MAGIC Evangelist / Magic Software Brasil

Você já teve a vontade (ou necessidade) de criar uma estrutura de componentes em soluções UniPaaS, onde o CompA precisa acessar o CompB, e o CompB precisa acessar o CompA ?

Isso se chama “referência circular” e não é permitida no sistema de componentes (.ecf). Por definição, referências circulares significam algo que já começou errado.

Mas imagine uma situação mais ou menos assim:

Um componente “A” possui o cadastro de clientes, e um componente “B” possui os movimentos dos clientes. Do cadastro (em “A”) você quer ter um botão que acesse seus movimentos (em “B”). E dos movimentos (em “B”), um botão que permita acessar os clientes (em “A”).

Como conseguir isto sem ter de repetir o programa de cadastro ou de movimentos?

Simples:

1)      Crie um componente de recursos (CompX) com dois eventos públicos e expostos no MainProgram: Abrir Cadastros e Abrir Movimentos.

2)      No componente de cadastro (CompA), registre o CompX (CRR – SHIFT+F7) e no botão para acessar os lançamentos execute um RaiseEvent: Abrir Movimentos

3)      No componente de movimentos (CompB),  registre o CompX (CRR – SHIFT+F7) e no botão para acessar os cadastros execute um RaiseEvent: Abrir Cadastros

4)      Na aplicação “host”, registre o CompX (CRR – SHIFT+F7) e crie Handlers para os dois eventos expostos, no MainProgram: Abrir Cadastros e Abrir Movimentos. Neles, basta realizar as chamadas para os respectivos programas: CompA.Cadastros ou CompB.Lançamentos.

Neste link você pode baixar um projeto exemplo (UniPaaS 1.9g) com o que foi mostrado acima.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *