Exemplo OLE – WORD

Integrar o SAP com sistema legado..
Integrar o SAP com PI…
Integrar o SAP com uma torradeira…
Integrar o SAP com mundos perdidos… Enfim… Este é o seu jogo, menino ABAP oO

Sábia que era possível gerar arquivos do pacote Office da Microsoft, mas nunca participei de nenhum projeto com esta demanda.

Mas, porque esperar a demanda para correr atras, resolvi tentar fazer um programinha de exemplo para gerar um texto no Word do Microsoft Office.

Meu objetivo era apenas escrever AbapZombie.com.

Então vamos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
REPORT  zombie_teste_ole.
* Types-Pools
*-------------------------------------*
TYPE-POOLS: ole2.
 
* Variables
*--------------------------------------*
DATA: v_word_app TYPE ole2_object, "Word Application
v_documents TYPE ole2_object, "Documentos
v_document TYPE ole2_object, "Documento
v_selection TYPE ole2_object, "Linha de texto
v_paragraph TYPE ole2_object, "Paragrafo (Alinhamento)
v_font TYPE ole2_object. "Font (Cor, Tamanho, Fonte)
 
"Cria o Application do Word
CREATE OBJECT v_word_app 'WORD.APPLICATION'.
 
"Documento será aberto após criação?
SET PROPERTY OF v_word_app 'Visible' = '1' .
 
"Cria a sessão de documentos
CALL METHOD OF v_word_app 'Documents' = v_documents.
 
"Cria um documento dentro da sessão de documentos
CALL METHOD OF v_documents 'Add' = v_document.
 
"Cria uma entrada de texto
CALL METHOD OF v_word_app 'Selection' = v_selection.
 
"Cria um paragrafo dentro da entrada de texto
CALL METHOD OF v_selection 'ParagraphFormat' = v_paragraph.
 
"Cria um font dentro da entrada de texto
CALL METHOD OF v_selection 'Font' = v_font.
 
"Insere o alinhamento do paragrafo
SET PROPERTY OF v_paragraph 'Alignment' = '2' . "Right-justified
 
"Altera os atributos da fonte
SET PROPERTY OF v_font 'Name' = 'Arial' .
SET PROPERTY OF v_font 'Size' = '50' .
SET PROPERTY OF v_font 'Bold' = '0' . "Not bold
SET PROPERTY OF v_font 'Italic' = '1' . "Italic
 
"Insere o Texto
CALL METHOD OF v_selection 'TypeText'
EXPORTING #1 = 'AbapZombie.com!'.
 
"Salva o Documento
CALL METHOD OF v_document 'SaveAs'
EXPORTING
#1 = 'C:/example/abapzombie.ole.doc'.

Segue também o link de um material da SAP sobre o assunto.

Abraços Zombizada

This entry was posted in Códigos Exemplo and tagged , , . Bookmark the permalink.


Compartilhe este post!


8 Responses to Exemplo OLE – WORD

  1. Valmir says:

    Existe algum procedimento anterior (como instalar alguma lib)?
    Ao tentar ativar código recebo este erro:
    The type “OLE2_OBJECT” is unknown, but there is a type with the similar name “OBJECT”.

    VLW!

  2. Sérgio Fraga says:

    Conheci o blog através de um outro Blog que sigo regularmente, o http://www.abapinho.com e aproveito para dar vos dar os Parabéns!! Excelente Blog, com excelentes conteúdos e com uma leitura muito apelativa.

    Quanto ao post, já usei ole2 para gerar ficheiros de excel, mas descobri um projecto no SDN muito bom com uma abordagem totalmente OO.

    Também existe para Word, por isso deixo o link se quiseres pesquisar.

    ABAP2DOCX – https://cw.sdn.sap.com/cw/groups/abap2docx

    Cumprimentos
    Sérgio Fraga
    Portugal

  3. Guilherme Fujii says:

    Mauro, trabalho com HR e utilizo bastante a integração.

    Só uma coisa que colocaria a mais, é o sy-subrc depois do CREATE OBJECT, se retornar algo diferente de zero quer dizer que deu algum erro relacionado a integração e não será possível continuar..

    O único problema que vejo nessa integração é em relação a performance, se voce gera um documento um pouco extenso ele demora para completar o processo e até agora não achei a solução para isso…



Quer comentar com um código fonte? Quer colocar uma foto no seu comentário? Quer compatilhar um artigo pelo site? Então clique aqui!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>