PYCOMMAND-Befehl

Konzept-Informationen

Integration von Python-Skripts

Übergibt eine Analytics-Tabelle als einen Datenrahmen an ein externes Python-Skript und erstellt mit der zurückgegebenen Ausgabe des Python-Skripts eine neue Tabelle innerhalb des Analytics-Projekts.

Syntax

PYCOMMAND <<FIELDS> Feld <...n>|<FIELDS> ALL> <IF Test> <TO Tabellenname> SCRIPT Pfad_zum_Skript <WHILE Test> <FIRST Bereich|NEXT Bereich> <KEEPTITLE> <SEPARATOR Zeichen> <QUALIFIER Zeichen> <OPEN>

Parameter

Name Beschreibung

FIELDS Feldname <...n> | FIELDS ALL

Optional

Die Felder aus der Analytics-Quelltabelle oder die Ausdrücke, die in den Datenrahmen für das Python-Skript aufgenommen werden sollen.

  • FIELDS Feldname Das angegebene Feld oder die angegebenen Felder oder Ausdrücke einschließen

    Trennen Sie Feldnamen durch Leerzeichen. Felder werden in derselben Reihenfolge exportiert, in der Sie sie auflisten.

    Um ein verbundenes Feld zu exportieren, geben Sie einen voll qualifizierten Feldnamen an (Tabellenname.Feldname). Beispiel: Lieferant.Lieferantenname

  • FIELDS ALL Alle Felder in der Tabelle einschließen

    Felder werden in derselben Reihenfolge exportiert, in der sie im Tabellenlayout dargestellt werden. Verbundene Felder werden nicht exportiert.

IF Test

Optional

Eine Bedingung, die erfüllt werden muss, damit der aktuelle Datensatz verarbeitet wird. Der Datenrahmen, den das Python-Skript zurückgibt, enthält nur Datensätze, welche die Bedingung erfüllen.
TO Tabellenname

Optional

Der Ort, an den die Ergebnisse des Befehls gesendet werden sollen:

  • Tabellenname Speichert die Ergebnisse in einer Analytics-Tabelle.

    Geben Sie Tabellenname als in Anführungszeichen gesetzte Zeichenfolge mit der Dateierweiterung „.FIL“ an. Beispiel: TO "Ausgabe.FIL"

    Standardmäßig wird die Tabellendatendatei (.FIL) im Ordner mit dem Analytics-Projekt gespeichert.

    Verwenden Sie entweder einen absoluten oder relativen Dateipfad, um die Datendatei in einen anderen bestehenden Ordner zu speichern:

    • TO "C:\Ausgabe.FIL"
    • TO "Ergebnisse\Ausgabe.FIL"

    Hinweis

    Tabellennamen sind auf 64 alphanumerische Zeichen beschränkt, was die .FIL-Dateierweiterung nicht einbezieht. Der Name kann einen Unterstrich beinhalten ( _ ), aber keine anderen Sonderzeichen oder Leerzeichen. Er kann nicht mit einer Ziffer beginnen.

Die Ausgabetabelle wird aus dem Datenrahmen erstellt, den das Python-Skript zurückgibt.

SCRIPT Pfad_zum_Skript

Der vollständige oder relative Pfad zum Python-Skript innerhalb des Dateisystems. Schließen Sie Pfad_zum_Skript in Anführungszeichen ein.

WHILE Test

Optional

Ein bedingter Ausdruck, der wahr sein muss, damit ein Datensatz verarbeitet wird. Der Befehl wird ausgeführt, bis die Bedingung falsch ist oder das Tabellenende erreicht wurde.

Hinweis

Wenn Sie WHILE zusammen mit FIRST oder NEXT verwenden, endet die Datensatzverarbeitung, sobald eine Grenze erreicht wird.

FIRST Bereich | NEXT Bereich

Optional

Die Anzahl der zu verarbeitenden Datensätze:

  • FIRST Verarbeitung beim ersten Datensatz beginnen, bis die angegebene Datensatzanzahl erreicht wird
  • NEXT Verarbeitung beim aktuell ausgewählten Datensatz beginnen, bis die angegebene Datensatzanzahl erreicht wird

Verwenden Sie Bereich, um die Anzahl der zu verarbeitenden Datensätze anzugeben.

Wenn Sie FIRST und NEXT nicht angeben, werden standardmäßig alle Datensätze verarbeitet.

KEEPTITLE

Optional

Behandeln Sie die erste Datenzeile als Feldnamen und nicht als Daten. Falls dies ausgelassen wird, werden keine Feldnamen an das Python-Skript gesendet.

Diese Option ist notwendig, falls Sie Daten unter den Spaltentiteln innerhalb des Python-Skripts abrufen möchten.

SEPARATOR Zeichen

Optional

Das Zeichen, das als Trennzeichen zwischen Feldern verwendet werden soll. Der Zeichen muss als in Anführungszeichen gesetzte Zeichenfolge angegeben werden.

Das Standardzeichen ist ein Komma.

Hinweis

Vermeiden Sie die Verwendung von Zeichen, die in den Eingabefeldern vorkommen. Wenn das SEPARATOR-Zeichen in den Eingabedaten erscheint, kann sich dies auf die Ergebnisse auswirken.

QUALIFIER Zeichen

Optional

Das Zeichen, das als Textkennzeichner zum Umschließen und Identifizieren von Feldwerten verwendet wird. Der Zeichen muss als in Anführungszeichen gesetzte Zeichenfolge angegeben werden.

Das Standardzeichen ist ein doppeltes Anführungszeichen.

Hinweis

Vermeiden Sie die Verwendung von Zeichen, die in den Eingabefeldern vorkommen. Wenn das QUALIFIER-Zeichen in den Eingabedaten erscheint, kann sich dies auf die Ergebnisse auswirken.

OPEN

Optional

Öffnet die durch den Befehl erstellte Tabelle, nachdem der Befehl ausgeführt wird. Nur gültig, wenn der Befehl eine Ausgabetabelle erstellt.

Beispiele

Roundtrip-Daten zwischen Analytics und Python-Skript

Sie senden Kreditorendaten aus Analytics an ein Python-Skript, führen einige Analysen oder Operationen mit den Daten in Python durch und exportieren dann die Python-Ergebnisse zurück nach Analytics.

Analytics-Befehl

PYCOMMAND exportiert die angegebenen Kreditorenfelder in das Python-Skript testInOutput.py, wartet, während das Skript ausgeführt wird, und speichert dann die Ergebnisse aus dem Python-Skript in einer neuen Analysetabelle namens AN_Python_roundtrip.

OPEN Ap_Trans
PYCOMMAND FIELDS Vendor_No Invoice_No Invoice_Date Invoice_Amount Prodno Quantity Unit_Cost SCRIPT "testInOutput.py" KEEPTITLE TO AN_Python_roundtrip.fil

Diese Version des Befehls exportiert alle Felder in der Tabelle Ap_Trans in das Python-Skript.

OPEN Ap_Trans
PYCOMMAND FIELDS ALL SCRIPT "testInOutput.py" KEEPTITLE TO AN_Python_roundtrip.fil

Python-Skript (testInOutput.py)

import sys
import os
import logging
import pandas as pd
from acl_py_util import acl_py_util
from acl_py_util import logger

def main(args):
error_file = os.getenv("ACL_PY_ERROR_FILE")
if not error_file:
error_file = os.getenv('LOCALAPPDATA') + "/acl_py_utl.error"

# Daten aus Analytics nach Python exportieren
# In Analytics enthaltene Python-Funktion verwenden
df = acl_py_util.from_an()

''' Beispiel-Benutzercode '''

# acl_py_util-Protokolleintrag mit Spaltennamen und Zeilen aus Datenrahmen erstellen
logger.info(df)

# Ursprünglichen Datenrahmen in neuen Datenrahmen kopieren
user_df = df.copy()

# Spalte „Invoice_Amount“ mit 2 multiplizieren
user_df.Invoice_Amount = user_df.Invoice_Amount * 2

# acl_py_util-Protokolleintrag mit Spaltennamen und Zeilen aus Datenrahmen erstellen
logger.info(user_df)

''' Beispiel-Benutzercode Ende '''

# Daten aus Python nach Analytics exportieren
# In Analytics enthaltene Python-Funktion verwenden
acl_py_util.to_an(user_df)

# acl_py_util-Protokolleintrag erstellen, um Skriptabschluss aufzuzeichnen, und leere Zeile hinzufügen
logger.info(f"*** Python script completed successfully ***\n")

if __name__ == "__main__":
main(sys.argv)

 

Verwenden eines Python-Skripts zum Importieren von Daten in Analytics

Sie verwenden ein Python-Skript, um Kreditorendaten in Analytics zu importieren.

Im Rahmen des Beispiels generiert das Python-Skript einige Beispieldaten. Normalerweise importiert ein Skript Daten aus einer externen Quelle in Python, führt eine Analyse oder Dateivorbereitung in Python durch und exportiert dann die Ergebnisse in Analytics.

Analytics-Befehl

PYCOMMAND ruft das Python-Skript testOutput.py auf und speichert dann die Ergebnisse aus dem Python-Skript in einer neuen Analytics-Tabelle namens Input_from_Python.

PYCOMMAND SCRIPT "testOutput.py" TO Input_from_Python.fil

Python-Skript (testOutput.py)

import sys
import os
import logging
import pandas as pd
from acl_py_util import acl_py_util
from acl_py_util import logger

def main(args):

# Beispiel-Kreditorendaten initialisieren
data = {'Vendor_Number': ['12701', '10134', '11663'],
'Vendor_Name': ['Harris Projects', 'Stars Trading', 'More Power Industries'],
'Vendor_City': ['Baton Rouge', 'Milwaukee', 'Los Angeles'],
'Invoice_Number': ['232556', '74841', '5986811'],
'Invoice_Date': ['2024-10-22', '2024-10-22', '2024-10-23'],
'Invoice_Amount': [2064.48, 18883.34, 1145.58],
'Product_Number': ['030302903', '030302303', '090501551'],
'Quantity': [204, 458, 626],
'Unit_Cost': [10, 41, 1]}

# Datenrahmen erstellen
df = pd.DataFrame(data)

# acl_py_util-Protokolleintrag mit Spaltennamen und Zeilen aus Datenrahmen erstellen
logger.info(df)

# Beispiel-Benutzercode

user_df = df

# Beispiel-Benutzercode Ende

# Daten aus Python nach Analytics exportieren
# In Analytics enthaltene Python-Funktion verwenden
acl_py_util.to_an(user_df)

# acl_py_util-Protokolleintrag erstellen, um Skriptabschluss aufzuzeichnen, und leere Zeile hinzufügen
logger.info(f"*** Python script completed ***\n")

if __name__ == "__main__":
main(sys.argv)

Bemerkungen

Wie funktioniert PYCOMMAND?

PYCOMMAND übergibt eine Analytics-Tabelle als Datenrahmen an ein externes Python-Skript, wartet, während das Python-Skript ausgeführt wird, und erstellt dann eine neue Tabelle in Analytics unter Verwendung der vom Python-Skript zurückgegebenen Ausgabe. Sie können PYCOMMAND im Verlauf eines Analytics-Skripts beliebig oft verwenden.

Die Analytics-Installation enthält zwei Python-Funktionen, die Sie im Python-Skript zur Eingabe und Ausgabe von Daten verwenden:

  • Eingabedatenacl_py_util.from_an() importiert Daten aus Analytics nach Python

  • Ausgabedatenacl_py_util.to_an() exportiert Daten aus Python nach Analytics

Protokolldateien

Analytics erstellt zwei mit PYCOMMAND verbundene Protokolldateien. Die Protokolle können Ihnen bei der Fehlerbehebung bei der Integration zwischen Analytics und Python sowie bei der Fehlerbehebung in den zugehörigen Analytics- und Python-Skripts helfen.

Die Protokolldateien werden im Analytics-Projektordner gespeichert:

  • aclpython.log – protokolliert Analytics-Fehlermeldungen, wenn PYCOMMAND fehlschlägt

  • acl_py_util.log – protokolliert Informationsmeldungen, die vom Python-Skript ausgegeben werden

Einrichten von acl_py_util.log

acl_py_util.log ist ein konfigurierbares Protokoll, das in der Analytics-Installation enthalten ist. Führen Sie die folgenden Schritte aus, um das Protokoll einzurichten und zu konfigurieren.

Hinweis

Sie müssen das Protokoll für jedes Python-Skript, in dem Sie es verwenden möchten, einzeln einrichten und konfigurieren.

  1. Fügen Sie in den Block der Importanweisung am Anfang eines Python-Skripts die folgende Anweisung ein:

    from acl_py_util import logger

  2. Fügen Sie an jeder Stelle des Python-Skripts, an der Sie einen Protokolleintrag erstellen wollen, diese Zeile ein:

    logger.info(Python_object)

    Beispiel:

    • logger.info(dataframe_name.head(10)) erstellt einen Protokolleintrag mit den Spaltennamen und den ersten 10 Zeilen des aktuellen Zustands des genannten Datenrahmens.

    • logger.info(f"*** Python script completed ***\n") wird am Ende des Skripts eingefügt; zeichnet den Abschluss des Skripts im Protokoll auf und fügt bei separaten Skriptläufen eine Leerzeile zwischen den Protokolldetails ein.