UiPath Documentation
process-mining
2021.10
true
Importante :
Este contenido se ha localizado parcialmente a partir de un sistema de traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Guía del usuario de Process Mining

Example: Creating a Python Script

Introducción

Este ejemplo explica cómo interconectar la plataforma UiPath Process Mining con scripts de Python externos para implementar el procesamiento de datos externo.

Nota:

Los ejemplos de esta sección se basan en la versión 3 de Python.

Información general de alto nivel

Se crea un script de Python que:

  • toma como entrada un archivo .CSV , que se especificará en su línea de comandos como único argumento requerido,
  • multiplica el valor de Cantidad por dos,
  • escribe el resultado en su canal de salida estándar.

Pasos

  1. Configurar los ajustes del servidor;
  2. Configurar el espacio de trabajo;
  3. Configurar una fuente de datos de script;
  4. Configurar el origen de datos;
  5. Escribiendo el script.

Configurar los Ajustes de servidor

El origen de datos de script genérico requiere controladores para todos los procesos externos que desea ejecutar.

Sigue estos pasos para añadir un controlador de script genérico.

PasoAcción
1Ve a la pestaña Ajustes de superadministrador.
2Añade un campo GenericScriptHandlers con como valor un objeto con una clave, "py", que tiene como valor la ruta a tu ejecutable de Python. Por ejemplo: "GenericScriptHandlers": { "py": "P:/Python/bin/python.exe" }
3Haz clic en GUARDAR.

Configurar el espacio de trabajo

Comienza creando un script mínimo que aún no realice ningún procesamiento de datos. Este script se utilizará para verificar que tu configuración de Python funciona y que tu script se llama desde la plataforma UiPath Process Mining .

Este script de ejemplo muestra cómo generar una salida que aparecerá en el registro de ejecución del script y cómo el código de salida de un script influye en el comportamiento de la plataforma UiPath Process Mining .

Paso

Acción

1

En su editor favorito, cree un archivo de texto en blanco.

2

Introduce el siguiente texto:

#!/usr/bin/python import sys def debug(mensaje): sys.stderr.write(mensaje) debug("Hello world!") exit(1)

Nota: el comando debug(“Hello world!”) es un ejemplo de cómo utilizar el canal de error estándar para generar mensajes y depurar la salida.

3

Guarda el archivo de texto como script.py .

4

Cargue el archivo script.py a su espacio de trabajo.

Este script solo imprime un mensaje de "¡Hola, mundo!" mensaje. La interfaz del script utiliza la salida estándar para la comunicación de datos desde el script a la plataforma UiPath Process Mining . Si quieres incluir mensajes de estado en tu script, debes escribirlos en error estándar .

Nota:

El script de ejemplo sale con el código de estado 1. Cualquier código de estado distinto de 0 será interpretado por la plataforma UiPath Process Mining como una condición de error.

Configurar un origen de datos Script

A continuación, configure una tabla de fuentes de datos en la aplicación que llamará al script. Comience con algunos datos ficticios, ya que su script aún no los procesará. En esta etapa, se verificará que el script se ejecuta como se esperaba, es decir, que puede ver el mensaje "¡Hola, mundo!" Mensaje

Paso

Acción

1

Abra la aplicación en su entorno de desarrollo.

2

Ve a la pestaña Datos y crea una nueva tabla de cadenas de conexión.

3

Cambia el nombre de New_table a PythonExample .

4

Haz clic derecho en la tabla PythonExample y selecciona Avanzado > Opciones... .

5

En el cuadro de diálogo Opciones de tabla , establece el Ámbito de la tabla en Espacio de trabajo .

6

Haz doble clic en la tabla PythonExample para abrir la ventana Editar tabla de cadenas de conexión .

7

Introduce lo siguiente como Cadena de conexión :

``'driver={mvscript

8

Introduce lo siguiente como Consulta :

`` ''

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

El "n. ° 10" en el ejemplo inputData indica caracteres de nueva línea. Es decir definimos los siguientes datos CSV ficticios:

"a";"b";"c"

"1";"2";"3"

"4";"5";"6

9

Haz clic en Aceptar.

10

Haz clic en SI.

La actualización de la tabla falla y en el registro de errores debería ver el mensaje "¡Hola, mundo!" mensaje

La ubicación del archivo de script está determinada por el ámbito de la tabla. Esto se puede establecer en Servidor o Espacio de trabajo, o Ninguno. Si se establece en Ninguno, la ruta al archivo de script es absoluta. Si se establece en Servidor o Espacio de trabajo, la ubicación del script se interpreta como una ruta relativa.

Importante:

Debe obtener el mensaje "¡Hola, mundo!" ejemplo trabajando para poder completar con éxito los pasos restantes para configurar una interfaz con un script de python externo.

Configurar el origen de datos

Para exportar los datos que desea procesar en un script externo, el primer paso es seleccionar los campos que necesita en su script de Python. La forma de hacerlo es creando una nueva tabla que contenga todos los campos que necesita el script de Python. Esta tabla se exportará en formato .CSV más adelante para que el script de Python pueda leerla.

Para este ejemplo, tenemos una aplicación con una tabla Casos y una tabla Eventos . Consulta la siguiente ilustración.

Sigue estos pasos.

PasoAcción
1Crea una nueva tabla global , PythonInputData.
2Agregue un nuevo atributo de expresión, PythonInputData_Amount.
3Establece el Tipo en Búsqueda.
4Establece la tabla de entrada en Cases_base.
5Establece la expresión en listtojson(text(double(records.Amount))).
6Establece el nivel de expresión en root.
7Haz clic en Aceptar.
8Añade otro atributo de expresión de búsqueda, para Case_ID. Establece la expresión en listtojson(text(double(records.Case_ID))).
Nota:

El formato del atributo de expresión de búsqueda debe ser una lista de cadenas. Esto se debe a que la función csvtable() se utilizará para transformar los datos en formato .CSV , que espera una lista de registros (de texto). Dado que la función listtojson() requiere que su entrada sea de tipo texto, el formato de los registros en el archivo CSV resultante depende del tipo de atributo seleccionado (en este caso, Importe es del tipo Moneda) y de la visualización actualmente activa formato. Aquí, el tipo de moneda se convierte en doble, para facilitar el análisis de los registros más adelante en el script de Python.

Escribir el Script

En tu editor de texto, actualiza el archivo script.py con el siguiente código.

#!/usr/bin/pytho
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/pytho
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)

Sigue los siguientes pasos.

PasoAcción
1Carga el nuevo script en el espacio de trabajo, sobrescribe el archivo existente y vuelve a la aplicación.
2Haz clic derecho en la tabla PythonExample y selecciona Editar....
3Modifica el parámetro inputData de la cadena de consulta para la tabla PythonExample : + '&inputData=' + urlencode(csvtable( "Case_ID", jsontolist(PythonInputData.Case_ID), "Amount" , jsontolist(PythonInputData.Amount), )) Consulta la siguiente ilustración.
4Haz clic en Aceptar.
5Haz clic en (2x).
6Haz clic en Aceptar.

La tabla PythonExample ahora tiene dos atributos de origen de datos, Cantidad y Case_ID. Consulta la siguiente ilustración.

La inspección del atributo Cantidad revela que todas las cantidades se han multiplicado por dos. Consulta la siguiente ilustración, un ejemplo de la salida generada por el script python.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado