No vídeo de hoje, vamos demonstrar em como gravar uma observação ao excluir uma nota de saída através de um ponto de entrada.
A dúvida de hoje, nos perguntaram, se seria possível forçar um usuário a informar um motivo para exclusão de uma nota de saída no sistema (SF2).
Pensando nisso, montamos um exemplo, onde vamos demonstrar em como usar essa lógica no ponto de entrada SF2520E.
Segue abaixo o vídeo exemplificando:
E abaixo o código fonte desenvolvido:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function SF2520E
Ponto de entrada na Exclusão do Documento de Saída
@type Function
@author Atilio
@since 17/06/2024
@see https://centraldeatendimento.totvs.com/hc/pt-br/articles/360018257391-Cross-Segmento-Backoffice-Linha-Protheus-ADVPL-Ponto-de-entrada-SF2520E
@obs O campo F2_X_MTCAN pode ser criado como Caractere tamanho 100
/*/
User Function SF2520E()
Local aArea := FWGetArea()
Local aAreaSF2 := SF2->(FWGetArea())
Local aPergs := {}
Local cMotivCan := Space(100)
Local aBackupPar := {}
Local lGravou := .F.
//Faz backup dos parâmetros
aBackupPar := NgSalvaMvPa()
//Adiciona os parâmetros
aAdd(aPergs, {1, "Motivo Cancelamento", cMotivCan, "", ".T.", "", ".T.", 100, .T.})
//Enquanto não gravou
While ! lGravou
//Exibe a pergunta
If ParamBox(aPergs, "Informe os parâmetros", /*aRet*/, /*bOk*/, /*aButtons*/, /*lCentered*/, /*nPosx*/, /*nPosy*/, /*oDlgWizard*/, /*cLoad*/, .F., .F.)
//Atualiza o motivo de cancelamento
RecLock("SF2", .F.)
SF2->F2_X_MTCAN := MV_PAR01
SF2->(MsUnlock())
lGravou := .T.
EndIf
EndDo
//Volta backup dos parâmetros
NgRetAuMVPa(aBackupPar)
FWRestArea(aAreaSF2)
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.