9.8 Variáveis do Sistema e 9.9 Flow (fluxo)

O Wxis possui variáveis que são de atualização automática do IsisScript, sendo indicadas no atributo action=define. Por exemplo:

<field action="define" tag="nro_do_tag">argumento</field>

Estes são alguns dos argumentos que podem ser definidos:

Isis_Current – Índice da execução corrente do <loop>, isto é , a primeira vez que o loop de uma pesquisa for executado terá o valor 1, a Segunda vez o valor 2, e assim consecutivamente. No caso de uma tarefa Mfnrange Isis_Current trará o valor do MFN corrente.

Isis_Total – Total de vezes possível para o <loop>, no caso de uma pesquisa, o total de registros recuperados. No caso de um Mfnrange, o total de registros da Base de Dados.

Isis_From – Parâmetro from do <loop>

Isis_To – Parâmetro to do <loop>

Isis_Key – Chave corrente

Isis_Keys – Chaves para destacar texto

Isis_MFN – Número do campo de armazenamento do MFN para exportação ou importação de registros

Exemplo:

<field action="define" tag="1001">Isis_Current</field>
<field action="define" tag="1002">Isis_Total</field>

Dica:
Utilizando as variáveis Isis_Current e Isis_Total é possível exibir os resultados da pesquisa numerados, por exemplo:

1 de 5, 2 de 5, . . . , 5 de 5.

9.9 Flow (fluxo)

Frequentemente é necessário que um script realize diferentes tarefas dependendo da condição apresentada (parâmetros passados). Por exemplo: um mesmo Script deve possuir recursos de pesquisa através de palavras-chave, ou, caso o usuário deseje, a possibilidade de consulta através do dicionário de termos (índice). Uma forma de fazê-lo é através de duas páginas HTML, que passam um mesmo parâmetro, contudo, com diferentes valores.

Na página pesquisa.htm, poderiamos ter

<input type=”hidden” name=”acao” value=”pesquisa”>

Na página dicionario.htm, por sua vez, poderiamos ter

<input type=”hidden” name=”acao” value=”dicionario”>

Este valor seria recebido pelo IsisScript em um campo definido pelo desenvolvedor como sendo 5001, por exemplo:

 <field action="cgi" tag="5001">acao</field>

Uma vez o Script recebendo este valor, é possivel realizar um “salto” (jump) dentro do Script de modo iniciar e parar somente as atividades desejadas.

 <flow action="jump"><pft>v5001</pft></flow>

Neste exemplo, é realizado um JUMP para a LABEL (etiqueta) cujo conteúdo está armazenado no campo 5001, isto é PESQUISA ou DICIONARIO. As LABELS são indicadas no script da seguinte forma.

 <label>DICIONARIO</label>
 <!-- parte do Script responsável pela exibição do Índice -->
 (...)
 <flow action="exit">fim</flow>
 <label>PESQUISA</label>
 <!-- parte do Script responsável pela busca boleana -->
 (...)
 <flow action="exit">fim</flow>

Resumindo

A estrutura de um script é basicamente:

<IsisScript>
  <section>
 <display><pft>'Content-type: text/html'/#</pft></display>
<do task= ... >
          <parm name= .. > </parm>
              <parm name= ...> </parm>
              <parm name= ...> </parm>
              <loop>
Cada ocorrência do loop trabalha com cada
um dos registros recuperados.
             </loop>
</do>

Deixe um comentário