Conhecendo a tabela de relacionamentos do Protheus (SX9)

Hoje vou mostrar para vocês a tabela de relacionamentos do Protheus.

Como alguns devem saber, o Protheus não existe integridade relacional no SGBD mas sim na própria aplicação, e com isso existe a tabela SX9 (só não sei se o termo é usado em relação a famosa gíria X9 de dedo duro rs).

Essa tabela, além de poder auxiliar programadores a construir consultas e customizações com amarrações, também é bastante utilizada ao ativar a Integridade Referencial no ERP.

No nosso caso, vamos ver apenas os campos interessantes dela para analisarmos e criarmos nossas customizações. Ah e a título de curiosidade, na minha base zerada da 12.1.25, ela tinha quase 15 mil registros (14.959 para ser mais preciso).

Então vamos lá:

  • X9_DOM – Tabela de Origem
  • X9_CDOM – Tabela de Destino
  • X9_EXPDOM – Campo(s) da tabela de Origem
  • X9_EXPCDOM – Campo(s) da tabela de Destino
  • X9_LIGDOM – 1 ou N no relacionamento da tabela de Origem
  • X9_LIGCDOM – 1 ou N no relacionamento da tabela de Destino

Esses são os principais campos que podemos avaliar em nossas customizações, então se por exemplo, você estiver relacionando a tabela SA1 (Clientes) com a SC5 (Pedido de Venda), você vai ver que existem 3 relacionamentos e assim adaptar na sua necessidade ou consulta SQL.

Se o seu dicionário estiver no banco, abaixo uma query de consulta da SX9:

SELECT
	X9_DOM AS [ORIGEM],
	X9_CDOM AS [DESTINO],
	X9_EXPDOM AS [EXPRESSAO ORIGEM],
	X9_EXPCDOM AS [EXPRESSAO DESTINO],
	X9_LIGDOM + ' para ' + X9_LIGCDOM AS [RELACIONAMENTO]
FROM
	SX9990
WHERE
	D_E_L_E_T_ = ' '
ORDER BY
	ORIGEM,
	DESTINO

Exemplo de query com os relacionamentos

Abaixo deixo dois links de apoio no TDN sobre o assunto caso queira se aprofundar.

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

Deixe uma resposta