A sacada de desenvolver uma linguagem de programação própria acrescentou alguns benefícios importantes para a TOTVS e suas soluções em software de gestão. A ADVPL – Advanced Protheus Language permite total domínio da provedora por sua tecnologia e maior velocidade de inovação.
Lançada em 1999, a ADVPL revolucionou o mercado de TI, tornando possível escrever o ERP TOTVS Protheus, hoje, um dos mais utilizados no Brasil. Uma de suas principais características é a flexibilidade, criando ferramentas totalmente personalizáveis, aumentando a aderência às rotinas de cada empresa, de forma individual e exclusiva.
Hoje existem mais de 90 módulos do TOTVS Protheus com mais de 30 milhões de linhas de códigos escritas em ADVPL. Essa facilidade proporcionada pela detenção da linguagem permite que a desenvolvedora implemente novas funcionalidades ou crie novos produtos, atendendo as demandas de seus clientes e do mercado, como integrações com portais, aplicativos e web services.
A linguagem de programação evoluiu do ADVPL ao TL++
Em 2019 a ADVPL evoluiu, passando a se chamar TL++ (TOTVS Language Plus Plus), com uma nova extensão tlpp e tipagem de variáveis que previnem erros de conversão de tipos, avisados no momento da compilação do código fonte.
A chegada do TL++ não descarta o legado da ADVPL e muito menos dos fontes prw, prg e prx, até porque um programa desenvolvido em TL++ consegue chamar funções em ADVPL e os em ADVPL, chamar os em TL++. Ambas utilizam C++, tanto para executar os códigos fontes no AppServer, como para mostrar a interface no SmartClient para usuários.
Com o TL++ a TOTVS ganhou um aumento significativo no limite de caracteres, saindo de 10, com a ADVPL, para 255, proporcionando liberdade de criação para os desenvolvedores e programadores. Também é possível realizar testes unitários pelo Unit Test Engine, trazendo mais flexibilidade para funções, classes e validação da porcentagem de cobertura de código.
Linguagens de programação mais utilizadas na TOTVS
Além da ADVPL e agora da TL++, a TOTVS também utiliza algumas linguagens de mercado, vindas de softwares adquiridos ao longo do tempo, como o RM desenvolvido em C#, Logix em 4GL e Datasul em Progress, HTML, PO-UI (Angular e Typescript).
Dentre as inúmeras linguagens de programação de mercado, as mais usadas pela TOTVS para desenvolvimento de produtos segmentados, incluindo o Fluig com o No-Code, são Java e C#.
Para o desenvolvimento de aplicativos híbridos, por exemplo, a TOTVS utiliza a linguagem Javascript, ou, dependendo da necessidade, linguagens próprias de IOS ou Android, como Swift e Kotlin.
Atualmente, tudo é pensado no desenvolvimento de soluções em nuvem, por isso, a TOTVS tem adotado o conceito de microsserviços, onde um produto pode ser criado em mais de uma linguagem.
Principais funções da ADVPL
A linguagem ADVPL conta com diversas funções pré-programadas necessárias para o desenvolvimento de aplicações. Essas funções são tão essenciais que chegam a ser consideradas mais importantes que os comandos.
Todas as funções padrão do AdvPL seguem a seguinte forma:
FUNÇÃO(<lista de argumentos>)
A Função leva o nome que a identifica, já a Lista de Argumentos são os argumentos definidos para a função, com valores separados por vírgulas, podendo ser números; caracteres; variáveis; expressões; datas; arrays; blocos de código, etc, por onde a função executará a operação e fornecerá um resultado.
Exemplos de principais funções ADVPL:
FUNÇÃO | DESCRIÇÃO | SINTAXE |
AllGroups | Informações do grupo de usuários | AllGroups( lAlter ) |
AllUsers | Informações do usuário | AllUsers( lSerie , lAlfa ) |
cUserName | Retorna o Nome do usuário corrente | cUserName |
FWGrpHor | Informações de restrição de horário do grupo | FWGrpHor(cGrpID) |
GrpRetName | Retorna o nome do grupo de usuários | GrpRetName ( cCodGrp ) |
PswAdmin | Verifica usuário no grupo de administradores | PswAdmin( cUser , cPsw , cId ) |
FwLibVersion | Função que retorna a versão da LIB | FwLibVersion() |
UsrExist | Verifica se o usuário existe | UsrExist( ) |
PswOrder | Seleciona ordem de pesquisa | PswOrder(nOrder) |
RetCodUsr | Retorna o código do usuário corrente | RetCodUsr() |
FwRulesDB | Descreve privilégios com ambiente no BD | FwRulesDB( <cCode> ) |
Há ainda funções de ações básicas, como por exemplo:
Função | Descrição |
posicione advpl | Função usada para posicionar uma outra tabela para coletar informações. |
transform advpl | Converte qualquer valor para uma string formatada. |
val advpl | Função para conversão de tipo. |
strtran advpl | Pesquisa e substitui caracteres de uma cadeia de caracteres. |
strzero advpl | Retorna uma string formatada, inserindo zeros à esquerda e / ou o símbolo decimal conforme informações do parâmetro. |
right advpl | Extrai uma parte de uma cadeia de caracteres a partir da sua última posição. |
left advpl | Retorna um determinado número da caracteres à esquerda de uma string. |
ascan advpl | Função que faz a busca de um elemento dentro de um Array. |
at advpl | Retorna a posição da primeira ocorrência de uma substring em uma string. |
len advpl | Retorna o tamanho de uma variável. |
Canais de conhecimento de ADVPL
Além desse artigo sobre ADVPL e suas funções, temos outros conteúdos que podem ajudar sua empresa a melhorar a performance do seu ERP TOTVS Protheus. Confira nossos vídeos no Youtube da CRM Services ou acesse a categoria Protheus para tirar mais dúvidas técnicas.
A CRM Services está no mercado de consultoria em software de gestão há mais de 11 anos, referenciada como especialista nas soluções Protheus, RM e Fluig da TOTVS, atuando com os melhores e mais experientes profissionais, capazes de ajudar sua empresa a extrair o máximo do potencial da sua solução.