Metodo load_working_file()

Viene caricato un file di lavoro dall'area Dati di lavoro per renderlo disponibile per gli script Python/HCL. Il file caricato è una copia, non l'originale.

Sintassi

hcl.load_working_file(name = "working_file_name")

Parametri

Nome Descrizione
name = working_file_name

Il nome del file di lavoro. Il nome deve essere racchiuso tra virgolette.

È necessario replicare esattamente il nome del file nella scheda Dati di lavoro, inclusa l'estensione del file. Il file e lo script che carica il file devono trovarsi nello stesso robot.

working_file_name distingue tra maiuscole e minuscole. Per maggiori informazioni, consultare Maiuscole/minuscole dei nomi dei file.

Nota

working_file_name distingue tra maiuscole e minuscole in Metodo save_working_file().

Restituisce

In caso di esito positivo, il codice di ritorno 202. In caso di errore, un messaggio di errore.

Esempi

Nota

È possibile caricare qualsiasi tipo di file supportato dalla scheda Dati di lavoro in un robot HighBond o del workflow e utilizzarlo in uno script Python/HCL. Di seguito vengono utilizzati come esempi i file CSV ed Excel perché sono due dei tipi più comuni di file flat utilizzati per archiviare e trasferire dati.

Esempi CSV

Caricare un file dalla scheda Dati di lavoro

Si desidera eseguire un'analisi dei duplicati dei record delle fatture del primo trimestre del 2022. I record sono contenuti nel file Invoices_Q1_2022.csv precedentemente caricato nell'area Dati di lavoro nel robot. Nello script di analisi, è necessario caricare il file prima di poter eseguire qualsiasi analisi.

hcl.load_working_file(name = "Invoices_Q1_2022.csv")

Caricare un file di lavoro CSV e convertilo in un dataframe

Si desidera convertire un file di lavoro CSV caricato in un dataframe in modo da poter lavorare con i dati in un formato tabellare utilizzando Python o HCL.

Caricare un file CSV e convertilo in un dataframe Pandas

# Importa la libreria Pandas 
import pandas as pd

#Caricare un file CSV dalla scheda Dati di lavoro
hcl.load_working_file(name = "Invoices_Q1_2022.csv") 

# Leggi il file CSV in un dataframe Pandas 
invoices_q1_2022_pd_df = pd.read_csv("Invoices_Q1_2022.csv") 

# Visualizza il dataframe Pandas
invoices_q1_2022_pd_df

Caricare un file CSV e convertilo in un dataframe HCL

#Caricare un file CSV dalla scheda Dati di lavoro
hcl.load_working_file(name = "Invoices_Q1_2022.csv")

#Leggi un file CSV in un dataframe HCL
invoices_q1_2022_hcl_df = hcl.read_csv("Invoices_Q1_2022.csv")

# Visualizza il dataframe HCL
invoices_q1_2022_hcl_df

Convertire un dataframe HCL in un dataframe Pandas

# Converti un dataframe HCL in un dataframe Pandas
invoices_q1_2022_pd_df = invoices_q1_2022_hcl_df.to_pandas()

# Visualizza il dataframe Pandas
invoices_q1_2022_pd_df

Caricare un file di lavoro CSV compresso e convertilo in un dataframe

Utilizzando il comando ACLScript EXPORT, è possibile caricare i dati in una tabella di Analytics locale in un file CSV compresso (*.csv.gz) nella scheda Dati di lavoro in un robot HighBond o del workflow. Si desidera caricare il file CSV compresso e convertirlo in un dataframe in modo da poter lavorare con i dati in un formato tabellare utilizzando Python o HCL.

# Importa la libreria Pandas 
import pandas as pd

# Caricare un file CSV compresso (*.csv.gz) dall'area Dati di lavoro
hcl.load_working_file(name = "Invoices_Q1_2022.csv.gz")

# Leggi il file CSV compresso in un dataframe Pandas
invoices_q1_2022_pd_df = pd.read_csv("Invoices_Q1_2022.csv.gz", compression="gzip", header=0)

# Visualizza il dataframe Pandas
invoices_q1_2022_pd_df

Esempi Excel

Caricare un file di lavoro Excel e convertilo in un dataframe

Si desidera convertire un file di lavoro Excel caricato in un dataframe in modo da poter lavorare con i dati in un formato tabellare utilizzando Python o HCL.

File Excel con estensione *.xlsx

L'esempio seguente mostra la conversione del file Excel caricato in un dataframe Pandas. Se necessario, è possibile convertire il dataframe Pandas in un dataframe HCL, come mostrato nell'esempio immediatamente sopra.

# Importa la libreria Pandas 
import pandas as pd

# Caricare un file Excel (*.xlsx) dall'area Dati di lavoro
hcl.load_working_file(name = "Invoices_Q1_2022.xlsx") 

# Leggi il file Excel in un dataframe Pandas 
invoices_q1_2022_pd_df = pd.read_excel("Invoices_Q1_2022.xlsx") 

# Visualizza il dataframe Pandas
invoices_q1_2022_pd_df

File Excel con estensione *.xls

Per convertire un file Excel che utilizza il vecchio formato *.xls è necessario prima installare la libreria Python xlrd.

Nota

Analogamente all'applicazione Jupyter Notebook, è necessario eseguire l'installazione del pacchetto Python (pip install) in una cella separata dell'editor di script.

L'installazione di pacchetti Python esterni è supportata nei robot HighBond ma non nei robot del workflow.

pip install xlrd
# Importa la libreria Pandas 
import pandas as pd

# Caricare un file Excel (*.xls) dall'area Dati di lavoro
hcl.load_working_file(name = "Invoices_Q1_2022.xls") 

# Leggi il file Excel in un dataframe Pandas 
invoices_q1_2022_pd_df = pd.read_excel("Invoices_Q1_2022.xls") 

# Visualizza il dataframe Pandas
invoices_q1_2022_pd_df

Caricare un file di lavoro Excel e modificarlo

Si desidera caricare un file di lavoro Excel, modificarlo e quindi salvarlo nuovamente nella scheda Dati di lavoro. È possibile utilizzare metodi di una libreria Python come pyexcel per apportare modifiche senza dover convertire il file Excel in un dataframe Pandas o HCL.

Nota

Analogamente all'applicazione Jupyter Notebook, è necessario eseguire l'installazione del pacchetto Python (pip install) in una cella separata dell'editor di script.

L'installazione di pacchetti Python esterni è supportata nei robot HighBond ma non nei robot del workflow.

pip install pyexcel
pip install pyexcel-xlsx
# Importa la libreria pyexcel
import pyexcel as pe

# Importa il metodo get_data dalla libreria pyexcel-xlsx
from pyexcel_xlsx import get_data

# Caricare un file Excel dall'area Dati di lavoro
hcl.load_working_file(name = "Invoices_Q1_2022.xlsx")

# Copia i dati di Excel in un foglio pyexcel
sheet = pe.get_sheet(file_name="Invoices_Q1_2022.xlsx")

# Elimina due righe di informazioni di intestazione indesiderate dalla parte superiore del foglio di lavoro
del sheet.row[0, 1]

# Assegna un nome alle colonne utilizzando i valori dei nomi in quella che ora è la prima riga del foglio di lavoro
sheet.name_columns_by_row(0)

# Elimina tre colonne indesiderate dal foglio di lavoro
del sheet.column['Prodno', 'Quantity', 'Unit_Cost']

# Salva il foglio pyexcel in un nuovo file Excel
sheet.save_as("Invoices_Q1_2022_prepared.xlsx")

# Salvare il nuovo file Excel nell'area Dati di lavoro
hcl.save_working_file(name = "Invoices_Q1_2022_prepared.xlsx")

Osservazioni

Area Dati di lavoro

L'area Dati di lavoro in un robot è accessibile in due punti diversi dell'interfaccia utente di Robot:

  • Scheda Dati di lavoro

  • Pannello Dati di lavoro nell'editor di script

Entrambe le posizioni consentono di accedere alla stessa area di archiviazione dati centrale di un robot. Le azioni eseguite in una posizione vengono automaticamente sincronizzate nell'altra.

Generazione automatica del metodo load_working_file()

Come funzione di risparmio di manodopera, il pannello Dati di lavoro nell'editor di script genera automaticamente una copia del metodo load_working_file() con un nome di file specifico precompilato:

  • Pulsante Copia frammento Nel pannello Dati di lavoro, ogni riga contiene il pulsante Copia snippet . Selezionare il pulsante per copiare uno snippet con il metodo load_working_file() precompilato con il nome del file nella riga. È possibile incollare il frammento in qualsiasi cella dell'editor di script.

  • Creazione automatica della cella dell'editor di script Quando si carica un file nel pannello Dati di lavoro nell'editor di script, una cella contenente il metodo load_working_file() precompilato con il nome del file viene creato automaticamente all'inizio dello script. È possibile utilizzare la cella come punto di partenza oppure copiare il metodo in un'altra posizione dello script e quindi eliminare la cella.

Comportamento di caricamento del file

Quando si carica un file dalla scheda Dati di lavoro nell'ambiente di runtime Python, si carica una copia, non il file originale. Se nell'ambiente di runtime esiste già un file con lo stesso nome e la stessa lettera maiuscola/minuscola, questo viene automaticamente sovrascritto.

Maiuscole/minuscole dei nomi dei file

Quando si specifica working_file_name non si fa distinzione tra maiuscole e minuscole. Quando si esegue uno script in modo interattivo nell'editor di script, qualsiasi carattere maiuscolo o minuscolo utilizzato per working_file_name viene replicato nel pannello File di sessione. Se si carica lo stesso file due volte e ogni volta si utilizza una diversa combinazione di maiuscole e minuscole per il nome del file, si ottengono due file di sessione identici con nomi con maiuscole e minuscole diverse. Il comportamento è lo stesso quando si utilizza un'attività per eseguire uno script.

Tuttavia, una volta caricato un file nell'ambiente Python, i nomi dei file distinguono tra maiuscole e minuscole. Quindi, dopo aver caricato un file di lavoro, qualsiasi codice successivo dovrà replicare la formattazione maiuscola o minuscola utilizzata quando è stato caricato il file.

Per evitare semplici errori di script causati da nomi di file con maiuscole e minuscole non corrispondenti, la procedura consigliata quando si carica un file di lavoro è quella di replicare le maiuscole e minuscole del nome del file nella scheda Dati di lavoro.

Messaggio di errore dello script

Ognuna di queste situazioni produce il messaggio di errore dello script mostrato di seguito:

  • il file specificato non esiste nella scheda Dati di lavoro nel robot contenente lo script

  • il nome del file è scritto in modo errato

  • manca l'estensione del file

Messaggio di errore dello script:

Eccezione: file non trovato nella sezione di lavoro