Você está na página 1de 8

IOS – Instituto de ADVPL II - Pontos de Entrada

Oportunidade Social

1
Ponto de Entrada

Ponto de Entrada é o nome dado as funções que permitem


alterar o fluxo de uma rotina padrão, ou seja, o sistema
verifica a existência dessas funções no repositório de
objetos, caso a mesma exista ela é executada e pode ter um
retorno ou não.

São várias as utilidades dos pontos de entrada como por


exemplo: alterar o contéudo de um campo da tabela após a
gravação do sistema, filtrar registros para a exibição no
browse, incluir rotinas adicionais no array do aRotina, emitir
avisos na tela, efetuar validação antes da gravação podendo
inclusive bloquear o processo, entre outras utilidades.

2
Ponto de Entrada

Vale lembrar que os pontos de entrada só podem ser


utilizados na versão do Protheus Série T que é a versão
mais completa do produto, a versão Série 3 (Express)
não disponibiliza esse recurso, além disso todo ponto
entrada é uma User Function.

Para descobrir se a rotina que deseja possui algum


ponto de entrada que possa lhe servir pode-se
pesquisar no Portal TDN a existência do mesmo e
verificar a documentação explicativa para sua correta
utilização.

3
Nomeação

Os pontos de entrada tem por objetivo deixar o sistema flexível,


permitindo uma grande variedade de desenvolvimento pelos
analistas de suporte de acordo com a necessidade de cada tipo de
cliente/implantação.
XXYYYZZZZ
XX - Iniciais do módulo.
YYY - Código sequencial do programa. Mantenha o padrão de
numeração de 10 em 10.
ZZZZ - Nome dado ao ponto de entrada.
Exemplos:
Módulo Parâmetro
SIGALOJA LJ010ZZZZ
SIGATEC AT010ZZZZ

4
Diretivas

Analisar o motivo da criação do ponto, pois é importante cria-lo num ponto que
seja útil, não redundante e que atenda as condições do cliente;

De forma alguma se deve utilizar o ponto de entrada para corrigir eventuais falhas
no sistema;

Também não se devem inserir pontos de entrada em processo críticos do sistema,


pois isto acarretará em resultados imprevisíveis;

É imprescindível a utilização da função ExistBlock() que verifica a existência no


ponto de entrada no repositório além de condicionar a execução do mesmo;

Não tratar ponto de entrada com find function e user function;

Não é necessário efetuar o cache da existência de um determinado ponto de


entrada, a função ExistBlock já faz esse trabalho.

5
Exemplo

#INCLUDE "TOTVS.CH"

Function EntrancePointExample()
While SA1->(EOF())
If ExistBlock("SAVECLI")
ExecBlock("SAVECLI", .F., .F., aParam)
EndIf
SA1->(DbSkip())
EndDo
Return

6
Exercícios

1) Pesquisar a documentação e exemplo do Ponto de


Entrada A010TOK no Portal TDN e criar o Ponto.
2) Pesquisar a documentação e exemplo do Ponto de
Entrada MT120FIM no Portal TDN e criar o Ponto
alterando o conteúdo de algum campo da SC7.
3) Pesquisar a documentação e exemplo do Ponto de
Entrada MA030ROT no Portal TDN e criar o Ponto
para incluir um botão no array aRotina.
4) Pesquisar a documentação e exemplo do Ponto de
Entrada MA020FIL no Portal TDN e criar o Ponto
para efetuar filtro na MBrowse.

7
Dúvidas ?

Rafael Duram Santos

rafael.duram@totvs.com.br

Você também pode gostar