# Catálogos

Os Catálogos são usados para definir a comunicação/ligação entre a plataforma GoGest e as Base de Dados dos ERPs.

Um Catálogo define a ligação entre as Entidades GoGest (GG\*\*\*\*\*) com as tabelas da Base de Dados do ERP indicado.

Permite fazer uma associação direta entre campos individualmente, ou se pretender, definir a constituição de campos da Entidade GoGest, através de operações em SQL na Base de Dados do ERP.

Desta forma é possível indicar quais os campos, para cada tabela, que pretendemos interligar com a plataforma GoGest. Assim como agrupar informação de várias tabelas numa única Entidade GoGest.

A plataforma GoGest utiliza, de forma automática, um Catálogo Geral por cada versão de ERP disponível. Uma Base de Dados, assim que adicionada à plataforma GoGest, passa a utilizar esse Catálogo na interligação com a plataforma GoGest.

Um agente pode criar um Catálogo para casos mais específicos, para que esse Catálogo seja associado à Base de Dados que pretenda.

Os Catálogos são enviados para a máquina servidora da empresa onde o GoGest Agent está instalado. Assim, desde que a máquina servidora da empresa esteja online, é possível interagir com a informação do ERP através dos Catálogos. Sem que exista uma ligação remota e direta às tabelas da Base de Dados do ERP.       &#x20;



Para aceder a esta área, basta ir a:

&#x20;[Menu de Navegação](../interface-web-edition/menu-de-navegacao) ⟶ secção Administração ⟶ Catálogos ⟶ Gestão de Catálogos.

## Gestão de Catálogos

&#x20;Neste ecrã poderá criar um novo [Catálogo](https://mariaadriana.gogest.pt/helpagentes/CatalogosAgente.html) e visualizar todos os Catálogos criados.

![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMWUU0Yhe5X9vLYWIF%2F-MVMb0aYCWvxcNV1DoO5%2Fimage.png?alt=media\&token=619163fb-5eac-4b5d-8b1c-158e4050807e)

1. **Criar novo Catálogo** (ver tópico Criar Catálogo).
2. **DB Type** - Tipo de Base de Dados a que o Catálogo se refere (ex: GSVCWIN, PHC, PRIMAVERA, SAGE)
3. **Versão ERP** - Versão ERP da Base de Dados à qual o Catálogo se refere.
4. **Base Dados** - Nome da Base de Dados à qual o Catálogo se refere.
5. **Nome** - Nome do Catálogo.
6. **Descrição** - Descrição do Catálogo que pode ser usado para ajudar a identificar a sua utilização.
7. **Data Inicio**
8. **Data Fim**

{% hint style="info" %}
Observações:  Ao clicar sobre uma das linhas da tabela de Catálogos obterá um novo ecrã com todos os detalhes do Catálogo. (ver tópico [Detalhes Catálogo](#detalhe-catalogo))
{% endhint %}

## Vista de Detalhes do Catálogo

Neste ecrã tem disponível toda a informação do Catálogo. Aqui pode:

* Criar um Novo Catálogo;
* Editar o Catálogo selecionado;
* Remover o Catálogo selecionado;



A informação deste ecrã está organizada pelos seguintes tópicos:

* [Dados Principais](#dados-principais)&#x20;
* [Painel Entidades/Tabelas GoGest ](#painel-de-entidades-gogest)
* [Painel Configurações Entidade](#painel-configuracoes-entidade)&#x20;
* [Configuração da Tabela](#table-configuration-configuracao-da-tabela)&#x20;
* [Configuração dos Campos](#table-configuration-configuracao-de-campos)&#x20;
* [Operações SQL (NEW / EDIT / DEL ...)](#operacoes-sql-del-edit-new)



![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMWUU0Yhe5X9vLYWIF%2F-MVMcDd9HG4q5-7C_IP2%2Fimage.png?alt=media\&token=c872c277-28bc-4d81-a18f-0ed94db33051)

![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMWUU0Yhe5X9vLYWIF%2F-MVMcI-KU2MwLRyedEsd%2Fimage.png?alt=media\&token=bd77c4c6-8518-44a7-ab43-640dc356af55)



**Acções**

1. **Criar Novo Catálogo** - ver tópico [Criar Catálogo](https://mariaadriana.gogest.pt/helpagentes/CriarCatalogoAgente.html) |  **Editar Catálogo** - Para entrar em modo de edição, permitindo fazer alterações ao Catálogo.  **Eliminar Catálogo** - Elimina o Catálogo, sem possibilidade de retorno.

{% hint style="info" %}
&#x20;Em alternativa poderá desativar apenas a utilização do Catálogo no separador [Dados Principais](https://mariaadriana.gogest.pt/helpagentes/DetalhesCatalogoAgente.html#Dados%20Principais)  em: ![](https://mariaadriana.gogest.pt/helpagentes/lib/Registo%20Inactivo.png)
{% endhint %}

####

#### Dados Principais

Descrição de Campos:

* Versão do ERP com o qual o Catálogo vai interagir.
* Base de Dados da empresa para a qual se destina o Catálogo. Esta opção indica também o nome da empresa, facilitando a sua identificação.
* Inactivo, se esta opção estiver selecionada, o Catálogo continuará guardado, mas não estará em utilização.

![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMd3zlN_9eLDmfgudW%2F-MVMlDgTXuoFhQoqpSQ4%2Fimage.png?alt=media\&token=5da6fb64-17d3-4bc8-8f05-04016d1148e6)



#### Painel de Entidades GoGest

Neste painel pode selecionar/definir:

* Entidade GoGest (GG\*\*\*\*\*\*) - clicando sobre um separador com o seu nome, todas as configurações que se seguem passam a dizer respeito à Entidade selecionada.
* Incluir Entidade - permite escolher quais as Entidades que o Catalogo vai incluir.  As Entidades incluídas no Catálogo aparecem a cor verde.
* Descrição Base da Entidade - esta descrição encontra-se bloqueada, pois é uma identificação comum na plataforma GoGest.
* Descrição Entidade - esta descrição permite uma descrição distinta por cada Catálogo.

![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMd3zlN_9eLDmfgudW%2F-MVMlYV24ou0oT8xXu4j%2Fimage.png?alt=media\&token=d27035c3-c4f0-49eb-af18-633cbf27ac7f)



#### Painel Configurações Entidade

Neste painel pode selecionar/definir:

* Table Configuration - separador para definir como o GoGest recebe a informação da Entidade/Tabela selecionada no painel anterior, apresentado dois painéis:
  * Configurações de Tabela - painel para identificar as tabelas do ERP necessárias;
  * Configurações de Campos - painel para indicar como os campos da Entidade do Catálogo obtêm o seu valor no ERP.   &#x20;
* Operações SQL  (DEL / EDIT / NEW...) - separadores que definem como o GoGest opera nas alterações de informação na Base de Dados do ERP. &#x20;
* Filter - corresponde à cláusula WHERE a aplicar sobre a instrução SQL gerada com base na configuração das tabelas em Table Configuration, poderá ser deixada em branco se não for necessária.

![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMl_WzOija621BClB6%2F-MVMm5SBiQpcUA2Fxsks%2Fimage.png?alt=media\&token=50da6fd2-8793-42ab-8a7e-3684f811d836)



#### Table Configuration - Configuração da Tabela

Este painel indica as Tabelas da Base de Dados do ERP que a Entidade necessita para obter a informação.

Descrição dos campos:

* Principal - indica qual a tabela independente das restantes;
* Ordem - em caso de dependência entre as tabelas, indica a ordem da dependência;
* Tabela - nome da tabela da Base de Dados do ERP;
* Descrição - auxilia na identificação da tabela;
* Expressão Join - instrução SQL para efetuar a ligação à(s) tabela(s). Será utilizada na cláusula FROM nas consultas SQL.

Exemplo de duas configurações de tabela distintas

![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMm7U9CcnNwBLwClmT%2F-MVMm_zUmCSO9AsgLdSm%2Fimage.png?alt=media\&token=7c3fc9ff-2fde-4fcc-8896-3c51a05ecfef)

![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMm7U9CcnNwBLwClmT%2F-MVMmd6ev4eELUmwfNiP%2Fimage.png?alt=media\&token=2027e82d-163f-4b40-b4d8-77d8b8ac4e75)



#### Table Configuration - Configuração de Campos

Este painel tem discriminada a associação para leitura entre campos da Entidade e os campos da tabela da Base de Dados do ERP.

Descrição dos campos:

* **Campo GG** - campo da Entidade GoGest. Contem a descrição do campo e o \[nome do campo].
* **Expressão** - expressão SQL para obter o valor do campo.
  * Pode ser uma associação direta do tipo "tabela.campo", usando tabela(s) identificada(s) na Configuração de Tabela, utilizada na cláusula SELECT da na consulta SQL;
  * Pode ser uma consulta SQL completa, devendo estar entre parêntesis ();

![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMm7U9CcnNwBLwClmT%2F-MVMn-k08ZD0ZYvCMjov%2Fimage.png?alt=media\&token=9830df97-c08a-41eb-b450-58c2766cc5ba)

{% hint style="info" %}
**Observação:**  Para redimensionar este campo clique no canto ![](https://mariaadriana.gogest.pt/helpagentes/lib/canto.png) e arraste.
{% endhint %}

* **Descrição** - Descrição do campo da Entidade.
* **Tipo** - Tipo do campo da Entidade.
* **Tamanho**&#x20;

Exemplo de algumas configurações de campos

![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMm7U9CcnNwBLwClmT%2F-MVMnNy2wzklT8X4ReeW%2Fimage.png?alt=media\&token=579a12be-3b2f-40c9-97bf-76743462e211)



#### Operações SQL - (DEL/EDIT/NEW...)

{% hint style="warning" %}
Se no painel anterior de Configuração de Campos é registado como a plataforma GoGest recebe a informação das Tabelas do ERP.

Por outro lado aqui deve identificar as instruções SQL necessárias para enviar a informação e refletir na Base de Dados do ERP as alterações efetuadas através da plataforma GoGest.

Se estas Operações não forem configuradas, apesar de poder alterar visualmente os registos na plataforma GoGest. Ao guardar, os registos manter-se-ão inalterados.
{% endhint %}

Estes separadores disponibilizam um campo de texto, para construção de instruções SQL que implicam alterações na Base de Dados do ERP.

Para as seguintes situações:

* **VALIDATEDEL / VALIDATEEDIT / VALIDATENEW** - validações verificadas antes de enviar a Operação SQL a ser executada;
* **PREDEL / PREEDIT/ PRENEW** - instruções com necessidade de execução antes da Operação SQL principal;
* **DEL / EDIT / NEW** - instruções para a Operação SQL principal; &#x20;
* **POSTDEL / POSTEDIT / POSTNEW** - instruções com necessidade de execução após a Operação SQL principal;



#### VALIDATE(DEL/EDIT/NEW)

Estes separadores podem ser utilizados para validar campos antes da Operação SQL ser executada, para cada situação que implique uma alteração nos dados da Base de Dados do ERP:

* **VADILATENDEL** - validações que ocorrem antes de executar uma Operação que apague um registo (DEL).
* **VALIDATEEDIT** - validações que ocorrem antes de executar uma Operação que edite um registo (EDIT).
* **VALIDATENEW** - validações que ocorrem antes de executar uma Operação que crie um novo registo (NEW).

{% hint style="info" %}
&#x20;Deve ter em atenção que uma instrução SQL incorreta, [resultará num erro](https://mariaadriana.gogest.pt/helpagentes/DetalhesCatalogoAgente.html#erros%20de%20instrucao), detetável apenas quando a Operação definida for executada.
{% endhint %}

Exemplo de um VALIDATENEW onde são verificadas algumas condições para o campo N.º Contribuinte:

![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMm7U9CcnNwBLwClmT%2F-MVMoe59fpR5P26S5nwh%2Fimage.png?alt=media\&token=ee84ee87-e28c-4dc7-9dc9-dc28d848be3a)

Neste exemplo o N.º Contribuinte é protegido por duas formas:

* ERRO - impossível efetuar a operação SQL.
* AVISO - possibilidade de ignorar e efetuar a operação SQL.



![@errorTable(msgError)  Exemplo em que o campo vazio origina uma mensagem de ERRO](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMm7U9CcnNwBLwClmT%2F-MVMomcHprnGBfBxcy8n%2Fimage.png?alt=media\&token=5bd3ede0-c8b5-4a99-8bbe-fd46a52a06e7)

![@errorTable(msgWarning)  Exemplo em que o campo origina uma mensagem de AVISO](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMm7U9CcnNwBLwClmT%2F-MVMorcAcwOOJXHj4LN_%2Fimage.png?alt=media\&token=53253a74-63fb-4b6e-a55c-5409b36167f2)



#### PREDEL / PREEDIT / PRENEW

Nestes separadores deve indicar as instruções SQL que pretende que sejam adicionadas antes da Operação principal (DEL / EDIT / NEW).

Garantindo assim a ordem de execução, na Base de Dados do ERP.

{% hint style="warning" %}
Deve ter em atenção que uma instrução SQL incorreta, resultará num erro, detetável apenas quando a Operação definida for executada.
{% endhint %}



#### DEL/ EDIT/ NEW

Nestes separadores deve indicar as instruções SQL que pretende que sejam executadas na Base de Dados do ERP, sempre que ocorra uma alteração de registo na plataforma GoGest.

{% hint style="warning" %}
Deve ter em atenção que uma instrução SQL incorreta, resultará num erro, detetável apenas quando a Operação definida for executada.
{% endhint %}

Deve utilizar estes separadores como Operações principais, e utilizar apenas os "PRE"  e "POST" quando existir a necessidade de garantir a ordem de execução para as instruções SQL.

Exemplo de uma Operação NEW:

![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMm7U9CcnNwBLwClmT%2F-MVMpbITngamsqwkrzJy%2Fimage.png?alt=media\&token=3004f336-5a75-48ae-8a78-d44f9d31078b)



#### POSTDEL/ POSTEDIT/ POSTNEW

Nestes separadores deve indicar as instruções SQL que pretende que sejam adicionadas depois da Operação principal (DEL / EDIT / NEW).

Garantindo assim a ordem de execução, na Base de Dados do ERP.

{% hint style="warning" %}
Deve ter em atenção que uma instrução SQL incorreta, resultará num erro, detetável apenas quando a Operação definida for executada.
{% endhint %}



#### Filter

Corresponde à cláusula WHERE a aplicar sobre a instrução SQL gerada com base na configuração das tabelas em Table Configuration, poderá ser deixada em branco se não for necessária.

![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMm7U9CcnNwBLwClmT%2F-MVMqaofOVMzkbfyLeF2%2Fimage.png?alt=media\&token=1c4c8f8c-4ddd-4779-b456-62a68afb0525)



#### Erros provocados por instruções SQL que falhem na execução.

Deve ter em atenção que ao adicionar uma Operação, caso a instrução SQL introduzida falhe, sempre que tentar efetuar a Operação resultará numa mensagem de erro. Ficando indisponível a sua realização até que o erro seja corregido.

![Exemplo de um erro ao tentar efetuar uma Operação que inclui uma instrução SQL incorreta](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMm7U9CcnNwBLwClmT%2F-MVMr4--20Y2_yhmnYVT%2Fimage.png?alt=media\&token=9c99c22e-6085-47f2-a51a-5b0bc94e284b)

## Criar Catálogo

Em [Gestão de Catálogos](#gestao-de-catalogos), ao clicar no ícon de Novo Registo aparecerá um ecrã para introdução apenas dos Dados Principais sobre o Catálogo. Após introduzir os dados principais deve clicar em **Gravar** para que as Entidades disponíveis para a versão do ERP escolhida fiquem visíveis.

De seguida deve clicar no ícon de Editar para entrar em modo de edição e preencher todos os campos necessários. (ver tópico [Detalhe Catálogo](#vista-de-detalhes-do-catalogo))

![](https://2247253371-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVGIIL_RtIfR2xKo9Gf%2F-MVMrbaA5nCwIJxUptoz%2F-MVMtVoD9l7ffrvyP3vK%2Fimage.png?alt=media\&token=a9f10f96-bae4-498f-bf1f-411250c187eb)

Descrição de campos:

* Nome do Catálogo;
* Versão do ERP com o qual o Catálogo vai interagir;
* Base de Dados da empresa para a qual se destina o Catálogo. Esta opção indica também o nome da empresa, facilitando a sua identificação;
* Inactivo, permite interromper a sua utilização;\
