Pesquisando um Elemento em um Array Usando Bloco de Código com aScanX em ADVPL

Pesquisando um Elemento em um Array Usando Bloco de Código com aScanX em ADVPL

2 minutos A função aScanX em ADVPL percorre um array procurando por um valor especificado e para fazer essa busca essa função utiliza um bloco de código. Ela é uma das funções de manipulação de array em ADVPL.     Sintaxe: aScanX(aDest,bPesq,nIni,nQtd)   Parâmetro(s):   Retorno:     Exemplo da função aScanX em ADVPL:  No código ADVPL acima nós passamos para a função aScanX o array aLingProg e uma expressão de busca com o bloco código onde aScanX percorre todo o array aLingProg e Continue lendo

Atualizando o Conteúdo de um Parâmetro do Sistema(SX6) de uma Filial com PutMVFil em ADVPL

Atualizando o Conteúdo de um Parâmetro do Sistema(SX6) de uma Filial com PutMVFil em ADVPL

1 minuto A função PutMVFil em ADVPL atualiza o conteúdo de um parâmetro do sistema(SX6) de uma determinal filial informada. Ela é uma das Funções de Parâmetros do Sistema(SX6) em ADVPL.      Sintaxe: PutMVFil(cParSX6,xCont,cFil)   Parâmetro(s):   Retorno:   Exemplo da função PutMVFil em ADVPL:       Bem, finalizamos mais um post aqui do blog, espero que tenha entendido o conteúdo sobre a função PutMVFil. Qualquer dúvida deixe seu comentário abaixo ou nos envie um e-mail para adiliocosta@protheusadvpl.com.br. Nos ajude compartilhando esse Continue lendo

Atualizando o Conteúdo de um Parâmetro do Sistema(SX6) com PutMV em ADVPL

Atualizando o Conteúdo de um Parâmetro do Sistema(SX6) com PutMV em ADVPL

1 minuto A função PutMV em ADVPL atualiza o conteúdo de parâmetro do sistema(SX6) informado. Elá  é uma das Funções de Parâmetros do Sistema(SX6) em ADVPL.     Sintaxe: PutMV(cParSX6,xCont)   Parâmetro(s):   Retorno:   Exemplo da função PutMV em ADVPL: Bem, finalizamos mais um post aqui do blog, espero que tenha entendido o conteúdo sobre a função PutMV. Qualquer dúvida deixe seu comentário abaixo ou nos envie um e-mail para adiliocosta@protheusadvpl.com.br. Nos ajude compartilhando esse conteúdo nos grupos de Protheus e ADVPL/TLPP que Continue lendo

Como Entrar Com Datas Diferentes Usando SIGAMDI no TOTVS Protheus

Como Entrar Com Datas Diferentes Usando SIGAMDI no TOTVS Protheus

1 minuto Olá, no post de hoje iremos aprender como entrar com datas diferentes usando SIGAMDI no TOTVS Protheus.     Quando entramos no TOTVS Protheus utilizamos o Programa Inicial SIGAMDI para abrir mais de uma aba, tipo um navegador web. Existem situações onde precisamos entrar em abas com datas diferentes, seja pra lançar um título retroativo ou algo similar. Por padrão o TOTVS Protheus vem com a opção de alterar datas no SIGAMDI desabilitado, assim o campo de data vem desabilitado para alteração Continue lendo

Quebrando um Texto e Transformando em um Array com Separa em ADVPL

Quebrando um Texto e Transformando em um Array com Separa em ADVPL

1 minuto Quebrando um Texto e Transformando em um Array de acordo com o Identificador passado com Separaem ADVPL     A função Separa em ADVPL quebra um texto de acordo um identificador passado no parâmetro e transforma esse texto em um array, onde cada texto quebrado vira um elemento desse array.  Ela é uma das funções de manipulação de string em ADVPL.    Sintaxe: Separa(cTexto,cQuebra,lVazia)   Parâmetro(s): Retorno: Exemplo da função Separa em ADVPL:   É isso aí, finalizamos aqui o post aqui Continue lendo

Obtendo a Quantidade de Linhas de uma String ou Campo Memo com MLCount em ADVPL

Obtendo a Quantidade de Linhas de uma String ou Campo Memo com MLCount em ADVPL

2 minutos A função MLCount em ADVPL retorna a quantidade linhas de uma String com várias linhas ou campo memo, para essa contagem essa função considera um número máximo de letras por linha, tamanho de tabulação e quebras de linhas(CRLF).  Ela é uma das funções de manipulação de string em ADVPL.    Sintaxe: MLCount(cTexto,nLinTam,nTabTam,lQuebra)   Parâmetro(s): Retorno: Exemplo da função MLCount em ADVPL:     É isso aí, finalizamos aqui o post aqui do Blog ProtheusAdvpl. Caso tenha ficado alguma dúvida deixe seu comentário Continue lendo

Obtendo o Último Dia do Mês de uma Data com LastDate em ADVPL

Obtendo o Último Dia do Mês de uma Data com LastDate em ADVPL

1 minuto A função LastDate em ADVPL retorna o último dia do mês de uma data informada no parâmetro. Ela é uma das funções de manipulação de data e hora em ADVPL. Essa função pode ser muito útil em uma situação onde queremos obter a quantidade restante de dias de um mês.     No momento em que criamos esse post a data atual é 26/07/2025. Assim para sabermos quando dias restam para finalizar o mês de julho utilizaremos a função LastDate(dDataBase) que retorna Continue lendo

Retornando Informações de uma Data com LastDay em ADVPL

Retornando Informações de uma Data com LastDay em ADVPL

2 minutos A função LastDay em ADVPL retorna  uma data de acordo com os parâmetros informados, podendo ser o último dia útil do mês, o primeiro dia útil do mês, último dia útil do mês ou o próximo dia útil após a data informada. Ela é uma das funções de manipulação de data e hora em ADVPL.     Essa função pode ser muito útil em uma situação onde queremos obter a quantidade restante de dias de um mês. No momento em que criamos Continue lendo

Como Configurar o Debug no TOTVS VSCode com Protheus WebApp(Via Navegador)

Como Configurar o Debug no TOTVS VSCode com Protheus WebApp(Via Navegador)

2 minutos Olá, no post de hoje iremos aprender como configurar o debug(depuração) no TOTVS VSCode com o Protheus WebApp(via navegador).     Com a mudança do SmartClient Desktop para WebApp(via navegador) o processo de debug de fontes no TOTVS VSCode mudou e iremos ver em um passo a passo como fazer essa configuração.   Para iniciar essa configuração clique na aba de debug Executar e Depurar conforme a imagem abaixo:   Depois clique na engrenagem conforme a imagem abaixo:   Depois na parte Continue lendo

Obtendo o Email do Usuário Logado no Protheus com UsrRetMail em ADVPL

Obtendo o Email do Usuário Logado no Protheus com UsrRetMail em ADVPL

1 minuto A função UsrRetMail obtém o email do usuário do Protheus logado no momento da execução de uma determinada rotina. Ela é uma das funções de manipulação de usuários em ADVPL.     Sintaxe: UsrRetMail(cCodUsr) Parâmetros: Retorno: Exemplo da função UsrRetMail em ADVPL: Bem, finalizamos mais um post aqui no blog. Espero que tenha entendido, se tiver ficado alguma dúvida deixe seu comentário ou nos mandar um e-mail para adiliocosta@protheusadvpl.com.br. Grande abraço e fica com Deus.     Links de referência: https://tdn.totvs.com/display/public/framework/UsrRetMail  

Como Atualizar a Biblioteca DBAPI do TOTVS DBAccess no TOTVS AppServer

Como Atualizar a Biblioteca DBAPI do TOTVS DBAccess no TOTVS AppServer

1 minuto Olá, hoje iremos ver como atualizar a biblioteca DBAPI do TOTVS DBAccess no TOTVS AppServer.     O arquivo dbapi.dll é uma biblioteca de integração do TOTVS AppServer com o TOTVS DBAccess, ou seja, é uma biblioteca que faz a comunicação do servidor TOTVS AppServer com o TOTVS DBAccess. Para atualizar essa biblioteca iremos seguir os seguintes procedimentos: 1. Pare os serviços do TOTVS Protheus;2. Na pasta do executável do TOTVS, faça um(backup) do arquivo dbapi.dll renomeando para um nome qualquer, dbapi_bkp.ll.3. Baixe o pacote mais Continue lendo

Como Resolver a Mensagem Usuário sem Acesso via SmartClient HTML

Como Resolver a Mensagem Usuário sem Acesso via SmartClient HTML

menos de 1 minuto Olá, no post de hoje iremos aprender Como Resolver a Mensagem Usuário sem Acesso via SmartClient HTML.     Ao tentar entrar no TOTVS Protheus Web podemos receber a seguinte mensagem:   Para resolver esse problema iremos entrar no módulo Configurador(SIGACFG) do TOTVS Protheus: Depois de entrar no Configurador(SIGACFG) iremos em Usuário->Senhas->Usuários e selecionamos o usuário que está com esse problema de acesso:   Na próxima tela iremos em Restrições de acesso->Acessos e marcar a opção 189 Acesso via SmartClient Continue lendo

Criando Travas de Execução de Rotinas com LockByName em ADVPL

Criando Travas de Execução de Rotinas com LockByName em ADVPL

2 minutos A função LockByName em ADVPL é utilizada para criar travas / bloqueios (semáforo) de rotinas no servidor de licenças ou em disco, com ela podemos travar uma função, evitando que ela seja executada enquanto estiver sendo usada. Ela é uma das funções de Controle de Semáforo em ADVPL.      Sintaxe: LockByName(cSem,lEmp,lFil)   Parâmetro(s): Retorno: Exemplo da função LockByName em ADVPL: Observação: A função LockByName trabalha em conjunto com a chave SpecialKey, que pode ser informada no arquivo de configuração do servidor no Continue lendo

Escrevendo e Salvando um Arquivo Texto com MemoWrite em ADVPL

Escrevendo e Salvando um Arquivo Texto com MemoWrite em ADVPL

1 minuto Olá, a função MemoWrite tem como objetivo escrever e salvo um arquivo texto em ADVPL. Ela é uma das funções de manipulação de arquivos, discos e IO em ADVPL.     Sintaxe: MemoWrite(cLocal,cTexto)   Parâmetros(s):     Retorno: Exemplo da função MemoWrite em ADVPL: É isso aí, finalizamos aqui o post, caso tenha ficado alguma dúvida deixe seu comentário ou nos envie um e-mail para adiliocosta@protheusadvpl.com.br, até um próximo post, grande abraço e fica com Deus. Link de referência no TDN da Continue lendo

Verificando se um Registro Existe em uma Outra Tabela com ExistCPO em ADVPL

Verificando se um Registro Existe em uma Outra Tabela com ExistCPO em ADVPL

2 minutos  A função ExistCPO no ADVPL verifica se um registro passado como parâmetro existe em uma outra tabela. Ela é uma das funções de validação no ADVPL.      Sintaxe: ExistCPO(cAlias,xExp,nInd)     Parâmetro(s): Retorno: Obs.:  As funções ExistCpo e ExistChav tem algumas semelhanças. Porém, enquanto que a função ExistChav verifica uma chave única, ou seja, verifica se um código já existe no próprio arquivo de dados que está sendo manipulado, a função ExistCpo verifica uma chave estrangeira, ou seja, verifica se um código existe Continue lendo

Ponto de Entrada MA103BUT – Incluindo Opções no Menu do Documento de Entrada (MATA103)

Ponto de Entrada MA103BUT – Incluindo Opções no Menu do Documento de Entrada (MATA103)

2 minutos O Ponto de Entrada MA103BUT é chamado a partir da rotina de Documento de Entrada(MATA103), permite ao usuário adicionar opções(novas rotinas) na barra de menus EnchoiceBar.     Esse ponto de entrada é muito útil em situações onde precisamos chamar alguma outra rotina de dentro da tela de Documento de Entrada(MATA103), como por exemplo a chamada de um fonte que importa uma planilha e alimenta o grid do documento de entrada. Sintaxe: User Function MA103BUT() Return   Exemplo do ponto de entrada Continue lendo

Definindo o Tamanho de uma String com o Tamanho do Campo(SX3) com AvKey em ADVPL

Definindo o Tamanho de uma String com o Tamanho do Campo(SX3) com AvKey em ADVPL

2 minutos A função AvKey em ADVPL define o tamanho de uma string utilizando o tamanho de um campo(SX3) do dicionário do TOTVS Protheus. Essa função é muito útil em situações onde queremos encontrar o conteúdo de índice posicionado, usando a função DBSeek por exemplo.  Ela é uma das funções de manipulação de string em ADVPL.      Sintaxe: AvKey(cStr,cCampSX3)   Parâmetro(s): Retorno: Exemplo da função AvKey em ADVPL: É isso aí, finalizamos aqui o post aqui do Blog ProtheusAdvpl. Caso tenha ficado alguma Continue lendo

CalcEst – Obtendo o Saldo de um Produto

CalcEst – Obtendo o Saldo de um Produto

1 minuto Olá, no post de hoje iremos falar da documentação e sintaxe da função CalcEst em ADVPL. A função CalcEst é uma função interna da TOTVS utilizada para obtenção do saldo de um produto de uma determinado armazém e uma data definida.   Sintate: CalcEst(cProd,cLocal,dData)   Parâmetro(s): Retorno: Exemplo da função CalcEst em ADVPL: Esse isso ai, finalizamos mais um post aqui no Blog ProtheusAdvpl, deixe abaixo seu comentário do que achou do post e dê dicas e sugestões de novos conteúdos. Grande Continue lendo

ExecAuto MATA020 – Inclusão de Fornecedores(SA2) em MVC

ExecAuto MATA020 – Inclusão de Fornecedores(SA2) em MVC

1 minuto A rotina automática ExecAuto MATA020 tem por objetivo incluir fornecedores(SA2) automaticamente no TOTVS Protheus. Ela é uma das Rotinas Automáticas em ADVPL.      Exemplo em ADVPL da rotina automática ExecAuto MATA020: É isso aí, finalizamos mais um post aqui no Blog ProtheusAdvpl, caso tenha ficado alguma dúvida deixe seu comentário ou nos envie um e-mail para adiliocosta@protheusadvpl.com.br. Até um próximo post. Grande abraço e fica com Deus.   Link(s) de referência: https://centraldeatendimento.totvs.com/hc/pt-br/articles/360021505711-Cross-Segmento-TOTVS-Backoffice-Linha-Protheus-ADVPL-Rotina-autom%C3%A1tica-MVC-MATA020

Obtendo de uma Data o Ano e o Mês no Formato AAAAMM(ano e mês) com AnoMes em ADVPL

Obtendo de uma Data o Ano e o Mês no Formato AAAAMM(ano e mês) com AnoMes em ADVPL

1 minuto A função AnoMes em ADVPL retorna uma  o ano e mês(AAAAAMM) de uma data passada como parâmetro. Ela é uma das funções de manipulação de data e hora em ADVPL.   Sintaxe: AnoMes(dData)   Parâmetro(s):   Retorno:   Exemplo da função AnoMes em ADVPL:   É isso aí, finalizamos mais um post aqui no Blog ProtheusAdvpl, caso tenha ficado alguma dúvida deixe seu comentário ou nos envie um e-mail para adiliocosta@protheusadvpl.com.br. Até um próximo post. Grande abraço e fica com Deus.   Continue lendo

Como Bloquear Movimentações Durante o Fechamento do Estoque no TOTVS Protheus

Como Bloquear Movimentações Durante o Fechamento do Estoque no TOTVS Protheus

1 minuto Olá, no post de hoje iremos aprender como bloquear movimentações durante o fechamento do estoque. Esse bloqueio evita que novas momentações sejam feitas e assim não ocasione erros no cálculo e fechamento do estoque.     O bloqueio de movimentações no estoque no TOTVS Protheus é feito através do parâmetro MV_DBLQMOV, assim quando informamos uma data(no formato AAAAMMDD(ANOMESDIA)) o sistema só permitirá movimentações com data igual ou superior ao informado nesse parâmetro. Assim se informarmos a data 20241231(31/12/2024) o TOTVS Protheus só Continue lendo

ExecAuto FINA050 – Inclusão de Título no Contas a Pagar(FINA050)

ExecAuto FINA050 – Inclusão de Título no Contas a Pagar(FINA050)

1 minuto A rotina automática ExecAuto FINA050 tem por objetivo criar um título no contas a pagar(FINA050) do módulo financeiro(SIGAFIN) automaticamente no TOTVS Protheus. Ela é uma das Rotinas Automáticas em ADVPL.   Sintaxe: MSExecAuto({|x, y| FINA050(x, y)}, aSE2, 3)   Exemplo em ADVPL da rotina automática ExecAuto FINA050: É isso aí, finalizamos mais um post aqui no Blog ProtheusAdvpl, caso tenha ficado alguma dúvida deixe seu comentário ou nos envie um e-mail para adiliocosta@protheusadvpl.com.br. Até um próximo post. Grande abraço e fica com Continue lendo

Função Chr() no ADVPL: como usar e gerar quebra de linha

Função Chr() no ADVPL: como usar e gerar quebra de linha

3 minutos A função Chr() no ADVPL é um recurso simples, mas muito útil no desenvolvimento para Protheus. Ela permite converter um código numérico em caractere e aparece com frequência em situações como montagem de mensagens, tratamento de strings e inserção de quebra de linha.   Se você já precisou exibir um texto em mais de uma linha dentro de uma rotina, entender o uso de Chr(13) e Chr(10) pode facilitar bastante a implementação.     O que é a função Chr A função Continue lendo

Copiando um Texto para a Área de Transferência(Ctrl+C) com CopyToClipBoard em ADVPL

Copiando um Texto para a Área de Transferência(Ctrl+C) com CopyToClipBoard em ADVPL

1 minuto A função CopytoClipBoard. em ADVPL tem como objetivo copiar um texto para a área de transferência(Ctrl+C) da estação do usuário. Ela é uma das funções de interface visual em ADVPL.   Sintaxe: CopytoClipBoard(cTexto)     Parâmetro(s): Retorno: Nil(nulo) Exemplo da função CopytoClipBoard em ADVPL:     Bem, finalizamos mais um post aqui no blog. Espero que você tenha entendido, qualquer dúvida nos envie um e-mail para adiliocosta@protheusadvpl.com.br. Grande abraço e fica com Deus. Links de referência(s): https://tdn.totvs.com/display/tec/CopytoClipboard

Posicionando em Registro de um Alias/Tabela com DBGoTo em ADVPL

Posicionando em Registro de um Alias/Tabela com DBGoTo em ADVPL

1 minuto A função DBGoTo em ADVPL posiciona em um determinado registro de um Alias(tabela corrente), conforme a ordem física (sequência sobre o recno). Ela é uma das Funções de Acesso a Banco de Dados / SQL no Protheus em ADVPL.      Sintaxe: DBGoTo(nRecno)   Parâmetro(s):   Retorno: Nil Observações: A sequência lógica depende da ordem e do filtro ativo na tabela corrente. Exemplo da função DBGoTo em ADVPL:     É isso aí, finalizamos aqui mais um post no Blog ProtheusAdvpl. Caso Continue lendo

XmlNode2Arr

XmlNode2Arr

2 minutos Olá, no post de hoje iremos aprender como usar a função XmlNode2Arr em ADVPL. Essa função tranforma um objeto (nó) da estrutura do XML em um array. Ela é uma das funções de tratamento de XML em ADVPL.      Sintaxe: XmlNode2Arr(oXml,cElem)     Parâmetro(s):   Retorno: Exemplo da função XmlNode2Arr em ADVPL:     Bem, finalizamos mais um post aqui no blog. Espero que você tenha entendido, qualquer dúvida nos envie um e-mail para adiliocosta@protheusadvpl.com.br. Grande abraço e fica com Deus. Continue lendo

XmlParser ADVPL: Como Tratar Arquivos XML no Protheus

XmlParser ADVPL: Como Tratar Arquivos XML no Protheus

2 minutos Neste post, vamos aprender de forma objetiva como utilizar a função XmlParser em ADVPL. Esta função é essencial para converter uma string XML em um objeto manipulável, facilitando o acesso aos dados em integrações e rotinas do Protheus.   Diferente de outras funções, o XmlParser processa o conteúdo XML que já está em memória (string), transformando cada tag em uma propriedade do objeto gerado. Essa abordagem é fundamental na trilha de ADVPL Avançado no Protheus, especialmente para quem busca dominar o Tratamento Continue lendo

IsBlind ADVPL: Como Verificar Conexões Sem Interface no Protheus

IsBlind ADVPL: Como Verificar Conexões Sem Interface no Protheus

3 minutos Neste post, vamos aprender de forma objetiva como utilizar a função IsBlind em ADVPL. Esta função é essencial para identificar se o código está sendo executado em um ambiente com interface gráfica (SmartClient) ou em segundo plano (Jobs, Web Services ou RPC), permitindo que você evite erros de interface em processos automáticos.   A IsBlind faz parte da biblioteca de Controle de Processamentos em ADVPL, sendo uma das ferramentas mais importantes para garantir a estabilidade de customizações que rodam tanto via menu Continue lendo

Executando um Bloco de Código Baseado em Condições com DBEval em ADVPL

Executando um Bloco de Código Baseado em Condições com DBEval em ADVPL

1 minuto A função DBEval em ADVPL executa um bloco de código baseado em condições. DBEval avalia um bloco de código para cada registro que atenda um escopo definido, através dos blocos da primeira e segunda condição. Ela é uma das funções de manipulação de blocos de código em ADVPL Sintaxe: DBEval(bCod,bCond1,bCond2,nMax,nRecno,lExpLog)   Parâmetros(s):   Retorno:   Exemplo de DBEval em ADVPL:   Bem, finalizamos mais um post aqui no blog. Caso tenha alguma dúvida deixe seu comentário ou nos envie o e-mail para Continue lendo

SetKey em ADVPL — Como Criar Atalhos de Teclado no Protheus

SetKey em ADVPL — Como Criar Atalhos de Teclado no Protheus

2 minutos A experiência do usuário final no ERP Protheus é diretamente impactada pela agilidade na navegação. Quando desenvolvemos rotinas customizadas, muitas vezes ignoramos que pequenas funcionalidades, como o uso de atalhos de teclado, podem economizar horas de operação ao longo de um mês. A função SetKey em ADVPL é a ferramenta nativa para realizar esse mapeamento, permitindo que você associe teclas de função (F1 a F12) ou combinações específicas a blocos de código ou funções customizadas.   Neste artigo, vamos mergulhar no funcionamento Continue lendo