Automação OLE com Java - Como integrar o Outlook com o Java

Aprenda como utilizar o Java SWT para interagir com o Microsoft Outlook, criando e enviando e-mails, contatos e compromissos.

Esse artigo faz parte da revista Java Magazine edição 58. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler essa revista em PDF.

Automação OLE com Java

Como integrar o Outlook com o Java

Aprenda como utilizar o Java SWT para interagir com o Microsoft Outlook, criando e enviando e-mails, contatos e compromissos.

Cada vez mais nos deparamos com necessidades de integração dentro das empresas. Seja no acesso a aplicações legadas, seja na integração com ferramentas e utilitários, as dúvidas normalmente são as mesmas: Qual o caminho mais rápido e seguro para interagir com um determinado componente? Se usarmos determinada forma de integração, que limitações ela nos trará? Quando falamos especificamente sobre envio de e-mails, então, possuímos uma gama de opções, ainda mais se tratando da linguagem Java. Podemos utilizar uma API, trabalhando diretamente com SMTP, por exemplo. De fato, talvez essa seja a forma mais simples de enviar e-mails utilizando o Java. Mas se o cliente precisar de algo mais complexo, tal como integrar com o Outlook, padrão de muitas empresas para gerenciamento de e-mails, compromissos e contatos? O objetivo desse artigo é mostrar uma forma de integração entre Java SWT e o Microsoft Outlook utilizando OLE. Vamos demonstrar como é possível enviar e-mails utilizando o Outlook e acessar outras funcionalidades, tais como criação de contatos e compromissos, experimentando todo o poder da automação OLE.

O Que é o OLE?

O Microsoft’s Object Linking and Embedding Interface for Windows, também conhecido como OLE, é uma interface de integração desenvolvida pela Microsoft para a comunicação entre diferentes aplicações, podendo inclusive integrar aplicações escritas em diferentes linguagens de programação. Com essa tecnologia é possível que uma determinada aplicação troque informações ou até mesmo seja embutida (Embedding) em outra. O OLE não é uma tecnologia nova, foi criado pela Microsoft ainda na década de 90 e era muito utilizado principalmente para integração de aplicações escritas em Delphi e Visual Basic. Hoje em dia, essa tecnologia ainda é bastante utilizada por diversas linguagens de programação, principalmente para integrá-las com ferramentas de escritório tais como Outlook, Word e Excel.

Como baixar os pacotes do Java SWT?

Para se utilizar os recursos do OLE no Java, é necessário primeiramente fazer o download das classes do SWT (Standard Widget Toolkit). Todas as classes necessárias estão dentro do pacote org.eclipse.swt.ole.win32  e podem ser adquiridas no site http://www.eclipse.org/swt.

Existem diversas formas de se instalar o pacote SWT, dentro e fora do Eclipse. Abaixo, segue um exemplo de como baixá-lo e utilizá-lo independentemente de plataforma de desenvolvimento. Outras formas de instalação e utilização do pacote podem ser encontradas na própria pagina do SWT.

1.      Dentro da página web do SWT, vá para opção “Releases” e selecione o sistema operacional;

2.      Se o Download não iniciar automaticamente, selecione o Mirror (origem) de onde deseja baixar o pacote;

3.      Após selecionar o Mirror, confirme o download colocando o arquivo em alguma pasta local;

4.      Descompacte o arquivo, e retire o swt.jar. Para utilizar as classes do SWT, basta adicioná-lo nas dependências de seu projeto.

Inicializando os objetos OLE

Embora os objetos de automação OLE sejam bastante úteis, eles também são bastante complexos de serem utilizados. Para facilitar o acesso ao Outlook utilizando OLE, a classe OLEController será utilizada. É importante salientar que a classe OLEController, juntamente com o restante das outras classes, podem ser baixadas na íntegra no site da revista. Essa classe é responsável por encapsular a complexidade de acesso e controle das interfaces do Outlook de forma a simplificar o restante do código. Como pode ser visto no código Listagem 1, um dos principais métodos da classe é o método startAutomation(). Este método inicializa o objeto OLEAutomation, que cria um mecanismo genérico para acesso a funcionalidades específicas de um documento ou aplicação que suporte OLE.  No exemplo deste artigo, esse é o objeto responsável por criar a interface com o Outlook.

Para criar o objeto OLEAutomation, é necessário primeiramente criar um objeto do tipo OLEClientSite, como demonstrado na linha de código 46 da Listagem 1. Este representa o cliente da aplicação e é utilizado nos casos onde se faz necessário que a aplicação embuta o controle do aplicativo, no caso, o Outlook. Para criar o objeto OLEClientSite é necessário primeiramente criar um OLEFrame. É possível criar esse objeto utilizando um Composite da própria aplicação (de forma que o controle fique embutido em algum frame da aplicação). Poderíamos, por exemplo, abrir uma planilha Excel ou um documento do Word dentro de um frame SWT da aplicação. No caso deste artigo, usando o Outlook, iremos simplesmente criar um novo Shell (executando a aplicação externamente).

Após a criação do objeto OLEClientSite, já podemos inicializar a automação OLE, criando o objeto OLEAutomation. Após a inicialização desse objeto, ele ficará encapsulado na classe OLEController, o que tornará mais simples a sua utilização.

O método getCommandId(), descrito na linha 53, é utilizado para obter o identificador de determinado comando ou operação, dentro do controle OLE. Utilizaremos esse método para obter os identificadores dos comandos de criação de contatos, e-mails e compromissos bem como para obter o valor de propriedades relativas a esses comandos.

O método setProperty(), linha 59, é utilizado para incluir/alterar o valor de uma determinada propriedade dentro do objeto OLE. Iremos utilizar esse método para, por exemplo, incluir um nome de contato ou adicionar o corpo do e-mail que estamos criando.

Os métodos invokeCommand(), linhas 67 e 74 (Listagem 1), são utilizados para executar os comandos do OLE. O primeiro método invokeCommand() será utilizado quando podemos executar um determinado comando diretamente. O segundo método será utilizado quando estamos executando um sub-comando. Pense como se estivéssemos navegando no menu principal do Outlook, para criar um novo contato devemos primeiramente selecionar a opção de novo item no menu e após a opção de criação de novo contato. É o mesmo caso, usaremos o segundo método invokeCommand() para requisitar a criação de um novo item e receberemos o objeto OLEAutomation que representará a interface de criação de itens. Utilizando essa interface e de posse do identificador do comando de criação de contatos utilizaremos o primeiro método invokeCommand()  para executar o comando propriamente dito.

 As constantes de acesso a operações e propriedades do Outlook podem ser adquiridas na documentação OLE da aplicação. Para ter uma visão um pouco mais ampla das diversas operações que o Outlook suporta, a Tabela 1 reflete os comandos mais utilizados. No caso desse artigo, usaremos somente as constantes olMailItem (para criação de e-mails), olAppointmentItem (para criação de compromissos) e olContactItem (para criação de contatos).

 

Constante

Valor

Descrição

olMailItem 

0

Utilizada para criação de e-mails

olAppointmentItem

"

[...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados