Publicando um Documento
Início  Anterior  Próximo

minilogowi


seta Publicando um Documento



A principal finalidade de um índice é justamente poder indexar conteúdos para que depois possam ser pesquisados de maneira rápida e precisa. A seguir iremos criar a página responsável pela publicação dos documentos, as ações que essa página fará serão o upload do arquivo (através do evento Upload do WebIntegrator) e em seguida a publicação do conteúdo desse arquivo no índice (usando um evento Conector Java através da classe
br.com.itx.modules.search.WIPublisher).

Para a classe
br.com.itx.modules.search.WIPublisher fazer a publicação de um documento no índice ela precisa saber de antemão o nome do índice que ela irá atualizar e quais são as propriedades adicionais do documento indexado. Para informar o nome do índice atribua à variável tmp.indexName o nome de um índice que já foi criado para o projeto. Para a classe saber qual o arquivo a ser publicado atribua à variável tmp.arquivo o nome do arquivo que está sendo publicado representando o conteúdo do documento e caso os documentos desse índice possuam propriedades adicionais crie variáveis temporárias do WebIntegrator com o nome das propriedades adicionais definidas para o índice.

Logo abaixo segue uma sugestão para o modelo da página de publicação para esse estudo de caso, atente que nela estão as variáveis
tmp.indexName, tmp.arquivo e as variáveis temporárias com os nomes das propriedades adicionais.

<HTML>
<HEAD>
<TITLE>Publicador de Documentos</TITLE>
</HEAD>
<BODY BGCOLOR="#D5EEE2" TEXT="#000000" LINK="#000000" VLINK="#000080">
<DIV ALIGN="center">
<TABLE BORDER="1" CELLSPACING="0" CELLPADDING="5">
  <TH BGCOLOR="#008080">
    <B><FONT FACE="Arial" COLOR="#FFFFFF" SIZE="3">Publicação de Documento</FONT></B>
  </TH>
  <TR>
    <TD BGCOLOR="#FFFFFF">
    <FORM ACTION="|wi.page.id|.wsp" METHOD="post" ENCTYPE="multipart/form-data">
      <!-- variavel que indica o nome do indice que sera atualizado -->
      <INPUT TYPE="hidden" NAME="wi.page.prev" VALUE="|wi.page.id|">
      <INPUT TYPE="hidden" NAME="tmp.indexName" VALUE="modelo">
      <P>
      <FONT FACE="Arial"><STRONG><SMALL>Selecione o arquivo:<BR></SMALL></STRONG></FONT>
      <!-- variavel que indica o documento a ser publicado -->
      <INPUT TYPE="file" NAME="tmp.arquivo">
      </P>
      <P>
      <FONT FACE="Arial"><STRONG><SMALL>Título:<BR></SMALL></STRONG></FONT>
      <!-- variavel temporaria que indica o valor que sera indexado 
           como sendo parte da propriedade adicional titulo. -->
      <INPUT TYPE="text" NAME="tmp.titulo">
      </P>
      <P ALIGN="left">
      <FONT FACE="Arial"><STRONG><SMALL>Data (dd/mm/aaaa):<BR></SMALL></STRONG></FONT>
      <!-- variavel temporaria que indica o valor que sera indexado 
           como sendo parte da propriedade adicional dia. -->
      <INPUT TYPE="text" NAME="tmp.dia" SIZE="2" MAXLENGTH="2"> /
      <!-- variavel temporaria que indica o valor que sera indexado 
           como sendo parte da propriedade adicional mes. -->
      <SELECT NAME="tmp.mes" SIZE="1">
        <OPTION VALUE="01">Janeiro</OPTION>
        <OPTION VALUE="02">Fevereiro</OPTION>
        <OPTION VALUE="03">Março</OPTION>
        <OPTION VALUE="04">Abril</OPTION>
        <OPTION VALUE="05">Maio</OPTION>
        <OPTION VALUE="06">Junho</OPTION>
        <OPTION VALUE="07">Julho</OPTION>
        <OPTION VALUE="08">Agosto</OPTION>
        <OPTION VALUE="09">Setembro</OPTION>
        <OPTION VALUE="10">Outubro</OPTION>
        <OPTION VALUE="11">Novembro</OPTION>
        <OPTION VALUE="12">Dezembro</OPTION>
      </SELECT> /
      <!-- variavel temporaria que indica o valor que sera indexado 
           como sendo parte da propriedade adicional ano. -->
      <INPUT TYPE="text" NAME="tmp.ano" SIZE="4" MAXLENGTH="4">
      </P>
      <P>
      <INPUT TYPE="submit" VALUE="Publicar" NAME="tmp.publicar">
      </P>
    </FORM>
    </TD>
  </TR>
</TABLE>
</DIV>
</BODY>
</HTML>



Com a página pronta, vamos configurar os eventos Upload e Conector Java. Para criar o evento Upload clique no menu Projeto - Uploads e realize as seguintes configurações em um Upload do tipo
Local:

Campo
Valor
Identificador
UplDoc

Diretório
|wi.proj.path|/documentos. Esse diretório é o local onde será feito o upload do arquivo para que o seu conteúdo seja indexado.
Nome do campo do formulário
tmp.arquivo
Arquivo
|tmp.arquivo|


No pós-página da página de publicação coloque este evento Upload recém-criado preenchendo os campos com os seguintes valores:

Campo
Valor
Condição
|tmp.publicar| = publicar && |tmp.arquivo| !=
Upload
UplDoc


Também no pré-página coloque agora o evento Conector Java preenchendo os campos com os seguintes valores:

Campo
Valor
Condição
|tmp.publicar| = publicar && |wi.upl.ok| = true && |tmp.arquivo| !=
Nome da classe
br.com.itx.modules.search.WIPublisher


Com estes passos já criamos uma página de publicação de documentos do nosso índice. Para testar você pode começar a publicar alguns documentos. Para verificar se a publicação está ocorrendo com sucesso o desenvolvedor pode fazer referência à variável
tmp.publisher.status que retornará o nome do arquivo que foi publicado precedido de OK;, caso tenha ocorrido algum erro durante a publicação o stack trace será armazenado na variável tmp.publisher.error para que o desenvolvedor possa rastrear o que ocorreu.

Se a publicação do documento no índice for efetuada com sucesso a variável
tmp.publisher.iddoc conterá o ID sob o qual o documento foi indxado, esse ID sempre será único para cada um dos documentos publicados.