Funktionen

Funktionale Dokumentation

Dieses Modul enthält Funktionen zur Manipulation von Dokumentdaten und zur Durchführung verschiedener Operationen in Bezug auf Dokumentfelder.

Funktionen

set_field_value()

Setzt den Wert eines Feldes in den Dokumentdaten.

po_number = get_field_value(fields_dict, 'purchase_order', None)
if not po_number:
    po_number = ''
    
if po_number:
    set_field_value(fields_dict, "invoice_sub_type", 'Purchase Invoice')
else:
    set_field_value(fields_dict, "invoice_sub_type", 'Cost Invoice')

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

field_name*

string

Der Name des zu setzenden Feldes

value*

any

Der Wert, der für das Feld gesetzt werden soll

set_date_value()

Setzt den Wert eines Datumsfeldes in den Dokumentdaten.

invoice_date = get_field_value(document_data, 'invoice_date', None)
    
if not document_json.get("script_executed", False):
    if invoice_date:
        set_date_value(document_data, "accounting_date", invoice_date)
        document_json["script_executed"] = True

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

field_name*

string

Der Name des zu setzenden Feldes

value*

string

Der Datumswert, der im ISO-Format gesetzt werden soll (z.B. "2020-12-31").

add_days (optional)

int

Zusätzliche Tage zum angegebenen Datum hinzufügen Standard ist 0

skip_weekend (optional)

bool

Überspringt das Datum, wenn es auf das Wochenende fällt Standard ist False

set_amount_value()

Setzt den Wert eines Betragsfeldes in den Dokumentdaten.

total_amount = get_field_value(document_data, "net_amount")
lines_total = 0.0
set_amount_value(document_data, "net_amount",str(lines_total))

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

field_name*

string

Der Name des zu setzenden Feldes

value*

string

Der Wert, der für das Feld gesetzt werden soll (geben Sie eine Zahl als String an, z.B. "123456")

get_field_value()

Erhält den Wert eines Feldes aus den Dokumentdaten.

total_amount = get_field_value(document_data, "net_amount")
lines_total = 0.0
set_amount_value(document_data, "net_amount", str(lines_total))

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

field_name*

string

Der Name des zu setzenden Feldes

default_value (optional)

any

Gibt default_value zurück, wenn kein Feldwert gefunden wird Standard ist None

is_clean (optional)

bool

Konvertiert den Wert in Großbuchstaben und entfernt zusätzliche Leerzeichen Standard ist False

Gibt zurück:

  • Wert des angegebenen Feldes

create_new_field()

Erstellt ein neues Feld mit dem angegebenen Namen und Wert.

currency = get_field_value(document_data, 'currency', None)

if not currency:
    if 'currency' not in fields_dict:
        new_field = create_new_field('currency','')
        fields_dict['currency'] = new_field
        document_json['fields'].append(new_field)
    set_field_value(document_data, "currency", "USD")

Parameter:

Name
Typ
Beschreibung

field_name*

str

Die Dokumentdaten, die Feldinformationen enthalten

value (optional)

any

Der Anfangswert für das Feld Standard ist ""

Gibt zurück:

  • Wörterbuch des neu erstellten Feldes

delete_field()

Löscht ein Feld aus den Dokumentdaten.

field_amount = get_field_value(document_data, field_name)
    if not field_amount:
        delete_field(document_data, fields_dict, field_name)
    else:
        field_amount = float(field_amount)
        if field_amount == 0:
            delete_field(document_data, fields_dict, field_name)

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

field_name*

string

Der Name des zu löschenden Feldes

Gibt zurück:

  • Document_data als JSON und als Dict, nachdem das Feld gelöscht wurde

set_is_required()

Setzt das Attribut 'is_required' eines Feldes in den Dokumentdaten.

net_amount = get_field_value(document_data, "net_amount", None)
if net_amount:
    set_is_required(document_data, "tax_country", True)
    set_is_required(document_data, "tax_code_without_country", True)

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

field_name*

string

Der Name des zu setzenden Feldes

value*

bool

Der Wert, der für das Feld gesetzt werden soll

set_force_validation()

Setzt das Attribut 'force_validation' eines Feldes in den Dokumentdaten.

if supplier_id in supplier_to_check:
    set_force_validation(document_data, 'purchase_order', True, reset_validation=reset_validation)

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

field_name*

string

Der Name des zu setzenden Feldes

value*

bool

Der Wert, der für das Feld gesetzt werden soll

reset_validation (optional)

bool

Setzt das Attribut "is_validated" auf den angegebenen Wert Standard ist False

set_field_as_invalid()

Markiert ein Feld im Validierungsbildschirm als ungültig und hebt es hervor.

if not document_date:
    set_field_as_invalid(document_data, "document_date", "Es ist kein Datum vorhanden", "INVALID_VALUE")

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

field_name*

string

Der Name des zu markierenden Feldes als ungültig

message*

string

Die Validierungsnachricht für das Feld

code (optional)

string

Fehlercode für die Validierung

Standard ist None

set_field_attribute()

Setzt ein benutzerdefiniertes Attribut eines Feldes in den Dokumentdaten.

if purchase_order:
    if po_supplier_id != invoice_supplier_id:
        set_field_as_invalid(document_data, "supplier_name", "Supplier is different from PO supplier")
    else:
        set_field_attribute(document_data, "supplier_name", "is_valid", True)
        set_field_attribute(document_data, "supplier_name", "validation_message","")

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

field_name*

string

Der Name des zu setzenden Feldes

attribute_name*

string

Der Name des Attributs, das gesetzt werden soll

value*

any

Der Wert, der für das Attribut gesetzt werden soll

is_supplier_valid()

Überprüft, ob ein Lieferant basierend auf den angegebenen Kriterien gültig ist.

bool = is_supplier_valid(user, {"name": "Supplier Inc."})

Parameter:

Name
Typ
Beschreibung

user*

UserAuthentication

Der authentifizierte Benutzer

filter_data_json*

json

Filterkriterien zur Validierung des Lieferanten

sub_org_id (optional)

string

Optionale ID der Unterorganisation für die Filterung Standard ist None

Gibt zurück:

  • True, wenn der Benutzer gültig ist

  • False, wenn der Benutzer ungültig ist

get_document_content()

Dekodiert Dokumentdaten und gibt sie als String zurück.

document_content = get_document_content(doc)
if document_content:
    document_content = document_content.lower()

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

Gibt zurück:

  • Dokumentdaten als String.

update_document_status_with_doc_id()

Aktualisiert den Status eines Dokuments mit einer bestimmten ID auf den angegebenen Status.

genehmigung_user_1 = get_field_value(document_data, 'genehmigung_user_1', None)

if genehmigung_user_1 != "LEER":
    update_document_status_with_doc_id(document_json['doc_id'], user, document_json['org_id'], "validated_pending_approval")

Parameter:

Name
Typ
Beschreibung

doc_id*

string

Die ID des zu aktualisierenden Dokuments

user*

entweder user ID oder UserAuthentication Objekt

Der Benutzer, der die Aktualisierung durchführt

org_id*

string

Die ID der Organisation, zu der das Dokument gehört

status*

string

Der neue Status des Dokuments

message (optional)

string

Optionale Nachricht, die mit der Statusaktualisierung verbunden ist Standard ist None

doc_classification_class (optional)

string

Optionale Dokumentklassifikationsklasse Standard ist None

get_lov_values()

Erhält die LOV-Werte von einer bestimmten org_id und einem Schlüssel.

reverse_charge_to_check = get_lov_values(org_id, 'Kosten', return_type="list_of_values")

Parameter:

Name
Typ
Beschreibung

org_id*

string

Die ID der Organisation, zu der das Dokument gehört

key*

string

Der Schlüssel der erforderlichen Liste von Werten

return_type (optional)

string

Der Typ, in dem die Daten zurückgegeben werden sollen Standard ist 'list_of_objects'

sub_org_id (optional)

string

Optionale ID der Unterorganisation für die Filterung Standard ist None

Gibt zurück:

  • LOV-Werte als Liste von Objekten oder als Liste.

format_decimal_to_locale()

Formatiert einen Dezimalwert im Format en_US.UTF-8.

standard_value = "{0:.2f}".format(total)
formatted_value = format_decimal_to_locale(
    standard_value, document_json['amount_format_locale']
)

Parameter:

Name
Typ
Beschreibung

value*

float, decimal.Decimal, str

Der Wert, der formatiert werden soll.

to_locale (optional)

string

Das Format, in das der Wert umgewandelt werden soll. Standard ist 'en_US.UTF-8'

max_decimal_places (optional)

int

Maximale Anzahl der Dezimalstellen, die berücksichtigt werden sollen. Standard ist 4

min_decimal_places (optional)

int

Die minimale Anzahl der Dezimalstellen, die berücksichtigt werden sollen. Standard ist 2

  • value: Der Wert, der formatiert werden soll.

  • to_locale (optional): Das Format, in das der Wert umgewandelt wird.

  • max_decimal_places (optional): Die maximale Anzahl der Dezimalstellen, die berücksichtigt werden sollen.

  • min_decimal_places (optional): Die minimale Anzahl der Dezimalstellen, die berücksichtigt werden sollen.

Gibt zurück:

  • Der formatierte Wert.

compare_values()

Vergleicht zwei Werte auf Gleichheit und behandelt verschiedene Datentypen.

result = compare_values(10, "10")

Parameter:

Name
Typ
Beschreibung

value1*

any

Der erste Wert, der verglichen werden soll

value2*

any

Der zweite Wert, der verglichen werden soll

Gibt zurück:

  • True, wenn die Werte gleich sind, und False, wenn sie unterschiedlich sind.

create_document_task()

Erstellt eine Aufgabe, weist sie einem Benutzer oder einer Gruppe zu, setzt die Priorität und sendet optional eine E-Mail.

if not is_task_created:
            create_document_task(user, document_data, "Herkunftsland außerhalb der EU", "Die Gelangensbestätigung kommt von einem Land außerhalb der EU. Bitte das MRN-Dokument anhängen.", "high", 1007, None, False)
            document_data["document_json"]["country_check_task_created"] = True

Parameter:

Name
Typ
Beschreibung

user*

entweder user ID oder UserAuthentication Objekt

Der Benutzer, der die Aktualisierung durchführt

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

title*

string

Der Titel der Aufgabe

description*

string

Die Beschreibung der Aufgabe

priority*

string

Die Priorität der Aufgabe

assigned_to_user_id*

int

Die ID des Benutzers, dem die Aufgabe zugewiesen werden soll

assigned_to_group_id*

int

Die ID der Gruppe, der die Aufgabe zugewiesen werden soll

send_email*

bool

Bestimmt, ob eine E-Mail gesendet werden soll oder nicht

Gibt zurück:

  • Dict, das angibt, ob der Prozess erfolgreich war oder nicht.

set_document_sub_org_id()

Setzt die sub_org_id der angegebenen document_data.

if sub_org_id != current_sub_org_id:
    document_data["document_json"]["sub_org_id4"] = sub_org_id
    set_document_sub_org_id(document_data, sub_org_id)

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

sub_org_id*

string

Optionale ID der Unterorganisation für die Filterung

get_user_by_id()

Erhält den Benutzer mit der entsprechenden Benutzer-ID.

requester_mail = str(get_user_by_id(str(requester)).email.lower())

Parameter:

Name
Typ
Beschreibung

user_id*

string

Die ID des Benutzers

Gibt zurück:

  • Der Benutzer mit der entsprechenden Benutzer-ID.

get_group_by_id()

Erhält die Gruppe mit der entsprechenden Gruppen-ID.

group_name  = str(get_group_by_id(assigned_to_group_id))

Parameter:

Name
Typ
Beschreibung

group_id*

string

Die ID der Gruppe

Gibt zurück:

  • Die Gruppe mit der entsprechenden Gruppen-ID.

add_table_column()

Fügt eine Spalte zur angegebenen Tabelle hinzu.

table = tables_dict.get("ORDER_CONFIRMATION_TABLE")

if table:
    add_table_column(table, "PROMISED_DELIVERY_DATE")

Parameter:

Name
Typ
Beschreibung

table*

string

Die Tabelle, in der die Spalte hinzugefügt werden soll

col_name*

string

Der Name der Spalte

default_value (optional)

any

Der Anfangswert für das Feld

Standard ist None

get_column_value()

Erhält den Wert einer bestimmten Spalte.

for row in table['rows']:
        unit = get_column_value(row, "UNIT")

Parameter:

Name
Typ
Beschreibung

row*

string

Die Zeile, in der sich der Wert befindet

col_name*

string

Der Name der Spalte

default_value (optional)

any

Der Anfangswert für das Feld Standard ist None

is_clean (optional)

bool

Konvertiert den Wert in Großbuchstaben und entfernt zusätzliche Leerzeichen Standard ist False

Gibt zurück:

  • Den Wert der angegebenen Spalte.

set_column_value()

Setzt den Wert einer bestimmten Spalte.

supplier_id = get_field_value(document_data, "supplier_id", "")

quote_table = tables_dict["QUOTE_TABLE"]

for row in quote_table.get('rows', []):
    set_column_value(row,"SUPPLIER_ID", supplier_id)

Parameter:

Name
Typ
Beschreibung

row*

string

Die Zeile, in der sich der Wert befindet

col_name*

string

Der Name der Spalte

value*

any

Der Wert, der an der angegebenen Stelle gesetzt werden soll

Gibt zurück:

  • True, wenn die Änderung erfolgreich war.

set_column_date_value()

Setzt den Datumswert einer bestimmten Spalte.

set_column_date_value(document_data, row, "DELIVERY_DATE", "2020-12-31", add_days=2)

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

row*

string

Die Zeile, in der sich der Wert befindet

col_name*

string

Der Name der Spalte

value*

string

Der Datumswert, der im ISO-Format gesetzt werden soll (z.B. "2020-12-31")

add_days (optional)

int

Zusätzliche Tage zum angegebenen Datum hinzufügen Standard ist 2

set_column_amount_value()

  • Konvertiert den Wert in einen String und setzt den Wert für die Spalte.

  • Setzt den Spalteninhalt auf den Wert.

  • Formatiert den Wert gemäß der Locale.

quantity = float(quantity) / 1000
set_column_amount_value(document_data, row, "QUANTITY", str(quantity))

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

row*

string

Die Zeile, in der sich der Wert befindet

column_name*

string

Der Name der Spalte

value*

string

Der Wert, der für das Feld gesetzt werden soll (geben Sie eine Zahl als String an, z.B. "123456")

remove_rows_from_table()

Entfernt Zeilen aus der angegebenen Tabelle.

count = 1
start = 1
remove_rows_from_table(document_data,"INVOICE_TABLE",count,start) 

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

table_name*

string

Der Name der Tabelle

count*

int

Wie viele Zeilen gelöscht werden sollen

start*

int

Der Ausgangspunkt

remove_all_rows_except_one_from_table()

Entfernt alle Zeilen außer einer aus der angegebenen Tabelle.

count = 1
start = 1
remove_rows_from_table(document_data,"INVOICE_TABLE",count,start) 

Parameter:

Name
Typ
Beschreibung

document_data*

dictionary

Die Dokumentdaten, die Feldinformationen enthalten

line_number*

int

Die Nummer der Zeile, die nicht entfernt werden soll

Eingebaute Python-Funktionen

Sie können auch einige der eingebauten Python-Funktionen nutzen:

  • abs(): Gibt den Absolutwert einer Zahl zurück.

  • len(): Gibt die Länge (Anzahl der Elemente) eines Objekts, wie einer Liste oder einem String, zurück.

  • isinstance(): Überprüft, ob ein Objekt eine Instanz einer bestimmten Klasse oder eines bestimmten Typs ist.

  • print(): Gibt Ausgaben auf der Konsole aus.

  • round(): Rundet eine Fließkommazahl auf eine bestimmte Anzahl von Dezimalstellen.

  • str_to_bool(): Konvertiert einen String in einen booleschen Wert (True oder False).

  • type(): Gibt den Typ eines Objekts zurück.

  • dict(): Erstellt ein Wörterbuch-Objekt.

  • list(): Erstellt ein Listen-Objekt.

  • str(): Konvertiert einen Wert in einen String.

  • float(): Konvertiert einen Wert in eine Fließkommazahl.

  • int(): Konvertiert einen Wert in eine ganze Zahl.

Für weitere Details besuchen Sie die offizielle Python-Dokumentation: Eingebaute Funktionen.

Funktionen der String-Klasse

Sie können auch diese Funktionen speziell für die Arbeit mit Strings verwenden:

  • lower(): Konvertiert alle Zeichen in einem String in Kleinbuchstaben.

  • upper(): Konvertiert alle Zeichen in einem String in Großbuchstaben.

  • split(): Teilt einen String basierend auf einem Trennzeichen (z.B. Leerzeichen oder Komma) in eine Liste auf.

  • startswith(): Überprüft, ob ein String mit einem bestimmten Präfix beginnt.

  • endswith(): Überprüft, ob ein String mit einem bestimmten Suffix endet.

  • strip(): Entfernt führende oder nachfolgende Leerzeichen aus einem String.

Funktionen aus dem Python-Mathematikmodul

Diese Funktionen sind Teil des Mathematikmoduls und sind nützlich für mathematische Operationen:

  • floor(): Gibt die größte ganze Zahl zurück, die kleiner oder gleich einer gegebenen Zahl ist.

  • ceil(): Gibt die kleinste ganze Zahl zurück, die größer oder gleich einer gegebenen Zahl ist.

Für weitere Informationen besuchen Sie die offizielle Python-Dokumentation: Mathematikmodulfunktionen.

Funktionen für reguläre Ausdrücke

  • re.search(): Durchsucht einen String nach einem Muster und gibt das erste Ergebnis zurück.

Siehe weitere Details hier: re.search-Dokumentation.

Externe Funktionen

Hier sind einige nützliche Funktionen aus externen Bibliotheken:

  • deepcopy(): Erstellt eine Kopie eines Objekts, einschließlich verschachtelter Objekte (aus dem Copy-Modul). Deepcopy-Dokumentation.

  • levenshtein_distance(): Berechnet die Anzahl der Änderungen (Einfügungen, Löschungen, Ersetzungen), die erforderlich sind, um einen String in einen anderen zu ändern. Diese Funktion ist in der Jellyfish-Bibliothek verfügbar.

Datum- und Zeitfunktionen

Sie können die folgenden Funktionen für die Arbeit mit Daten und Zeiten verwenden:

  • strptime(): Konvertiert einen String in ein datetime-Objekt basierend auf einem bestimmten Format.

  • strftime(): Formatiert ein datetime-Objekt in einen String basierend auf einem bestimmten Format.

Für weitere Informationen besuchen Sie die offizielle Dokumentation: Datum- und Zeitfunktionen.

Last updated

Was this helpful?