O AdvPL (Advanced Protheus Language) é uma linguagem de programação padrão xBase (Clipper, Visual Objects e depois Fivewin) com comandos, funções, operadores, estruturas de controle de fluxo e palavras reservadas que permite o desenvolvimento de programas seguidos do paradigma de orientação a objetos ou procedural.
O AdvPL é uma linguagem de programação criada em 1994 para o desenvolvimento de sistemas ERP do grupo TOTVS.
Quando compilados, todos os arquivos de código fonte tornam-se unidades de inteligência básicas, chamadas de APO´s (Advanced Protheus Objects). Esses APO´s são mantidos em um repositório e carregados dinamicamente pelo servidor de aplicação (TOTVS | Application Server) para a execução. No entanto, não existe linkedição ou união física do código compilado a um determinado ambiente ou aplicação, o que permite executar funções criadas em AdvPL em qualquer ponto do ambiente ERP.
O compilador e o interpretador da linguagem AdvPL é o próprio servidor de aplicação (Application Server), e existe um ambiente visual para desenvolvimento integrado (Development Studio) onde o código-fonte pode ser criado, compilado e depurado.
Os programas desenvolvidos na linguagem AdvPL, podem conter comandos ou funções de interface com o usuário com as seguintes características:
- Programação com interface própria com o usuário
Os programas com interface própria com o usuário são desenvolvidos para serem executados através do terminal remoto, o . O é a aplicação, desenvolvida pela TOTVS, encarregada da interface e da interação com usuário, ou seja, todo o processamento do código fonte em AdvPL e o acesso ao banco de dados. Já o gerenciamento das conexões é efetuado pelo o TOTVS | Application Server.
O TOTVS | Application Server é o principal meio de acesso a execução de rotinas desenvolvidas em AdvPL no sistema de gestão . Através desta aplicação os códigos fontes, com ou sem interface com o usuário, são executados. No entanto, nesse tipo de desenvolvimento, são considerados apenas os programas que realizam algum tipo de interface remota utilizando um protocolo de comunicação do sistema.
- Programação sem interface própria com o usuário
A rotinas criadas sem interface, tem uma utilização mais específica do que um processo adicional ou relatório. Essas rotinas não tem interface com usuário através do e qualquer tentativa (como a criação de uma janela padrão) ocasionará uma exceção em tempo de execução. Desta forma, essas rotinas são apenas processos ou Jobs executados no TOTVS | Application Server. No entanto, a interface fica a cargo das aplicações externas, desenvolvidas em outras linguagens, responsáveis por iniciar os processos no servidor através dos meios disponíveis de integração e conectividade no sistema.
Ao utilizar um meio de conectividade, as rotinas desenvolvidas são subcategorizadas da seguinte forma:
- Programação por processos
As rotinas desenvolvidas em AdvPL podem ser iniciadas como processos individuais (sem interface), no TOTVS | Application Server, por outra rotina através de funções ou automaticamente na inicialização do TOTVS | Application Server (quando configurado). - Programação de RPC
A programação de RPC – Remote Procedure Call (Chamada de Procedimentos Remota) é realizada por bibliotecas de funções disponíveis no sistema (uma API de comunicação), que permite executar rotinas escritas em AdvPL diretamente no TOTVS | Application Server em modo blind (sem interface). Com isso, o TOTVS | Application Server pode executar rotinas em AdvPL em outros servidores através da conexão TCP/IP direta utilizando o conceito de RPC. - Programação Web
O TOTVS | Application Server pode ser executado como servidor Web respondendo as requisições HTTP. No momento dessas requisições, é possível executar rotinas escritas em AdvPL como processos individuais, enviando o resultado das funções como retorno das requisições para o cliente HTTP (como, por exemplo, uma browser de internet). No entanto, qualquer rotina escrita em AdvPL que não contenha comandos de interface pode ser executada através de requisições HTTP. Pois, o TOTVS | Application Server permite compilar arquivos HTML que contenham código AdvPL embutido. Os chamados arquivos AdvPL ASP, para criação de páginas dinâmicas. - Programação TelNet
Programação TelNet faz parta da gama de protocolos TCP/IP que permite a conexão a um computador remoto através de uma aplicação cliente desse protocolo. O TOTVS | Application Server emula um terminal TelNet, através da execução de rotinas escritas em AdvPL, ou seja, rotinas AdvPL cuja interface final será um terminal TelNet ou coletor de dados móvel.