Existe uma forma de interagir com o sistema sem a necessidade de informar usuario e senha. É a abertura de ambiente usando a função RpcSetEnv. Você pode criar suas rotina, e se colocar RpcSetEnv(cEmp,cFil,,,,GetEnvServer(),{ }), você consegue testar inclusive se tiver consulta em tabelas Usando um exemplo simples de envio de e-mail
#Include 'Protheus.ch' User Function testemail() //U_testemail() Local cMensagem := "" Local aArquivo := {} Local cEmail := "email destinatario" Local cEmp := "01" //codigo da empresa Local cFil := "01" //codigo da filial Private cMailConta := NIL Private cMailServer := NIL Private cMailSenha := NIL RPCSetType(3) //Nao consome licensas RpcSetEnv(cEmp,cFil,,,,GetEnvServer(),{ }) //Abertura do ambiente em rotinas automáticas cMailConta :=If(cMailConta == NIL,GETMV("MV_EMCONTA"),cMailConta) //Conta utilizada p/envio do email cMailServer :=If(cMailServer == NIL,GETMV("MV_RELSERV"),cMailServer) //Server cMailSenha :=If(cMailSenha == NIL,GETMV("MV_EMSENHA"),cMailSenha) If Empty(cEmail) Conout('Funcao: testemail() >>> e-mail nao informado') Return Endif //Verifica se existe o SMTP Server If Empty(cMailServer) Conout("Funcao: testemail() >>> O Servidor de SMTP nao foi configurado !!!") Return(.F.) EndIf //Verifica se existe a CONTA If Empty(cMailServer) Conout("Funcao: testemail() >>> A Conta do email nao foi configurado !!!" Return(.F.) EndIf cMensagem := 'sua mensagem' Conout(GPEMail("Assunto",cMensagem,cEmail,aArquivo)) RpcClearEnv() //Libera o Ambiente ReturnParametros:
Nome | Tipo | Descrição | Padrao | ||||||||||||||
cRpcEmp | Caracter | Código da empresa. | |||||||||||||||
cRpcFil | Caracter | Código da filial. | |||||||||||||||
cEnvUser | Caracter | Nome do usuário. | |||||||||||||||
cEnvPass | Caracter | Senha do usuário. | |||||||||||||||
cEnvMod | Caracter | Código do módulo. | 'MODULO' | ||||||||||||||
cFunName | Caracter | Nome da rotina que será setada para retorno da função FunName(). | 'ROTINA' | ||||||||||||||
aTables | Vetor | Array contendo as tabelas a serem abertas. | {} | ||||||||||||||
lShowFinal | Lógico | Alimenta a variável publica lMsFinalAuto. | .F. | ||||||||||||||
lAbend | Lógico | Se .T., gera mensagem de erro ao ocorrer erro ao checar a licença para a estação. | .T. | ||||||||||||||
lOpenSX | Lógico | SE .T. pega a primeira filial do arquivo SM0 quando não passar a filial e realiza a abertura dos SXs. | .T. | ||||||||||||||
lConnect | Lógico | Se .T., faz a abertura da conexao com servidor As400, SQL Server etc. | .T. |