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 sobre a 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. Deste modo, uma Base de Dados, assim que adicionada à plataforma GoGest, passa a utilizar esse Catálogo na interligação com a plataforma GoGest.
A hes-inovação, ou um Agente GoGest, pode criar/adaptar um Catálogo para casos mais específicos, e posteriormente, solicitar 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 com segurança, sem que exista uma ligação remota para acesso direto às tabelas da Base de Dados do ERP.
Para aceder a esta área, basta ir a:
Adicionar campos a cada Entidade incluída no Catálogo em utilização.
(Re)Definir as instruções SQL que operam sempre que ocorra uma alteração de registos (Novo / Editar / Apagar).
(Re)Definir as instruções que operam sempre que ocorra uma utilização dos Métodos definidos.
A plataforma GoGest permite adicionar novos campos para cada entidade do catálogo em utilização, denominados 'campos de utilizador'.
Para encontrar os campos de utilizador, basta aceder às configurações de administração e no separador dos catálogos, selecionar campos de utilizador.
Pode aceder à sua utilização da seguinte forma:
- Aceder às configurações de administração e selecionar campos de utilizador na seção dos catálogos.
- Será apresentada a lista com todos os campos de utilizador, na qual poderão ser feitas operações, tais como adicionar um novo registo, atualizar ou adicionar aos favoritos.
Nesta imagem pode verificar-se uma breve representação de alguns campos de utilizador.

Campos de utilizador
Observação: Para adicionar/visualizar/editar um campo de utilizador, deve selecionar primeiro a entidade pretendida na respetiva listagem.
Neste ecrã poderá visualizar todos os detalhes de utilizador disponíveis para edição/adição.

Detalhes dos campos do utilizador
Observação: Para editar um campo de utilizador basta entrar no modo Editar Registo através do ícone

Ao entrar no modo de Editar Registo
passa a estar disponível para editar todos os campos de utilizador.

Editar Campos
Entidade Base
Representa a entidade base em letras maiúsculas.Entidade
Representa a entidade em letras minúsculas.Nome do campo
Representa o nome do campo de utilizador a criar.Descrição
Descrição do campo de utilizador.Expressão
Expressão SQL que define o valor do campo. Ao preencher o campo expressão, após guardar, o campo de utilizador passa a estar ativo.
Deve ter em atenção que uma Expressão SQL incorreta, resultará num erro, detetável apenas quando tentar visualizar uma listagem que inclua esse campo, ficando esta bloqueada enquanto o erro permanecer.
Observação: Para redimensionar o campo 'expressão' clique no canto

Ordem
Representa a ordem na qual os campos aparecerão nos detalhes da listagem.Inactivo
Desativa o campo, deixando de aparecer nos detalhes da listagem.
Para poder finalmente utilizar o novo campo, é necessário fazer Login novamente. Terá então o seu campo na listagem corretamente.
Tipo
Tipo do campo de utilizador.Tamanho
Tamanho do campo.Precisão
Precisão do campo.
Excluir Mobile
Faz com que não apareça na versão Mobile.Obrigatório
Torna o campo obrigatório de se preencher.Aviso
Aviso de erro.

Aviso: Campos obrigatórios por preencher
Documentos
Este campo apenas fica disponível nas séries do documentos indicadas, se o campo for vazio fica disponível para todas. Indicar as diferentes séries de documentos separadas por virgula. Apenas válido para as entidades GGDOCINT, GGDOCFACT e GGRECIBOS.
Valores por defeito
Valor por definição do campo.Lista de valores
Lista de valores por definição.Multiselect
Faz com que a lista permita multiselecção.
Se pretender utilizar um multiselect terá de se selecionar essa opção e ter uma listagem de valores, que pode ser feita através de uma expressão sql de exemplo: select nome from cl order by nome. Irão aparecer os nomes da tabela cliente, ordenados alfabeticamente.
Será obtido então, o seguinte resultado...

Exemplo de um MultiSelect com SQL
Tipo
Proteção de dados.
Após definir os campos de utilizador, os mesmos passam a estar disponíveis na vista de detalhes da entidade, através do separador campos utilizador.
Assim como também passam a estar disponíveis na criação de listagens de ecrã da respetiva entidade.
Para aceder às listagens, deve-se aceder em ERP Online ao separador Gestão.
Listagem completa

Listagem
Detalhes dos campos de utilizador
No separador campos de utilizador da listagem, encontram-se os detalhes dos respetivos campos criados.
Pode aceder a múltiplas funcionalidades para criar ou editar um novo registo.

Detalhes
Deve ter em atenção que ao adicionar um campo de utilizador, caso a Expressão SQL introduzida falhe, sempre que tentar aceder ao campo de utilizador resultará numa falha na listagem dos campos.
Erro a produzir a lista, derivado do erro da expressão SQL.

Dados indisponíveis na tabela
Erro na listagem dos campos.

Registo não disponível
Se quiser saber quais foram os erros, poderá aceder à sua caixa de notificações no separador Erro SQL ERP e receber á uma mensagem automática com o erro que foi detetado.

Notificações
Sempre que ocorre uma Operação que altere um registo, a plataforma GoGest utiliza as instruções SQL, definidas nas Operações dos Catálogos, para guardar a alteração ao registo na Base de Dados do ERP.
A utilização das Operações :
- Da mesma forma que nos Campos de Utilizador é permitido adicionar e definir como se obtém o valor de campos extra, quando estes são editáveis, deve ser definido as instruções SQL que permitam guardar essas alterações na Base de Dados do ERP.
- Necessidade de alterar/adicionar instruções SQL ao Catálogo em utilização.
Os Catálogos em utilização têm definido instruções SQL para três tipos de Operações que alteram os registos de cada Entidade:
- Novo
- Editar
- Apagar
No entanto, a plataforma GoGest permite ainda que seja alterada a instrução SQL para cada Operação utilizando:
- Pré-instruções (Pré)
- Substituições
- Pos-instruções (Post)
- Validações
Neste ecrã poderá visualizar todas as Entidades presentes no Catálogo em utilização para as quais é possível configurar as Operações.

Observação: Para adicionar/visualizar/editar uma Operação, deve selecionar aqui primeiro a Entidade que pretende adicionar/visualizar/editar o campo. (ver tópico Detalhes Operação)
Neste ecrã encontra organizado por separadores, as várias Operações disponíveis para a Entidade selecionada.
Os separadores sem instruções, ao serem selecionadas, apresentam apenas o campo de texto vazio. Nesse caso serão aplicadas as instruções SQL contidas no Catálogo.
Os separadores com instruções adicionadas ao Catálogo, ao serem selecionados, apresentam a instrução SQL no campo de texto.

- 1.Apagar / Editar / Novo - Nova instrução. Quando definida substitui, antes da execução, a instrução existente no Catálogo pela nova instrução.
- 2.Apagar (Post) / Editar (Post) / Novo (Post) - Instruções que serão adicionadas depois da instrução existente no Catálogo
- 3.Apagar (Pré) / Editar (Pré) / Novo (Pré) - Instruções que serão adicionadas antes da instrução existente no Catálogo.
- 4.Validar Apagar / Validar Edição / Validar Novo - Validações verificadas , antes de enviar a operação SQL a ser executada.
Observação:
- O separador Operações não tem conteúdo.
- Os restantes separadores disponibilizam um campo de texto, para construção de instruções SQL.
- Para alterar as instruções terá de entrar em modo de edição através do ícone(ver tópico Editar Operações)


Ao entrar no modo de Edição passam a estar disponível para edição todos os separadores. Para que uma instrução passe a ser utilizada, basta preencher o campo de texto da respetiva Operação e clicar em Gravar.
Deve ter em atenção que uma instrução SQL incorreta, resultará num erro, detetável apenas quando a Operação definida for executada.

- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
Neste separador pode indicar as instruções SQL que pretende que sejam executadas, na Base de Dados do ERP, sempre que se apague um registo da Entidade selecionada (ex: Apagar Client).
Ter em atenção que ao introduzir uma instrução SQL neste separador, esta Operação irá sobrepor-se à Operação Apagar do Catálogo. Para adicionar instruções SQL às existentes no Catálogo, deve utilizar os separadores Apagar (Pré) e/ou Apagar (Post).

Observação: Ao clicar sobre
será copiado para a caixa de texto uma instrução SQL apenas de exemplo (igual para todas as Entidades).

Neste separador pode indicar as instruções SQL que pretende que sejam executadas, na Base de Dados do ERP, sempre que se edite um registo da Entidade selecionada (ex: Editar Client)
Ter em atenção que ao introduzir uma instrução SQL neste separador, esta Operação irá sobrepor-se à Operação Editar do Catálogo. Para adicionar instruções SQL às existentes no Catálogo, deve utilizar os separadores Editar (Pré) e/ou Editar (Post).

Observação: Ao clicar sobre
será copiado para a caixa de texto uma instrução SQL apenas de exemplo (igual para todas as Entidades).

Neste separador pode indicar as instruções SQL que pretende que sejam executadas, na Base de Dados do ERP, sempre que se crie um novo registo da Entidade selecionada (ex: Novo Client)
Ter em atenção que ao introduzir uma instrução SQL neste separador, esta Operação irá sobrepor-se à Operação Novo do Catálogo.
Para adicionar instruções SQL às existentes no Catálogo, deve utilizar os separadores Novo (Pré) e/ou Novo (Post).

Neste separador pode indicar as instruções SQL que pretende que sejam adicionadas depois da Operação Apagar. Garantindo assim também a ordem de execução, na Base de Dados do ERP, sempre que se apague um registo da Entidade selecionada (ex: Apagar Client).

Observação: Ao clicar sobre
será copiado para a caixa de texto uma instrução SQL apenas de exemplo (igual para todas as Entidades).

Neste separador pode indicar as instruções SQL que pretende que sejam adicionadas depois da Operação Editar. Garantindo assim também a ordem de execução, na Base de Dados do ERP, sempre que se edite um registo da Entidade selecionada (ex: Editar Client).

Observação: Ao clicar sobre
será copiado para a caixa de texto uma instrução SQL apenas de exemplo (igual para todas as Entidades).

Neste separador pode indicar as instruções SQL que pretende que sejam adicionadas depois da Operação Novo. Garantindo assim também a ordem de execução, na Base de Dados do ERP, sempre que se crie um novo registo da Entidade selecionada (ex: Novo Client)

Observação: Ao clicar sobre
será copiado para a caixa de texto uma instrução SQL apenas de exemplo (igual para todas as Entidades).

Neste separador pode indicar as instruções SQL que pretende que sejam adicionadas antes da Operação Apagar. Garantindo assim também a ordem de execução, na Base de Dados do ERP, sempre que se apague um registo da Entidade selecionada (ex: Apagar Client).

Observação: Ao clicar sobre
será copiado para a caixa de texto uma instrução SQL apenas de exemplo (igual para todas as Entidades).

Neste separador pode indicar as instruções SQL que pretende que sejam adicionadas antes da Operação Editar.Garantindo assim também a ordem de execução, na Base de Dados do ERP, sempre que se edite um registo da Entidade selecionada (ex: Editar Client).

Observação: Ao clicar sobre
será copiado para a caixa de texto uma instrução SQL apenas de exemplo (igual para todas as Entidades).

Neste separador pode indicar as instruções SQL que pretende que sejam adicionadas antes da Operação Editar. Garantindo assim também a ordem de execução, na Base de Dados do ERP, sempre que se crie um novo registo da Entidade selecionada (ex: Novo Client).

Observação: Ao clicar sobre
será copiado para a caixa de texto uma instrução SQL apenas de exemplo (igual para todas as Entidades).

Neste separador pode indicar as instruções SQL para validação de campos sempre que se apague um registo da Entidade selecionada, protegendo a execução das instruções SQL na Base de Dados do ERP, (ex: Apagar Client)
Quando Apagar um registo, sempre que a instrução SQL de validação fizer uma inserção numa "@errorTable", a execução da Operação Apagar será interrompida, consoante o tipo de mensagem:

Observação: Ao clicar sobre
será copiado para a caixa de texto uma instrução SQL apenas de exemplo (igual para todas as Entidades)

Neste separador pode indicar as instruções SQL para validação de campos sempre que se edite um registo da Entidade selecionada, protegendo a execução das instruções SQL na Base de Dados do ERP, (ex: Editar Client)
Quando editar um registo, sempre que a instrução SQL de validação fizer uma inserção numa "@errorTable", a execução da Operação Editar será interrompida, consoante o tipo de mensagem:

Observação: Ao clicar sobre
será copiado para a caixa de texto uma instrução SQL apenas de exemplo (igual para todas as Entidades)

Neste separador pode indicar as instruções SQL para validação de campos sempre que se crie um novo registo da Entidade selecionada, protegendo a execução das instruções SQL na Base de Dados do ERP, (ex: Novo Client)
Quando criar um novo registo, sempre que a instrução SQL de validação fizer uma inserção numa "@errorTable", a execução da Operação Novo será interrompida, consoante o tipo de mensagem:

Observação: Ao clicar sobre
será copiado para a caixa de texto uma instrução SQL apenas de exemplo (igual para todas as Entidades)

Neste exemplo a instrução SQL em Validar Novo verifica algumas condições para o campo N.º Contribuinte, antes das Operações Novo / Novo (Post) / Novo (Pré) serem executadas.

Neste exemplo o N.º Contribuinte pode originar dois tipos de validações:
- Erro - impossível efetuar as Operações Novo / Novo (Post) / Novo (Pré).
- Aviso - possibilidade de ignorar o alerta e efetuar as Operações Novo / Novo (Post) / Novo (Pré).

@errorTable(msgError) Exemplo em que o campo vazio origina uma mensagem de ERRO

@errorTable(msgWarning) Exemplo em que o campo origina uma mensagem de AVISO
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

A plataforma GoGest inclui alguns Métodos, passíveis de reconfigurar, para que a utilização da aplicação seja mais flexível e eficiente.
- GetCustomerSales - Devolve informação sobre as vendas dos últimos 3 meses, Ano Atual e Ano Anterior de um dado Cliente;
- GetProductPrice - Devolve informação de Preço do Artigo por Cliente, Documento, Quantidade, Data, Armazém;
Utilização dos Métodos em:
Ao aceder à configuração dos Métodos inicialmente, enquanto não configurar nenhum Método, terá uma tabela sem registos. Nesse caso os Métodos utilizados serão os predefinidos nos Catálogos.

Pode reconfigurar os métodos clicando no ícon de Novo Registo para criar um Método. Após criar um método, o mesmo passará a estar disponível na tabela de Métodos.

Observação: Para visualizar/editar um Método, deve selecionar aqui primeiro o Método que pretende visualizar/editar. (ver tópico Detalhe Operações)
Devolve informação sobre o stock atual do produto selecionado. O Método deve ser definido de modo a devolver os seguintes campos:
- stock - Stock total do artigo
- armazem - Identificação do armazém
- stockarm - Stock existente por ármazem
/** Exemplo de um Método SQL para GetActualStock**/
Query aqui
Query aqui

Exemplo de um Método SQL para GetActualStock
Devolve informação sobre as vendas a um dado Cliente. O Método deve ser definido de modo a obter os seguintes campos:
- total3m - Total de vendas nos últimos 3 meses.
- totaln - Total de vendas no presente ano.
- totaln1 - Total de vendas no último ano.

Exemplo de um Método SQL para GetCustomerSales
Devolve informação dos últimos Preços de venda de um dado Artigo a um cliente. O Método deve ser definido de modo a obter os seguintes campos:
- ggft_nmdoc - Nome do Documento
- ggft_fno - Nº do Documento
- ggft_datadoc - Data do Documento
- ggfi_qtt - Quantidade vendida do Artigo no Documento
- ggfi_epv - Preço de Venda Unitário no Documento
- ggfi_desc1 - Desconto 1 atribuído ao Artigo no Documento
- ggfi_desc2 - Desconto 2 atribuído ao Artigo no Documento
- ggfi_desc3 - Desconto 3 atribuído ao Artigo no Documento
- ggfi_desc4 - Desconto 4 atribuído ao Artigo no Documento
- ggfi_desc5 - Desconto 5 atribuído ao Artigo no Documento
- ggfi_desc6 - Desconto 6 atribuído ao Artigo no Documento

Exemplo de um Método SQL GetLastPrice
Devolve informação de Preço do Artigo por Cliente, Documento, Quantidade, Data, Armazém. O Método deve ser definido de modo a obter os seguintes campos:
- vunit - Valor Unitário do Artigo
- desc1 - Desconto 1 atribuído ao Artigo no Documento
- desc2 - Desconto 2 atribuído ao Artigo no Documento
- desc3 - Desconto 3 atribuído ao Artigo no Documento
- desc4 - Desconto 4 atribuído ao Artigo no Documento
- desc5 - Desconto 5 atribuído ao Artigo no Documento
- desc6 - Desconto 6 atribuído ao Artigo no Documento
- ivaincl - Identifica se o valor unitário inclui o IVA
- datavalini - Data de Validade Inicial
- datavalfim - Data de Validade Final
- prioridade - Prioridade
- no - Nº Cliente
- tabela - Tabela onde foi obtido o Preço
- iva - Taxa de IVA
- tabiva - Tabela de IVA

Exemplo de um Método SQL para GetProductPrice
Devolve Sugestões de Produtos para um dado Cliente. O Método deve ser definido de modo a obter os seguintes campos:
- ggpn_ref - Nome do Documento
- ggpn_fdata - Data do Documento
- ggpn_qtt - Quantidade Vendida
- ggpn_epv - Preço de Venda Unitário
- ggpn_desc1 - Desconto 1
- ggpn_desc2 - Desconto 2
- ggpn_desc3 - Desconto 3
- ggpn_desc4 - Desconto 4
- ggpn_desc5 - Desconto 5
- ggpn_desc6 - Desconto 6

Exemplo de um Método SQL para GetSuggestions

O Método GetCustomerSales será chamado sempre que visualizar os detalhes de um cliente, na secção vendas, como mostra a figura.

O Método GetProductPrice será chamado sempre que adicionar um Artigo a um Documento. Como mostra a figura.

O Método GetSuggestions será chamado sempre que o utilizador carregar sobre a opção Sugestões para adicionar um artigo a um Documento, como mostra a figura.

Neste ecrã poderá visualizar para o Método selecionado:
Neste separador estão disponíveis as instruções SQL para definição do Método SQL.
Assim que é criado um Método, apesar de inicialmente estar vazio (sem instruções SQL), o Método passa a ser utilizado em substituição do Método predefinido no Catálogo.
Por isso, sempre que tenha um campo Método SQL por preencher deve defini-lo. Ou se pretender voltar a usar o Método predefinido no Catálogo, eliminando o Método em

As instruções SQL pode utilizar também os valores definidos pelo utilizador para alguns parâmetros, que estão identificados no separador Parametros.
O Método SQL deve devolver os campos definidos conforme a informação contida no separador Instruções.

Observação: Para alterar o Método SQL terá de entrar em modo de edição através do ícone
(ver tópico Editar Método)

Neste separador estão identificados os parâmetros, com valor definido em execução pelo utilizador, disponíveis para a construção do Método SQL.
Os seus valores correspondem aos valores selecionados pelo utilizador, de forma a poder filtrar a informação consoante, por exemplo, o cliente, a referência do produto, a quantidade selecionado.
Para aceder ao valor do Parametro deve-se colocar um @ antes, por exemplo:
@no - contem o valor do n.º Cliente selecionado.

Neste separador está disponível a informação sobre:
- Finalidade do Método SQL
- Campos a devolver pelo Método - O Método SQL deve devolver os campos renomeados para o nome esperado.
