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 |
Para criar e utilizar pontos de entrada, devemos ter em mente:
- 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.
Exemplo:
// EntrancePointExample.prw
#INCLUDE "TOTVS.CH"
Function EntrancePointExample()
While SA1->(!EOF())
If ExistBlock("SAVECLI")
ExecBlock("SAVECLI", .F., .F., aParam)
EndIf
SA1->(DbSkip())
EndDo
Return