Exemplo de uso de ações no package XML

Usando o XML da package, crie um bot que lê e escreve dados de um arquivo XML para uma folha de Excel.

A amostra XML utilizada neste tutorial tem a seguinte estrutura:
<movies>
    <movie genre="" year="">
        <name></name>
        <description></description>
        <director></director>
        <writers>
            <writer type=""></writer>
            <writer type=""></writer>
        </writers>
        <rating>R</rating>
    </movie>
</movies>

Antes de começar, faça o download de um arquivo XML de amostra.

O tutorial tem o objetivo de demonstrar as seguintes ações:
  • Use uma expressão XPath para obter um conjunto de nós com valor específico e iterar através dos itens do conjunto de nós, por exemplo, filmes com classificação específica neste tutorial.
  • Utilize uma função XPath para iterar através dos conjuntos de nós filhos.
  • Concatene variáveis para construir uma string.
  • Escreva os dados em uma planilha do Excel.

Pré-requisitos

Verifique o seguinte:

  • Você sabe como criar bots.
  • Você deve conhecer a interface de usuário da Control Room.

Procedimento

  1. Crie um bot e nomeie-o como XMLDataReader.
  2. Adicione um passo para agrupar todas as tarefas para abrir uma planilha do Excel.
    1. Adicione o Passo > Passo action após o fluxo Início no Bot editor.
      Nota: Para adicionar uma action, procure a action no painel Ações e arraste-a para o fluxo bot no Bot editor.
    2. Em Título, insira Open an Excel Sheet e salve a action.
  3. Para criar e abrir uma planilha do Excel, use Excel avançado > Criar pasta de trabalho.
    1. Adicione Excel avançado > Criar pasta de trabalho action dentro do Passo action.
    2. Em Caminho do arquivo, insira C:\movies\movies.xlsx e salve a action. Se a pasta movies não existir no caminho especificado, crie uma pasta movies no caminho.
  4. Para selecionar a primeira célula da planilha de Excel, use a action Excel avançado > Ir para a célula.
    1. Adicione a ação Excel avançado > Ir para a célula após a ação Excel avançado: Criar pasta de trabalho.
    2. Clique em Célula específica se ainda não estiver selecionada e introduza A1.
    3. Salve a ação.
  5. Crie outro passo para agrupar todas as tarefas de recuperação de dados XML.
    1. Adicione o Passo > Passo após o primeiro Passo action.
    2. Em Título, insira Obter dados XML e salve a action.
  6. Iniciar sessão XML.
    1. Adicione o passo action XML > Sessão inicial dentro do passo Obter dados XML.
    2. Em Arquivo, selecione Desktop, navegue e selecione o arquivo XML de amostra que você baixou.
    3. Salve as alterações.
  7. Para obter todos os nós de filme com classificação R, use a action Obter vários nós.
    1. Adicione XML > Obter vários nós após Iniciar sessão action.
    2. Em XPath Expression, digite //movie[rating/text()=\'R\']e salve o action.
      O conjunto de nós selecionado é armazenado em uma variável de sistema e está disponível para o conjunto de dados do iterador Para cada nó em um conjunto de dados XML.
    3. Para garantir que a ação recupera todo o conjunto de nós em vez de apenas os nós de texto, clique em Expressão XPath.
  8. Utilize a ação Loop para iterar através do conjunto de nós selecionados que a action Obter vários nós recupera.
    1. Adicione Loop > Loop após a XML: Obter vários nós action.
    2. Em Iterador, selecione XML > Para cada nó de um conjunto de dados XML como o iterador.
    3. Em Atribuir a linha atual a esta variável, clique em (x) e crie uma variável com o nome padrão, por exemplo, XMLNode. Cada item do conjunto de nós está agora disponível através da variável.
    4. Salve o action.
  9. Para obter o nome do filme a partir do nó iterado, use a action Obter nó único.
    1. Adicione a ação XML > Obter nó único dentro da Loop: Loop action.
    2. Em XPath Expression, digite $XMLNode$/name.
    3. Em Atribuir a saída à variável, crie uma variável e nomeie-a como sMovieName.
    4. Salve o action.
  10. Para escrever o nome do filme a partir da variável XMLNode, use a action Definir célula.
    1. Adicione a action Excel avançado > Definir célula após a action Obter nó único.
    2. Clique em Célula ativa, insira $sMovieName$ em Valor da célula, e salve a action.
  11. Para selecionar uma nova célula dentro da planilha do Excel, use a action Ir para a célula.
    1. Adicione a action Ir para a célula depois da action Set cell e da Excel avançado: Definir célula action.
    2. Clique em Célula ativa, selecione Uma célula à direita, e depois salve a action.
  12. Para obter o nome do diretor a partir do nó iterado, use a action Obter nó único.
    1. Adicione a action XML > Obter nó único após a Excel avançado: Ir para a célula action.
    2. Em Expressão XPath, insira $XMLNode$/director.
    3. Em Atribuir a saída à variável, crie uma variável com o seguinte nome: sDirector
    4. Salve o action.
  13. Para escrever o nome do diretor a partir da variável XMLNode, use a action Definir célula.
    1. Adicione a ação Excel avançado > Definir célula após a XML: Obter nó único action.
    2. Clique em Célula ativa, insira $sDirector$ em Valor da célula, e salve a action.
  14. Para selecionar uma nova célula dentro da planilha do Excel, use a action Ir para a célula.
    1. Adicione a action Ir para a célula após a Excel avançado: Definir célula action.
    2. Clique em Célula ativa, selecione Uma célula à direita e depois salve a action.
  15. Como os<nós>de escritor podem conter múltiplos<nós de>escritor, pegue o nome de cada um, concatene os nomes e escreva tudo em uma única célula, em vez de distribuir os valores em várias células. Para isso, adicione a action Loop dentro da action Loop atual.
    1. Para saber o número de<nós>escritor dentro dos<escritores>de escritor, adicione XML > Executar função XPath após da Excel avançado: Definir célula action. Em XPath Expression , digite count($XMLNode$/writers/writer). Em Atribuir a saída à variável, crie uma variável chamada sWriterCount.
      Você utilizará a contagem de<escritor>escritor para fazer um loop por todos os<escritor>escritor.
    2. Adicione a ação Loop > Loop após a XML: Executar função XPath action.
      Importante: A segunda action Loop deve ser adicionada dentro da action Loop principal.
    3. Em Iterador, selecione Por n vezes como iterador.
    4. Em Vezes, insira o seguinte: $sWriterCount.String:toNumber$
      Nota: sWriterCount contém um valor de string. Para converter string em um número, use o formato
      lt;variable name>.String:toNumber$, por exemplo, $sWriterCount.String:toNumber$.
    5. Em Atribuir o valor atual à variável (opcional), crie uma variável chamada Counter.
    6. Salve o action.
  16. Para concatenar os valores de todos os nós de escritor, crie uma variável de cadeia.
    1. No painel Variáveis, clique no ícone de mais.
      A janela Criar variável é exibida.
    2. Em Tipo, selecione String.
    3. Em Nome, insira sWriters.
    4. Clique em Create (Criar).
  17. Para obter o valor do nó<de escritor>iterado ,use a action Obter nó único.
    1. Adicione a action XML > Obter nó único dentro da segunda action Loop.
    2. Em Expressão XPath, insira $XMLNode$/writers/writer[$Counter.Number:toString$].
      Usando a variável Counter, é possível acessar um nó em um índice específico. Como a variável Counter contém um valor numérico, a expressão .Number:toString$ é adicionada à variável Counter para convertê-la em uma string.
    3. Em Atribuir a saída à variável, crie uma variável e nomeie-a como sWriter.
    4. Salve o action.
  18. Para atribuir valores dos nós de escritor, use a action String > Atribuir.
    1. Adicione a action String > Atribuir após XML: Obter nó único dentro do segundo loop.
    2. Em Selecionar a(s) variável(eis)/valor (opcional), insira $sWriters$, $sWriter$.
    3. Em Selecionar a variável da string de destino, selecione sWriters.
    4. Salve o action.
    Após o loop interno estar completo, a variável sWriters conterá todos os nomes dos escritores.
  19. Para escrever os nomes do escritor em uma nova célula, use a ação Excel avançado > Definir célula no loop principal.
    1. Adicione a action Excel avançado > Definir célula depois da ação Loop dentro da primeira action Loop.
    2. Clique em Célula ativa.
    3. Insira $sWriters$ em Valor da célula.
    4. Salve o action.
    Os dados recuperados de um<nó>de filme são escritos em uma fila. Para escrever os dados do próximo<nó>de filme, selecione a próxima linha na planilha de Excel.
  20. Para mover o cursor para a linha seguinte, use a action Excel avançado > Ir para a célula.
    1. Adicione a action Ir para a célula após a action Definir célula.
    2. Clique em Célula ativa, selecione Início da fila e depois salve a action.
    3. Adicione a action Ir para a célula novamente. Clique em Célula ativa, selecione Célula abaixo e depois salve a action.
  21. Antes de iterar para o próximo nó<nó>de nós de filmes recuperado, é necessário redefinir a variável sWriters. Para reiniciar a variável sWriters, execute os seguintes passos:
    1. Adicione a ação String > Atribuir após Excel avançado: Ir para a célula dentro do loop principal.
    2. Deixe Selecionar a(s) variável(eis)/valor (opcional) em branco.
    3. Em Selecionar a variável da string de destino, selecione sWriters.
    4. Salve o action.
  22. Crie uma nova etapa.
    1. Adicione a ação Passo > Passo após a segunda ação Passo.
    2. Em Título, digite Close the file.
  23. Para fechar a planilha de Excel, utilize a action Excel avançado Fechar.
    1. Adicione Excel avançado > Fechar dentro do passo Fechar o arquivo.
    2. Salve as alterações.
  24. Executar o bot.