Publicando um Documento | Início Anterior Próximo

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.