Páginas

terça-feira, 20 de março de 2018

Parâmetros para Envio de Relatórios por e-Mail e m-Messenger

Hoje eu "apanhei" um pouco com a configuração do m-Messenger, pois, apesar da ferramenta utilizar os mesmo parâmetros para o envio de relatórios por e-mail e estes estarem sendo enviados normalmente, o m-Messenger não estava funcionando.
Então, descobri que havia um parâmetro que, apesar de não ser necessário para o envio de relatórios por e-mail, estava fazendo falta para o m-Messenger.

Era o parâmetro MV_RELAUSR

Então decidi colocar aqui todos os parâmetros necessários para a Configuração dessas duas Ferramentas:

  • MV_EMCONTA (C)
    • Indica qual a conta que será utilizada para envio de e-mails automáticos pelo sistema.
    • Exemplo: rel.totvs@gmail.com
  • MV_EMSENHA (C)
    • Indica qual a senha da conta utilizada para envio de e-mails automáticos pelo sistema.
    • Exemplo: xxyy1234
  • MV_RELACNT (C)
    • Conta a ser utilizada no envio de relatórios por e-Mail.
    • Exemplo: rel.totvs@gmail.com
  • MV_RELAPSW (C)
    • Senha necessária para autenticação no servidor de e-mail.
    • Exemplo: xxyy1234
  • MV_RELAUTH (L)
    • Servidor de e-Mail necessita de Autenticação? (.T. ou .F.)
    • Exemplo: .T.
  • MV_RELFROM (C)
    • E-mail utilizado no campo FROM no envio de relatórios por e-mail.
    • Exemplo: rel.totvs@gmail.com
  • MV_RELPSW (C)
    • Senha da Conta de e-Mail para envio de relatórios.
    • Exemplo: xxyy1234
  • MV_RELSERV (C)
    • Nome do Servidor de Envio de e-Mail utilizado nos relatórios.
    • Exemplo: smtp.gmail.com:465
  • MV_RELAUSR (C)
    • Usuário para Autenticação no Servidor de e-Mail.
    • Exemplo: rel.totvs@gmail.com
  • MV_RELTIME (N)
    • Timeout no Envio de e-Mail.
    • Exemplo: 120
  • MV_RELSSL (L)
    • .T. ou .F. conforme orientação do servidor de e-Mail utilizado (OBS: Para Office365, utilize .F. e para GMail .T.)
    • Exemplo: .T.
  • MV_RELTLS (L)
    • .T. ou .F. conforme orientação do servidor de e-Mail utilizado (OBS: Para Office365, utilize .T. e para GMail .F.)
    • Exemplo: .F.

segunda-feira, 13 de junho de 2016

Executando uma Static Function de outro programa com a Função StaticCall()


Todos nós sabemos ou pelo menos a maioria sabe, que uma “Static Function” só pode ser chamada de dentro o mesmo programa fonte (mesmo prw) que a criou, certo?

Mas e se precisássemos utilizar uma “Static Function” existente em um RPO, cujo os fontes não estão disponíveis ?

Podemos resolver este problema com a utilização de uma função chamada StaticCall() que irá executar uma “Static Function” de qualquer outro programa em que esteja declarada.

Sintaxe:

xReturn := StaticCall(xParam1, xParam2, xParam3, ..., ..., xParamN)

Onde:

xParam1 := NomeDoPrograma (sem aspas), onde se encontra a Static Function que se deseja executar.

xParam2 := NomeDaStaticFunction (sem aspas), a ser executada

xParam3 := A partir desse espaço são definidos os parâmetros que são passados para a Static Function que será chamada, podendo variar de 0..N.


Exemplo:



O resultado deste exemplo será o seguinte:




 Até a próxima...

Agrupando Pedidos de Venda em uma única Nota Fiscal de Saída


Quando for necessário agrupar vários Pedidos de Venda que tenham as mesmas característica em uma única Nota Fiscal de Saída através da rotina MATA460 (Documento de Saída), bastaria mudar o parâmetro “Aglut.Ped. Iguais ?” para “Sim”. Correto ?


Porém, podemos nos deparar com o seguinte problema:

Criando um Botão Customizado na Consulta Posição do Cliente

Na rotina de Consulta Posição do Cliente FINC010, é possível adicionar um botão para executar uma rotina que traga novas informações sobre o cliente.

Para isso é necessário utilizar um ponto de entrada chamado FC010BTN.

A função VerSenha()

Esta função verifica se o usuário corrente tem acesso a determinada opção que foi cadastrada no
Configurador nas propriedades do usuário (menu Detalhes / Acessos), tais como “Excluir produto”, ”Alterar produto”, etc.

Exemplo:

if ! VerSenha(36)   // verifica se o usuário pode alterar a data base do sistema.
   return Nil
endif

Como usar a função StartJob()

As vezes é comum precisarmos executar uma rotina dentro de uma função mas sem interromper o processamento desta função aguardando até que a rotina termine. Para isto existe a função StartJob. Está função permite iniciar uma Thread, ou seja, uma nova conexão no monitor, sem interromper a função que à chamou.

Variáveis Públicas Disponíveis no Protheus

No sistema Protheus existem inúmeras variáveis públicas disponíveis para serem utilizadas dentro de um programa, gatilho ou fórmula.

Vejam algumas: