Olá,
Estou estudando como customizar o Adempiere.
Criei duas telas. Uma serve para cadastrar Candidatos a Vagas na empresa. A outra tela é somente um teste com um campo que faz referência a um registro de Candidato a Vaga.
Minhas tabelas ficaram assim:
CREATE TABLE candidato
(
candidato_id numeric(10) NOT NULL,
ad_client_id numeric(10) NOT NULL,
ad_org_id numeric(10) NOT NULL,
isactive character(1) NOT NULL DEFAULT 'y'::bpchar,
created timestamp without time zone NOT NULL DEFAULT now(),
createdby numeric(10) NOT NULL,
updated timestamp without time zone NOT NULL DEFAULT now(),
updatedby numeric(10) NOT NULL,
nome character varying(30)
)
CREATE TABLE candidato_refer
(
candidato_refer_id numeric(10) NOT NULL,
candidato_id numeric(10) NOT NULL, /** este campo deveria ser chave estrangeira para a PK da tabela acima **//
ad_client_id numeric(10) NOT NULL,
ad_org_id numeric(10) NOT NULL,
isactive character(1) NOT NULL DEFAULT 'y'::bpchar,
created timestamp without time zone NOT NULL DEFAULT now(),
createdby numeric(10) NOT NULL,
updated timestamp without time zone NOT NULL DEFAULT now(),
updatedby numeric(10) NOT NULL,
refer character varying(30)
)
Aí eu criei uma janela que cadastra informações na primeira tabela e outra janela para a outra tabela.
Meu problema está com o campo candidato_refer.candidato_id. Peguei como exemplo a tela de Pedido de Compra (Menu -> Da Requisição à Fatura -> Pedido de Compra), com o campo Parceiro de Negócios:
[attachment=1]Pedido de Compra.JPG[/attachment]
Quando eu clico no botão ao lado do campo, ele abre uma janela para pesquisa do Parceiro de Negócios:
[attachment=0]Informações do Parceiro de Negócios.JPG[/attachment]
Pesquisei dentro do Dicionário de Aplicação sobre como foi construída essa janela, e não encontrei em lugar nenhum alguma característica que informe ao sistema para criar o campo Parceiro de Negócios com esse detalhe do botão para abrir a tela de pesquisa.
No esquema do banco de dados, verifiquei que a tabela c_order tem uma foreign key para o campo c_bpartner_id:
...
CONSTRAINT cbpartner_corder FOREIGN KEY (c_bpartner_id)
REFERENCES c_bpartner (c_bpartner_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION DEFERRABLE INITIALLY DEFERRED,
...
Então para resumir, minhas dúvidas são as seguintes:
-
Como faço para criar um campo que referencie um campo de outra tabela, e na tela o campo tenha essa característica de exibir um botão que abra uma janela de busca, igual no exemplo do pedido de compra?
-
Como faço para criar chaves estrangeiras (foreign key) utilizando o dicionário de aplicação?
Obrigado