21 de out. de 2010

Filtrando Somente os Deletados APSDU

Tive a necessidade de filtrar somente os registros deletados do apsdu para fazer uma exportação e depois de algum tempo de pesquisa encontrei a seguinte opção:

Vá em Filtro e em seguida escolha a opção expressão regular e digite: DELETED()

É só adicionar, confirma e está pronto seu filtro somente com os deletados.

20 de out. de 2010

Enviado E-Mail com SSL


Pessoal segue abaixo um exemplo do TDN de como enviar e-mail utilizando SSL.

Testei e funcionou corretamente.

user function sendMail()

local oServer  := Nil
local oMessage := Nil
local nErr     := 0


local cPopAddr  := "pop.example.com"      // Endereco do servidor POP3
local cSMTPAddr := "smtp.example.com"     // Endereco do servidor SMTP
local cPOPPort  := 110                    // Porta do servidor POP
local cSMTPPort := 465                    // Porta do servidor SMTP
local cUser     := "user@example.com"     // Usuario que ira realizar a autenticacao
local cPass     := "password"             // Senha do usuario
local nSMTPTime := 60                     // Timeout SMTP
            
// Instancia um novo TMailManager
oServer := tMailManager():New()   

// Usa SSL na conexao
oServer:setUseSSL(.T.)

// Inicializa
oServer:init(cPopAddr, cSMTPAddr, cUser, cPass, cPOPPort, cSMTPPort)

// Define o Timeout SMTP
if oServer:SetSMTPTimeout(nSMTPTime) != 0
  conout("[ERROR]Falha ao definir timeout")
  return .F.
endif

// Conecta ao servidor
nErr := oServer:smtpConnect()
if nErr <> 0
  conOut("[ERROR]Falha ao conectar: " + oServer:getErrorString(nErr))
  oServer:smtpDisconnect()
  return .F.
endif
                     
// Realiza autenticacao no servidor
nErr := oServer:smtpAuth(cUser, cPass)
if nErr <> 0
  conOut("[ERROR]Falha ao autenticar: " + oServer:getErrorString(nErr))
  oServer:smtpDisconnect()
  return .F.
endif

// Cria uma nova mensagem (TMailMessage)
oMessage := tMailMessage():new()
oMessage:clear()
oMessage:cFrom    := "sender@example.com"
oMessage:cTo      := "receiver@example.com"
oMessage:cCC      := "cc@example.com"
oMessage:cBCC     := "bcc@example.com"
oMessage:cSubject := "Assunto"
oMessage:cBody    := "Corpo do e-mail"
                                       
// Envia a mensagem
nErr := oMessage:send(oServer)
if nErr <> 0
  conout("[ERROR]Falha ao enviar: " + oServer:getErrorString(nErr))
  oServer:smtpDisconnect()
  return .F.
endif

// Disconecta do Servidor
oServer:smtpDisconnect()

return .T.

Video Aula

Olá amigos,

Estou preparando um material sobre diversos assuntos como, Criação de Campos, Criação de Gatilhos, Atualização de SP, e ainda sobre rotinas padrões do Financeiro, Compras e Gestão de Pessoal.

15 de out. de 2010

Função: Lastday

Lastday  é uma boa função para que precisa trabalhar com datas dependendo dos parâmetros ele retorna o último dia útil, o primeiro dia útil, o último dia do mês ou o próximo dia útil a data informada.

Veja os parâmetros que devemos utilizar.

Lastday(dDatanTipo)


Onde,
dData - Data para cálculo. (Obrigatório)
nTipo - Parâmetro de cálculo 

O parâmetro nTipo define a ação que a função deverá executar para ter o retorno esperado, conforme abaixo:

     • 0 ou Branco - Último dia do mês em Pauta;       
     • 1 - Primeiro dia útil do mês;              
     • 2 - Último dia útil do mês;                
     • 3 - Próximo dia útil após a data informada (Se a data informada for útil, a função retorna a própria data).

Retorno

Data devolvida pela função conforme o valor informado no parâmetro nTipo


Exemplo

     Lastday(CTOD('01/02/10'),0)

     Retorno: 28/02/2010

Folha de Pagamento - MV_BLOQPON

MV_BLOQPON – Indique se a rotina de controle de acesso ira liberar a manutenção de verbas vindas do SIGAPON.

Foi criado esse parâmetro para bloquear e/ou permitir a manutenção das verbas que vem do ponto eletrônico.

Por padrão o conteúdo é: “12345”

Sendo:

• “1″ – determina o bloqueio de manutenção na rotina de Lançamento Mensal (GPEA090);
• “2″ – determina o bloqueio de manutenção na rotina de Lançamento por Verba (GPEA100);
• “3″ – determina o bloqueio de manutenção na rotina de Cancelamento de Cálculo (GPEM160);
• “4″ – determina o bloqueio de manutenção na rotina de Geração de Verbas (GPEM170);
• “5″ – determina o bloqueio de manutenção na rotina de Cálculo de Rescisão (GPEM040).

14 de out. de 2010

Data do Fonte

Sabe aquela perguntinha chata que o suporte Totvs sem faz.

"Qual é a data do seu fonte?"

E você tinha que abrir o IDE, depois ir até o inspetor de objetos, localizar o fonte só para ela dizer: é está correto.

Agora você pode na própria função, com a tela aberta prescionar: SWIFT + F6 e pronto....  (Função já disponível na AP8)

Obs.: Isso só vai funcionar para aquela função aberta no momento.

Novo TDN

Apesar do suspense criado pela Totvs no lançamento do novo TDN o produto não atendeu as expectativas do usuário, não retornando resultados corretos a algumas pesquisas bem como deixando o conteúdo um pouco confuso.

http://tdn.totvs.com

Início

Resolvi criar esse blog como um banco de conhecimento aos usuários AdvPL e como repositório pessoal de informações.

Estou iniciando hoje as postagens.