Process Mining
2021.10
falso
Imagem de fundo do banner
Process Mining
Última atualização 2 de abr de 2024

Example: Creating a Python Script

Introdução

Este exemplo explica como fazer a interface da plataforma UiPath Process Mining com scripts Python externos para implementar o processamento de dados externos.

Observação: os exemplos nesta seção são baseados na versão 3 do python.

Visão geral de alto nível

Um script Python é criado que:

  • toma como entrada um arquivo .CSV , a ser especificado em sua linha de comando como o único argumento necessário,
  • multiplica o valor de Amount por dois,
  • grava o resultado em seu canal de saída padrão.

Etapas

  1. Definir as configurações do servidor;
  2. Configurando o espaço de trabalho;
  3. Configurando uma fonte de dados de script;
  4. Configurando a fonte de dados;
  5. Escrevendo o roteiro.

Definição das configurações dos servidores

A fonte de dados de script genérico requer manipuladores para todos os processos externos que você deseja executar.

Siga estas etapas para adicionar um manipulador de script genérico.

Etapa

Ação

1

Vá para a aba Configurações de Superadmin.

2

Adicione um campo GenericScriptHandlers com como valor um objeto com uma chave, “py”, que tem como valor o caminho para seu executável python. Por exemplo:

"GenericScriptHandlers": { "py": "P:/Python/bin/python.exe" }

3

Clique em SALVAR.

Configuração do espaço de trabalho

Comece criando um script mínimo que ainda não faça nenhum processamento de dados. Este script será usado para verificar se a configuração do python está funcionando e se o script está sendo chamado da plataforma UiPath Process Mining .

Este script de exemplo mostra como gerar a saída que aparecerá no log de execução do script e como o código de saída de um script influencia o comportamento da plataforma UiPath Process Mining .

Etapa

Ação

1

Em seu editor favorito, inicie um arquivo de texto em branco.

2

Digite o texto a seguir:

#!/usr/bin/python import sys def debug(message): sys.stderr.write(message) debug("Hello world!") exit(1)#!/usr/bin/python import sys def debug(message): sys.stderr.write(message) debug("Hello world!") exit(1)
Nota: O comando debug(“Hello world!”) é um exemplo de como usar o canal de erro padrão para enviar mensagens e depurar a saída.

3

Salve o arquivo de texto como script.py.

4

Carregue o arquivo script.py em seu espaço de trabalho.

Este script apenas imprime um "Hello world!" mensagem. A interface de script usa saída padrão para comunicação de dados do script para a plataforma UiPath Process Mining . Se você deseja incluir mensagens de status em seu script, deve escrevê-las no erro padrão .

Observação: o script de exemplo sai com o código de status 1. Qualquer código de status diferente de 0 será interpretado pela plataforma UiPath Process Mining como uma condição de erro.

Configuração de uma fonte de dados de scripts

Em seguida, configure uma tabela de fonte de dados no aplicativo que chamará o script. Comece com alguns dados fictícios, pois seu script ainda não processará os dados. Nesta etapa, será verificado se o script está sendo executado conforme o esperado, ou seja, se é possível visualizar a mensagem “Hello world!” mensagem.

Etapa

Ação

1

Abra o aplicativo em seu ambiente de desenvolvimento.

2

Vá para a guia Dados e crie uma nova tabela de strings de conexão.

3

Renomeie o New_table para PythonExample.

4

Clique com o botão direito do mouse na tabela PythonExample e selecione Avançado > Opções….

5

Na caixa de diálogo Table Options , defina o Table scope como Workspace.

6

Clique duas vezes na tabela PythonExample para abrir a janela Editar tabela de cadeia de conexão .

7

Digite o seguinte como string de conexão:

``'driver={mvscript

8

Digite o seguinte como Consulta:

``''

  • '&scriptFile=' + urlencode("script.py")
  • '&inputData=' + urlencode("a;b;c"+#10+"1;2;3"+#10+"4;5;6"+#10)``

O “#10” no exemplo inputData indica caracteres de nova linha. ou seja definimos os seguintes dados CSV fictícios:

"a";"b";"c"

"1";"2";"3"

"4";"5";"6

9

Clique em OK.

10

Clique em SIM.

A atualização da tabela falha e, no log de erros, você deve ver a mensagem “Hello World!” mensagem

A localização do arquivo de script é determinada pelo escopo da tabela. Isso pode ser definido como Servidor ou Espaço de trabalhoou Nenhum. Se definido como None, o caminho para o arquivo de script é absoluto. Se for definido como Server ou Workspace, o local do script será interpretado como um caminho relativo.

Importante: Você precisa obter o “Hello World!” exemplo de trabalho para poder concluir com êxito as etapas restantes para configurar uma interface com um script python externo.

Configuração da fonte de dados

Para exportar os dados que você deseja processar em um script externo, a primeira etapa é selecionar os campos necessários em seu script python. A maneira de fazer isso é criando uma nova tabela que contém todos os campos que o script python precisa. Esta tabela será exportada no formato .CSV posteriormente para que o script python possa lê-la.

Para este exemplo, temos uma aplicação com uma tabela Cases e uma tabela Events . Veja a ilustração abaixo.



Siga estas etapas.

Etapa

Ação

1

Crie uma nova tabela Global , PythonInputData.

2

Adicione um novo atributo de expressão, PythonInputData_Amount.

3

Defina o tipo como pesquisa.

4

Defina a tabela de entrada como Cases_base.

5

Defina a expressão como listtojson(text(double(records.Amount))).

6

Defina o nível de expressão como root.

7

Clique em OK.

8

Adicione outro atributo de expressão de pesquisa para Case_ID.

Defina a expressão como listtojson(text(double(records.Case_ID))).
Observação:
O formato do atributo de expressão de pesquisa deve ser uma lista de strings. Isso ocorre porque a função csvtable() será usada para transformar os dados no formato .CSV , que espera uma lista de registros (texto).
Como a função listtojson() requer que sua entrada seja do tipo texto, o formato dos registros no arquivo CSV resultante depende do tipo do atributo selecionado (neste caso, Valor é do tipo Moeda) e a exibição ativa no momento formatar. Aqui, o tipo de moeda é convertido em double, para facilitar a análise dos registros posteriormente no script python.

Escrever o script

Em seu editor de texto, atualize o arquivo script.py com o seguinte código.

#!/usr/bin/python
import csv
import sys
def debug(message):
    sys.stderr.write(message)
# Read the CSV header. This is used so that the script will output the fields
# in the same order that they were read in. This step is optional.
column_order = [];
with open(sys.argv[1]) as csv_file:
    reader = csv.reader(csv_file, delimiter=';')
    column_order = next(reader)
# Process the input file
with open(sys.argv[1]) as csv_file:
    reader = csv.DictReader(csv_file, delimiter=';')
    # Construct the output writer.
    writer = csv.DictWriter(
        sys.stdout,
        column_order,
        delimiter=';',
        restval='',
        quoting=csv.QUOTE_ALL
    )
    writer.writeheader()
    for row in reader:
        # Get data from row
        case_id = row['Case_ID']
        amount = int(row['Amount'])
        # Do computation
        amount = amount * 2
        # Write results
        writer.writerow({'Case_ID': case_id, 'Amount': amount})
# Exit indicating success
exit(0)#!/usr/bin/python
import csv
import sys
def debug(message):
    sys.stderr.write(message)
# Read the CSV header. This is used so that the script will output the fields
# in the same order that they were read in. This step is optional.
column_order = [];
with open(sys.argv[1]) as csv_file:
    reader = csv.reader(csv_file, delimiter=';')
    column_order = next(reader)
# Process the input file
with open(sys.argv[1]) as csv_file:
    reader = csv.DictReader(csv_file, delimiter=';')
    # Construct the output writer.
    writer = csv.DictWriter(
        sys.stdout,
        column_order,
        delimiter=';',
        restval='',
        quoting=csv.QUOTE_ALL
    )
    writer.writeheader()
    for row in reader:
        # Get data from row
        case_id = row['Case_ID']
        amount = int(row['Amount'])
        # Do computation
        amount = amount * 2
        # Write results
        writer.writerow({'Case_ID': case_id, 'Amount': amount})
# Exit indicating success
exit(0)

Siga as etapas abaixo.

Etapa

Ação

1

Carregue o novo script no Workspace, sobrescrevendo o arquivo existente e volte para o aplicativo.

2

Clique com o botão direito do mouse na tabela PythonExample e selecione Editar….

3

Modifique o parâmetro inputData da string de consulta para a tabela PythonExample :

+ '&inputData=' + urlencode(csvtable( "Case_ID", jsontolist(PythonInputData.Case_ID), "Amount" , jsontolist(PythonInputData.Amount), ))

Veja a ilustração abaixo.

4

Clique em OK.

5

Clique em SIM (2x).

6

Clique em OK.



A tabela PythonExample agora tem dois atributos de fonte de dados, Amount e Case_ID. Veja a ilustração abaixo.


A inspeção do atributo Valor revela que todos os valores foram multiplicados por dois. Veja na ilustração abaixo um exemplo da saída gerada pelo script python.



Was this page helpful?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Logotipo branco da Uipath
Confiança e segurança
© 2005-2024 UiPath. All rights reserved.