O Reclock é uma funcionalidade essencial no sistema Protheus, desenvolvido pela TOTVS, que permite ajustar os eventos e processos do sistema com base nos fusos horários e horários de verão. Essa ferramenta desempenha um papel fundamental na garantia da integridade e precisão dos registros temporais, o que é crucial para as operações diárias de uma empresa.
Neste exemplo prático de Reclock Protheus, exploraremos a configuração e utilização dessa funcionalidade para assegurar que os dados do sistema estejam sempre sincronizados com a hora local correta, independentemente das mudanças no fuso horário ou durante o horário de verão. Com isso, minimizamos erros e inconsistências nos processos que dependem do tempo, contribuindo para uma gestão mais eficiente e confiável dos recursos empresariais.
Acompanhe este tutorial passo a passo para aprender a configurar o Reclock no Protheus e entender como essa funcionalidade pode otimizar as operações do seu negócio, garantindo a exatidão das informações e facilitando o cumprimento de prazos e cronogramas. Vamos mergulhar nessa importante funcionalidade do Protheus e explorar todas as vantagens que o Reclock oferece para aprimorar a sua experiência com o sistema ERP líder no mercado.
Exemplo da Rotina:
RecLock([Alias], [.T. = Inclusão, .F. = Atualização])
1º Ex - Incluir registro:
RecLock("ABC", .T.)
ABC->ABC_FILIAL := FWxFilial('ABC')
ABC->ABC_CAMP01 := "111"
ABC->ABC_CAMP02 := "222"
ABC->(MsUnlock())
Exemplo 2- Alterando um registro via DbSeek:
dbSelectArea('SA1')
SA1->(DbSetOrder(1))
//Se posiciona no produto
If SA1->(DbSeek(FWxFilial('SA1') + "CODIGO"))
RecLock('SA1', .F.)
SA1->A1_X_CAMPO := "111"
SA1->(MsUnlock())
EndIf
Exemplo 3- Alterando um registro via DbGoTo:
//Pegando o RecNo desejado
nRecno := 41574
//Posicionando no registro
DbSelectArea('SB1')
SB1->(DbGoTo(nRecno))
//Alterando o registro
RecLock('SB1', .F.)
SB1->B1_X_CAMPO := "CCC"
SB1->(MsUnlock())
Exemplo 4- Excluindo um registro de uma tabela customizada:
RecLock("ZZZ", .F.)
DbDelete()
ZZZ->(MsUnlock())
Exemplo 5- Verificando se pode ser feita uma manipulação:
If RecLock("ZZZ", .F.)
//comandos
ZZZ->(MsUnlock())
Else
MsgStop("Não foi possível travar o registro para manipulação!", "Atenção")
EndIf
insere os dados do lote de entrada na DTP /
Static Function salvarLoteEntrada( aFiles, cLote )
Default aFiles := {}
Default cLote := ""
conOut('Inicio salvarLoteEntrada ')
RecLock( "DTP", .T. )
DTP->DTP_FILIAL := FWxFilial("DTP")
DTP->DTP_FILORI := cFilAnt
DTP->DTP_LOTNFC := cLote
DTP->DTP_DATLOT := Date()
DTP->DTP_HORLOT := strTran( Time(), ":", "" )
DTP->DTP_QTDLOT := Len( aFiles )
DTP->DTP_QTDDIG := Len( aFiles )
DTP->DTP_STATUS := '2'
DTP->DTP_TIPLOT := '3'
DTP->DTP_RATEIO := '2'
DTP->( msUnLock() )
conOut('FIM salvarLoteEntrada ')
