Tempo aproximado para leitura: 00:03:00 min
Dúvida
A função FUNNAME(), não está trazendo o conteúdo correto, impedindo de realizar validações através da função.
Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) – ADVPL – A partir da versão 11.8
Solução
Quando executamos uma rotina direto no protheus, onde não é necessário preparar o ambiente, a FUNNAME() ira trazer o nome da função que da inicio ao processo
Exemplo:
User function CustomExc()
MSExecAuto({|k,v,w,x,y,z| MATA120(k,v,w,x,y,z)},1,aCabec,aItens,3,,/*aRatCC*/)
return
Nesse caso a FUNNAME() ira retornar "CustomExc".
Quando temos uma customização onde precisamos prepara o ambiente, o comportamento é diferente, pois se não informar os parâmetros que referenciam o nome da função, o sistema irá trazer por padrão o nome "RPC"
Exemplo:
User function CustomExc()
PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "FAT"
MSExecAuto({|k,v,w,x,y,z| MATA120(k,v,w,x,y,z)},1,aCabec,aItens,3,,/*aRatCC*/)
RESET ENVIRONMENT
return
ou
User function CustomExc()
RPCSetEnv("99" , "01",,,"FAT",,,,,,)
MSExecAuto({|k,v,w,x,y,z| MATA120(k,v,w,x,y,z)},1,aCabec,aItens,3,,/*aRatCC*/)
return
Nesse caso a FUNNAME() irá retornar "RPC".
Para informar o nome que será enviado para a variável cFunname, você pode preparar o ambiente da seguinte forma
Exemplo:
RPCSetEnv("99" , "01",,,"FAT","MATA120",,,,,)
ou
PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO 'FAT' FUNNAME 'MATA120'
Saiba mais
FunName
Prepare Environment
RpcSetEnv - Abertura do ambiente em rotinas automáticas
0 Comentários