Desenvolvimento de Sistemas para Automação Comercial

Voltar

Aba PascalScript — Código em Tempo de Execução

O Pascal Script (originalmente criado pela RemObjects) é uma engine de scripting. Em termos práticos, ele permite que o seu sistema execute código Pascal em tempo de execução, a partir de um texto armazenado no banco de dados, sem precisar recompilar o .exe. Para um ERP, isso abre as portas para regras de negócio dinâmicas e validações customizadas por cliente.



TPSScript — O Motor Principal

  • É o coração da aba. É nele que você joga o seu código fonte em formato de texto (String), compila em tempo de execução e manda executar. Ele gerencia as variáveis locais do script e o retorno da execução.

    Comparação com o Firebird: É como uma Stored Procedure do Firebird, mas que roda no lado do cliente (Lazarus). A lógica fica armazenada no banco (como texto num campo BLOB), mas é interpretada e executada pelo Pascal Script no executável.

  • TPSScriptDebugger — Depuração de Scripts em Produção

    Permite que você crie um ambiente de depuração dentro do seu próprio sistema. Se um script der erro no cliente, você pode usar esse componente para inspecionar em qual linha o erro ocorreu — sem precisar ir pessoalmente até o cliente.


A Família TPSImport_* — Tradutores de Bibliotecas

  • Quando o TPSScript roda um código, ele roda dentro de uma "caixa de areia" (sandbox) isolada e burra. Por padrão, um script não sabe o que é um TStringList, um TDataSet ou um TButton. Para que o script consiga interagir com o Lazarus, você precisa "importar" essas bibliotecas para ele.

    Pense nos importadores como "dicionários de tradução": eles ensinam o Pascal Script a falar a linguagem do Lazarus.


Cenários Práticos em ERP/PDV

  • Cenário 1 — Regras Fiscais Dinâmicas

    A legislação tributária no Brasil muda toda hora. Em vez de entupir o seu TDataModule de IFs complexos que exigem recompilação e atualização no cliente toda semana, você guarda a fórmula de cálculo em um campo BLOB no Firebird.

    O sistema lê esse texto, joga no TPSScript e pede o resultado. Se o governo mudar a regra de partilha ou substituição tributária de um estado, o suporte altera o texto no banco e o sistema já calcula certo imediatamente — sem recompilar, sem ir ao cliente.

  • Cenário 2 — Validação Customizada por Cliente

    O Cliente "A" quer bloquear a venda se o cliente tiver um título vencido há mais de 5 dias. O Cliente "B" só quer que avise. O Cliente "C" quer bloquear se for mais de 10 dias E o limite de crédito for menor que R$ 1.000,00.

    Em vez de colocar dezenas de if (ConfigClienteA) no código, você cria um evento "OnBeforePost" que executa um script salvo no banco do cliente. Cada cliente tem sua própria regra customizada escrita em Pascal Script, rodando sem poluir o código fonte do executável principal.