Tempo aproximado para leitura: 00:05:00 min
Ocorrência
FINA040 - Exemplo de ExecAuto para alteração de título a receber utilizando em conjunto o ponto de entrada FI040ROT
Ambiente
Cross Segmentos - TOTVS Backoffice (Linha Protheus) - TOTVS Protheus Financeiro - Todas as versões
Causa
FINA040 - Possuir um título a receber sem prefixo, com número 000000001, sem parcela (no exemplo, o tamanho do código da parcela no ambiente é de 4 caracteres).
Neste exemplo, é necessário alterar o campo E1_HIST executando o ExecAuto de dentro do Protheus, em vez de executá-lo pelo VS Code.
Solução
1 - FINA040 - Incluir um título a receber pelo protheus
2 - Compile o ponto de entrada responsável pelos botões. Ele será responsável por chamar a rotina de alteração do título a receber por meio do MSExecAuto.
|
#Include 'Protheus.ch'
#Include 'FWMVCDEF.ch'
Function U_FI040ROT()
Local aArea := GetArea()
Local aRotina := Paramixb // Array contendo os botoes padrões da rotina.
// Tratamento no array aRotina para adicionar novos botoes e retorno do novo array.
Aadd(aRotina, { "MYF040ALT", "U_MYF040ALT", 0, 8, 0,.F.})
RestArea(aArea)
Return aRotina
|
|
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"
Function U_MYF040ALT() Local aArea := GetArea()
Local aTitulo := {}
PRIVATE lMsErroAuto := .F.
//PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "FIN" //<- Caso a chamada seja por fora do protheus (vs-code), é necessário ter esse comando.
aAdd(aTitulo, {"E1_HIST", "TESTE NOVO HISTORICO", Nil})
DbSelectArea("SE1")
DbSetOrder(1) //E1_FILIAL+E1_FILIAL+E1_PREFIXO+E1_NUM+E1_PARCELA+E1_TIPO
DbSeek("01" + " " + "000000001" + " " +"NF ") // <- minha parcela tem 4 caracteres de tamanho
MsExecAuto( {|a,b,c,d,e,f,g| FINA040(a,b,c,d,e,f,g)},aTitulo, 4 ) // 3 - Inclusao, 4 - Alteração, 5 - Exclusão RestArea(aArea)
Return
|
5 - Verifique que o campo E1_HIST foi alterado para "TESTE NOVO HISTORICO".
Saiba mais:
ADVPL - Exemplo de execauto para alteração FINA050
ADVPL - Ponto de entrada FI040ROT
0 Comentários