Changes between Version 2 and Version 3 of WF/ExportacaodedadosdeaplicacoesLotusNotes
- Timestamp:
- 08/22/07 15:35:45 (17 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WF/ExportacaodedadosdeaplicacoesLotusNotes
v2 v3 1 Existem duas possibilidades de exportação de dados do Notes. Uma é utilizando Java e outra utilizando o produto !NotesSQL. Este documento descreve a alternativa Java, e é recomendado caso existam campos texto-rico nos documentos a serem exportados. 2 1 = Exportação de Dados de Aplicações Lotus Notes = 2 [[TOC(heading=Workflow,depth=1,WF/Changelog,WF/Documentacao,WF/Instalacao,WF/Links,WF/Propostas,WF/Recursos)]] 3 4 Este documento descreve uma alternativa de exportação utilizando Java, e é recomendada caso existam campos texto-rico nos documentos a serem exportados. 3 5 4 6 == Configuração do servidor Lotus Domino == 5 7 6 7 8 8 No lado servidor, o Lotus Domino possui uma tarefa chamada Diiop (Domino Internet Inter-Orb Protocol) que deve ser configurada para aceitar conexões dos programas java e retornar os dados adequadamente. 9 9 10 11 12 1) Edite o arquivo Notes.ini, do servidor, e na chave "ServerTasks" acrescente a tarefa "diiop" 10 1) Edite o arquivo Notes.ini, do servidor, e na chave "!ServerTasks" acrescente a tarefa "diiop" 13 11 14 12 2) Edite o documento de configuração do servidor e na aba "Portas" "Portas da Internet" "IIOP", coloque o status da porta TCP/IP em "Ativado" … … 22 20 6) Caso existam firewalls no caminho entre a estação cliente e o servidor, deve-se liberar a porta 63148 23 21 24 25 26 22 No ambiente Celepar, o servidor Celepar2_cta_m, já está configurado adequadamente. Para facilitar as coisas, copie a base Notes para este servidor, ao invés de configurar um servidor de cliente. 27 23 28 29 30 24 == Configuração da base Notes == 31 25 32 33 34 26 Depois de termos quebrado a cabeça exportando dados do Notes em outras ocasiões, concluímos que a melhor coisa a fazer é criar uma visão temporária na base, com todos os dados necessários. Desta maneira fica mais fácil obter os dados via um programa java. Basta fazer um loop do primeiro registro ao útimo da base e ler o conteúdo das colunas. 35 27 36 37 38 28 1) Crie uma visão na base com o nome 'Dump'. Construa a fórmula de seleção de documentos conforme necessário. 39 29 40 30 2) Crie colunas na visão, uma para cada campo que será exportado. A primeira coluna obrigatoriamente deverá ser o ID do documento. É importante que todos os dados das colunas seja do tipo texto. Exemplo: 41 31 42 43 44 32 Coluna 1: @Text(@!DocumentUniqueID) 45 33 … … 48 36 Coluna 3: Titulo 49 37 50 51 52 38 Na coluna 3, 'titulo' é uma campo qualquer do documento 53 39 54 55 56 40 [[Image(htdocs:wf/images/notes_view.png)]] 57 41 58 59 60 42 Em seguida é necessário modificar o formulário onde está o campo texto rico, para que o programa java consiga identificar onde ele começa e termina. Toda esta gambiarra está sendo feita porque no Domino versão 5 não existe classe para tratar o conteúdo de campos texto rico. A solução encontrada foi fazer uma requisição Http ao Domino, obter o código html do documento e separar a parte correspondente ao campo texto rico. 61 43 62 63 64 44 1) Edite o documento onde o campo texto rico está 65 45 … … 72 52 5) Salve o documento 73 53 74 75 76 54 [[Image(htdocs:wf/images/notes_doc.png)]] 77 55 78 79 80 56 6) Por último, crie um usuário 'anonymous', no controle de acesso da base, com direitos de leitura, só para garantir que não haverá bloqueios de acesso quando o programa java rodar. 81 57 82 83 84 58 == Configuração do ambiente Java == 85 59 86 87 88 60 As configurações a seguir referem-se ao programa 'Eclipse' como ferramenta para rodar Java. Também podem ser utilizados outros compiladores, mas o 'Eclipse' seria o mais indicado, devido às suas facilidades de gerenciamento de projeto. 89 61 90 91 92 62 1) Copiar os arquivos Notes.jar e NCSO.jar para algum diretório do seu disco local 93 63 … … 98 68 4) Configurar o projeto para reconhecer os arquivos Notes.jar e NCSO.jar. Para isso, clique no menu Project/Properties. Selecione 'Java Build Path' e adicione os arquivos 99 69 100 101 102 70 [[Image(htdocs:wf/images/notes_eclipse.png)]] 103 71 104 105 106 72 5) Volte para a interface de programação e importe o arquivo exemplo de código java 107 73 108 74 6) Edite o arquivo exemplo para atender as suas necessidades. Mude o nome da classe, o ip do servidor, usuário, senha e o caminho para a base notes. Um detalhe: utilize a senha internet do usuário, e não a senha do id. 109 75 110 111 112 76 {{{ 113 114 115 116 77 import java.io.*; 117 78 … … 122 83 import lotus.domino.*; 123 84 124 125 126 85 public class detran { 127 86 … … 130 89 try { 131 90 132 Session s = NotesFactory.createSession("10. 15.61.13","viani"," * * *");91 Session s = NotesFactory.createSession("10.xx.xx.xx","usuario","senha"); 133 92 134 93 Database db = s.getDatabase(s.getServerName(), "teste\\empregado.nsf"); … … 140 99 ViewEntry entrada = nav.getFirst(); 141 100 142 143 101 144 102 String unid; … … 147 105 148 106 String titulo; 107 108 109 String linha; 110 111 String conteudo = ""; 112 113 boolean flag = false; 114 115 BufferedWriter out = new BufferedWriter(new FileWriter("detrandump.txt")); 116 117 118 119 String[] sessoes = { "1,2,3,4,5,6,7,8,9,", 120 121 "1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,", 122 123 "2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9,", 124 125 "3.1,3.2,3.3,3.4,3.5,3.6,3.7,3.8,3.9,", 126 127 "4.1,4.2,4.3,4.4,4.5,4.6,4.7,4.8,4.9,", 128 129 "5.1,5.2,5.3,5.4,5.5,5.6,5.7,5.8,5.9,", 130 131 "6.1,6.2,6.3,6.4,6.5,6.6,6.7,6.8,6.9,", 132 133 "7.1,7.2,7.3,7.4,7.5,7.6,7.7,7.8,7.9,", 134 135 "8.1,8.2,8.3,8.4,8.5,8.6,8.7,8.8,8.9,", 136 137 "9.1,9.2,9.3,9.4,9.5,9.6,9.7,9.8,9.9" 138 139 }; 149 140 150 141 151 152 String linha;153 154 String conteudo = "";155 156 boolean flag = false;157 158 BufferedWriter out = new BufferedWriter(new FileWriter("detrandump.txt"));159 160 161 162 String[] sessoes = { "1,2,3,4,5,6,7,8,9,",163 164 "1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,",165 166 "2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9,",167 168 "3.1,3.2,3.3,3.4,3.5,3.6,3.7,3.8,3.9,",169 170 "4.1,4.2,4.3,4.4,4.5,4.6,4.7,4.8,4.9,",171 172 "5.1,5.2,5.3,5.4,5.5,5.6,5.7,5.8,5.9,",173 174 "6.1,6.2,6.3,6.4,6.5,6.6,6.7,6.8,6.9,",175 176 "7.1,7.2,7.3,7.4,7.5,7.6,7.7,7.8,7.9,",177 178 "8.1,8.2,8.3,8.4,8.5,8.6,8.7,8.8,8.9,",179 180 "9.1,9.2,9.3,9.4,9.5,9.6,9.7,9.8,9.9"181 182 };183 184 185 186 142 while(entrada != null) { 187 143 … … 198 154 199 155 200 URL notesUrl = new URL( "http://10. 15.61.13/teste/empregado.nsf/0/" +156 URL notesUrl = new URL( "http://10.xx.xx.xx/teste/empregado.nsf/0/" + 201 157 202 158 unid + "?opendocument&expandsection=" + … … 220 176 con.setDefaultUseCaches(false); 221 177 222 BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); 178 BufferedReader in = new 179 BufferedReader(new InputStreamReader(con.getInputStream())); 223 180 224 181 … … 228 185 linha = in.readLine(); 229 186 230 while[wiki:WF_linha=in.readLine(] 231 !=null&&!flag){ 187 while (linha=in.readLine()!=null&&!flag) { 232 188 233 189 if (linha.indexOf("<!-- rtini -->") != -1) { … … 253 209 254 210 255 while[wiki:WF_linha=in.readLine(] 256 !=null&&!flag){ 211 while (linha=in.readLine()!=null&&!flag) { 257 212 258 213 if (linha.indexOf("<!-- rtend -->") != -1) { … … 307 262 308 263 } 309 310 311 312 264 }}} 313 265 314 315 316 266 Este exemplo produzirá um arquivo texto, com uma linha para cada documento Notes, onde os campos estão separados pelo delimitador '@@@' 317 267 318 319 320 268 31/10/2006 09:50:26@@@Rua fica bloqueada até amanhã@@@<BR><FONT SIZE=2 FACE="Verdana">A Prefeitura de Curitiba fará obras emergenciais de recuperação das galerias de águas pluviais na Rua Conselheiro Laurindo, no trecho de duas quadras entre os cruzamentos com as ruas André de Barros e Itararé, no Centro. O trabalho começou às 8 horas de ontem e deve terminar amanhã</FONT><BR><FONT SIZE=2 FACE="Verdana">Os motoristas que seguem pela Conselheiro Laurindo deverão entrar à direita na André de Barros, e só poderão retornar à Conselheiro após o cruzamento com a Rua Itararé.</FONT><BR><BR><FONT SIZE=2 FACE="Verdana">A Diretoria de Trânsito de Curitiba (Diretran) recomenda aos motoristas que, sempre que possível, procurem caminhos alternativos aos locais de obras. Além disso, é necessário planejar bem o itinerário e sair com antecedência para evitar atrasos, especialmente nos horários de pico, pois existe a possibilidade de pontos de lentidão no tráfego da região. A Rádio-Trânsito, serviço oferecido pela Prefeitura de Curitiba, com boletins em 15 emissoras de rádio da cidade, alertará os motoristas sobre os desvios durante o período de obras e bloqueio.</FONT><BR><BR><BR><FONT SIZE=2 FACE="Verdana">JORNAL DO ESTADO</FONT> 321 269 322 323 324 270 31/10/2006 09:46:49@@@Polícia Civil fecha desmanche caseiro na Vila Esperança@@@<BR><FONT SIZE=2 FACE="Verdana">A Polícia Civil apreendeu ontem dezenas de peças de veículos nos fundos e uma residência na rua Pirapó, Vila Esperança, em Maringá. Segundo os policiais, o local era usado como um desmanche e as peças serviam para regularizar carros comprados em leilões.</FONT><BR><FONT SIZE=2 FACE="Verdana">Os investigadores da PC, informaram que vinham monitorando o local há cerca de 30 dias. Durante a operação de ontem, os policiais encontraram cerca de 50 mini-frentes de diversos veículos, várias carcaças com as numerações raspadas e metade de um Fiat Palio, também sem identificação.</FONT><BR><FONT SIZE=2 FACE="Verdana">Em outro local, na avenida Morangueira, os policiais encontraram um motor e um câmbio, que suspeitam ser do Palio. Ambos estavam com a numeração raspada. Segundo a PC, o proprietário do local comprava veículos batidos em leilões e usava as peças para montar um carro novo e com isso regularizar carros furtados.</FONT><BR><FONT SIZE=2 FACE="Verdana">O proprietário da casa, Rayner Fernando Silva, negou os crimes e afirmou na delegacia que havia comprado tudo com nota e dentro da lei. Ele disse que todas as peças estavam regularizadas e não havia cometido crime algum.</FONT><BR><FONT SIZE=2 FACE="Verdana">No entanto, os policiais informaram que o volume de peças é muito superior as notas apresentadas por Silva. </FONT><BR><BR><FONT SIZE=2 FACE="Verdana">JORNAL HOJE - </FONT><B><I><FONT SIZE=2 FACE="Verdana">Maringá</FONT></I></B> 325 326 327 328 31/10/2006 09:44:43@@@Trânsito violento deixa dois mortos no fim de semana@@@<P><FONT SIZE=2 FACE="Verdana">PONTA GROSSA – Duas pessoas morreram e uma ficou gravemente ferida em três acidente de trânsito registrados nesse final de semana em ruas e rodovia de Ponta Grossa. Um coroinha da igreja São Francisco, da Vila Borato, está entre as vítimas. As ocorrências foram atendidas pela Polícia Militar e Polícia Rodoviária Federal (PRF).</FONT><P><FONT SIZE=2 FACE="Verdana">Na madrugada de domingo o motoqueiro Ícaro Luciano Mayer, 26, perdeu a vida no cruzamento das ruas Balduíno Taques e Theodoro Rosas, na área central da cidade. A moto que ele pilotava – uma Yamaha YBR de placa ANV-4924 – ficou destruída ao se envolver numa colisão com a camioneta Ford F-250 de placas AKB-1659, dirigida por Ângelo César Alves Pinto. O rapaz sofreu afundamento de tórax. O corpo foi encaminhado ao necrotério do Instituto Médico Legal. A polícia apurar responsabilidades pela colisão.</FONT><P><FONT SIZE=2 FACE="Verdana">A Polícia Civil da cidade trabalha com a expectativa de identificar a pessoa que dirigia a Variant II de placas ABX-9209, envolvida no atropelamento de Leonardo Rodrigues, 11. O acidente aconteceu às 16 horas de domingo na Rua Alameda Nabuco de Araújo, proximidades da Costalco, no bairro de Uvaranas. O menino sofreu ferimentos em várias partes do corpo, foi socorrido pelo Siate e internado no Hospital Municipal. As lesões são graves, mas ele não corre risco de morte.</FONT><P><FONT SIZE=2 FACE="Verdana">A Variant, segundo o Corpo de Bombeiros, foi encontrada em chamas, minutos depois do acidente, nas imediações da fábrica da Sadia, na Vila Marina. Moradores da região disseram à Polícia Militar que viram o momento em que o motorista desceu do carro, retirou o aparelho de som e em seguida o incendiou com gasolina. Depois subiu na garupa de um motoqueiro e desapareceu. Através das placas do veículo a polícia identificou o nome da pessoa que consta no documento original. Ela será chamada na delegacia para prestar esclarecimentos. </FONT><P><FONT SIZE=2 FACE="Verdana">Repercutem na cidade as informações sobre a morte prematura de um menino de 11 anos numa das rodovias mais perigosas do Paraná. Alexandre Willian da Rosa voltava para casa quando foi atropelado pela Ford F-1000, de placas CEQ-1815, de Ivaiporã (PR). O acidente aconteceu por volta das 19h15 de domingo no km 178 da BR-373 – perímetro urbano da Avenida Souza Naves. O motorista do veículo, Silvano Bueno, se apresentou no Posto Caetano da 3ª Delegacia da PRF, fez o teste de alcoolemia (resultado foi negativo), prestou declarações e foi liberado. Ele responderá a processo por homicídio culposo – sem a intenção de matar. </FONT><P><FONT SIZE=2 FACE="Verdana">Alexandre era coroinha na igreja São Francisco, na Vila Borato, onde morava com os pais e dois irmãos. Ele faria a primeira comunhão no final do ano.</FONT><P><FONT SIZE=2 FACE="Verdana">DIÁRIO DOS CAMPOS</FONT>