Minimum requirements:
- .NET Framework 4.7.2
- Database in SQL Server 2016 or above
- Sage 2021 version or above
Introdução
O SmartTools é um produto abrangente, com diversos tipos de micro produtos, validações, rotinas etc. um autentico canivete suiço.
Manual de instalação
O processo de instalação da extensibilidade é bastante simples.
Pedimos ao utilizador que siga os passos abaixo indicados para instalar a extensibilidade SmartTools.
Para a utilização da extensibilidade a base de dados deve correr numa versão SQL Server 2016 ou superior.
Passo 1 – Instalação da extensibilidade
Executar o exe de instalação do produto como administrador.

Passo 2 – Configurar o Sage
Abrir o BackOffice do Sage > Clicar no botão do menu > Clicar no botão “Personalização” > Clicar no botão “Parametrizações funcionais”
Ao abrir a janela dos “Parâmetros”, clicar no botão “Integração de Dados”. 
No sub-menu “Extensibilidade” preencher o campo “Ponto de entrada para a classe ISageExtender:” com o seguinte texto sem aspas.
“SmartDigit.SmartTools.Sage50c”

Alterar a opção “Carrega o módulo da extensibilidade em:” para a adequada.
Deve agora clicar no botão “Fechar e gravar” deverá depois reiniciar o Sage para as configurações serem aplicadas.
Manual de Configuração
A extensibilidade foi desenvolvida com o foco de ser simples e intuitiva, no entanto abaixo pode encontrar as descrições das funcionalidades.
O SmartTools é uma ferramenta poderosa, quem vem colmatar algumas falhas que o sage tem.
Uma das funcionalidades do produto, é a validação de campos.
Alguns exemplos de uso
Nao deixar gravar um documento caso algo nao esteja de acordo
Nao deixar gravar uma ficha de cliente caso o telefone nao esteja preenchido
Dar uma mensagem ao fazer um documento caso o cliente tenha artigos por entregar
Estes são alguns exemplos da funcionalidade do produto, visto ser uma ferramenta dinâmica conseguimos validar qualquer campo.
Para configurar uma ferramente basta ir SmartApps-> Ferramentas

Dentro das ferramentas podemos criar uma ferramenta do tipo Logs

Descrição: Descricao da ferramenta criada
Tipo: Neste exemplo é logs
Ativo: se está ou nao ativa a ferramente
Event:Onde é para fazer a validação, caso seja na gravação então por norma será sempre OnValidating
Entity Onde é para executar, em que tabela, neste exemplo Customer (Clientes)
Query: query que vai fazer a validação
Mensagem: Mensagem a mostrar caso o retorno da query seja true
Mostrar mensagem: Se mostramos a mensagem
Mandatorio: Se é obrigatorio
Neste exemplo acima a ferramenta criada vai verificar ao gravar um cliente se o email está preenchido, caso nao esteja aparece a mensagem “Por favor preencha o email” e nao deixa gravar o cliente até o mesmo estar preenchido
Criada a ferramenta podemos então validar a mesma, caso seja criado um cliente sem email vai mostrar a seguinte mensagem

Caso tenhamos dificuldade a saber os campos a validar na query, podemos sempre ativar a opção “registar objetos do evento” na criação da ferramenta. dessa forma ao gravar na etidade criada registamos todo o objeto na tabela ux_sd_logs.
Em alternativa mas pode nao ser tão perceptível visto existirem centenas de campos, podemos carregar no botão “propriedades” na criação da ferramenta, para pesquisarmos a variável pretendida

Alguns Exemplos para poderem auxiliar nas vossas validações
- Validar desconto da família do artigo, caso seja superior bloquear (caso esse desconto venha de campanha o Sage não tem isso em conta nem valida. com o smarttools tal validacao é possivel)

Evento: OnValidation
Entity: SaletransactionDetail
Query: select case when #DiscountPercent# > (select f.MaximumDiscountAllowed from Item i inner join Family f on f.FamilyID=i.FamilyID where itemid=’#ItemID#’) then 1 else 0 end
Mensagem:Desconto Maior que o permitido