Functies

Functionele Documentatie

Deze module bevat functies voor het manipuleren van documentgegevens en het uitvoeren van verschillende bewerkingen met betrekking tot documentvelden.

Functies

set_field_value()

Stelt de waarde van een veld in de documentgegevens in.

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')

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

field_name*

string

De naam van het in te stellen veld

value*

any

De waarde die voor het veld moet worden ingesteld

remove_link (optioneel)

bool

Verwijder de "coords" sleutel uit het veld.

set_date_value()

Stelt de waarde van een datumveld in de documentgegevens in.

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

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

field_name*

string

De naam van het in te stellen veld

value*

string

De datumwaarde die in ISO-formaat moet worden ingesteld (bijv. "2020-12-31").

add_days (optioneel)

int

Voeg extra dagen toe aan de gegeven datum Standaard is 0

skip_weekend (optioneel)

bool

Overslaat de datum als deze in het weekend valt Standaard is False

remove link (optioneel)

bool

Verwijder de "coords" sleutel uit het veld.

exclude_final_days (optioneel)

of string of int

Geeft de dagen op die moeten worden uitgesloten (0-6 of zondag tot zaterdag)

set_amount_value()

Stelt de waarde van een bedragveld in de documentgegevens in.

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

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

field_name*

string

De naam van het in te stellen veld

value*

string

De waarde die voor het veld moet worden ingesteld (geef een nummer als string door, bijv. "123456")

remove link (optioneel)

bool

Verwijder de "coords" sleutel uit het veld.

get_field_value()

Haalt de waarde van een veld uit de documentgegevens.

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

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

field_name*

string

De naam van het in te stellen veld

default_value (optioneel)

any

Geeft default_value terug als er geen veldwaarde wordt gevonden Standaard is None

is_clean (optioneel)

bool

Converteert de waarde naar hoofdletters en verwijdert extra spaties Standaard is False

Retourneert:

  • Waarde van het opgegeven veld

create_new_field()

Maakt een nieuw veld met de opgegeven naam en waarde.

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")

Parameters:

Naam
Type
Beschrijving

field_name*

str

De documentgegevens met veldinformatie

value (optioneel)

any

De initiële waarde voor het veld Standaard is ""

Retourneert:

  • Woordenboek van het nieuw aangemaakte veld

delete_field()

Verwijdert een veld uit de documentgegevens

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)

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

field_name*

string

De naam van het te verwijderen veld

Retourneert:

  • Document_data als json en als dict nadat het veld is verwijderd

set_is_required()

Stelt het 'is_required' attribuut van een veld in de documentgegevens in.

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)

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

field_name*

string

De naam van het in te stellen veld

value*

bool

De waarde die voor het veld moet worden ingesteld

set_force_validation()

Stelt het 'force_validation' attribuut van een veld in de documentgegevens in.

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

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

field_name*

string

De naam van het in te stellen veld

value*

bool

De waarde die voor het veld moet worden ingesteld

reset_validation (optioneel)

bool

Stelt het "is_validated" attribuut in op de opgegeven waarde Standaard is False

set_field_as_invalid()

Markeert een veld in het validatiescherm als ongeldig en markeert het.

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

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

field_name*

string

De naam van het veld dat als ongeldig moet worden gemarkeerd

message*

string

Het validatiebericht voor het veld

code (optioneel)

string

Foutcode voor de validatie

Standaard is None

set_field_attribute()

Stelt een aangepast attribuut van een veld in de documentgegevens in.

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","")

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

field_name*

string

De naam van het in te stellen veld

attribute_name*

string

De naam van het in te stellen attribuut

value*

any

De waarde die voor het attribuut moet worden ingesteld

is_supplier_valid()

Controleert of een leverancier geldig is op basis van de opgegeven criteria.

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

Parameters:

Naam
Type
Beschrijving

user*

UserAuthentication

De geauthenticeerde gebruiker

filter_data_json*

json

Filtercriteria voor het valideren van de leverancier

sub_org_id (optioneel)

string

Optionele sub-organisatie-ID voor filtering Standaard is None

Retourneert:

  • True, als de gebruiker geldig is

  • False als de gebruiker niet geldig is

get_document_content()

Decodeert documentgegevens en retourneert deze als een string.

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

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

Retourneert:

  • Documentgegevens als een string.

update_document_status_with_doc_id()

Werk de status van een document met een specifieke ID bij naar de gegeven 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")

Parameters:

Naam
Type
Beschrijving

doc_id*

string

De ID van het document dat moet worden bijgewerkt

user*

of user ID of UserAuthentication object

De gebruiker die de update uitvoert

org_id*

string

De ID van de organisatie waartoe het document behoort

status*

string

De nieuwe status van het document

message (optioneel)

string

Optioneel bericht dat aan de statusupdate is gekoppeld Standaard is None

doc_classification_class (optioneel)

string

Optionele documentclassificatieklasse Standaard is None

get_lov_values()

Haalt de LOV-waarden op van een specifieke org_id en sleutel.

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

Parameters:

Naam
Type
Beschrijving

org_id*

string

De ID van de organisatie waartoe het document behoort

key*

string

De sleutel van de vereiste Lijst Van Waarden

return_type (optioneel)

string

Het type waarin de gegevens moeten worden geretourneerd Standaard is 'list_of_objects'

sub_org_id (optioneel)

string

Optionele sub-organisatie-ID voor filtering Standaard is None

language_code (optioneel)

string

Deze parameter stelt de taal in waarin de waarden worden geretourneerd. Het accepteert taalcodes, zoals "en" voor Engels of "fr" voor Frans. Standaard is ""

Retourneert:

  • LOV-waarden als een lijst van objecten of als een lijst.

format_decimal_to_locale()

Formatteert een decimale waarde naar en_US.UTF-8 formaat.

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

Parameters:

Naam
Type
Beschrijving

value*

float, decimal.Decimal, str

De waarde die moet worden geformatteerd.

to_locale (optioneel)

string

Het type waarin de gegevens moeten worden geretourneerd Standaard is 'en_US.UTF-8'

max_decimal_places (optioneel)

int

Optionele sub-organisatie-ID voor filtering Standaard is 4

min_decimal_places (optioneel)

int

Het minimum aantal decimalen dat moet worden overwogen Standaard is 2

  • value: De waarde die moet worden geformatteerd.

  • to_locale (optioneel): Het formaat waarin de waarde wordt omgevormd.

  • max_decimal_places (optioneel): Het maximum aantal decimalen dat moet worden overwogen.

  • min_decimal_places (optioneel): Het minimum aantal decimalen dat moet worden overwogen.

Retourneert:

  • De geformatteerde waarde.

compare_values()

Vergelijkt twee waarden op gelijkheid, met verschillende datatypes.

result = compare_values(10, "10")

Parameters:

Naam
Type
Beschrijving

value1*

any

De eerste waarde om te vergelijken

value2*

any

De tweede waarde om te vergelijken

Retourneert:

  • True als de waarden gelijk zijn en False als ze verschillen

create_document_task()

Maakt een taak, wijst deze toe aan een gebruiker of groep, stelt prioriteit in en verstuurt optioneel een 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

Parameters:

Naam
Type
Beschrijving

user*

of user ID of UserAuthentication object

De gebruiker die de update uitvoert

document_data*

dictionary

De documentgegevens met veldinformatie

title*

string

De titel van de taak

description*

string

De beschrijving van de taak

priority*

string

De prioriteit van de taak

assigned_to_user_id*

int

De id van de gebruiker aan wie de taak moet worden toegewezen

assigned_to_group_id*

int

De id van de groep aan wie de taak moet worden toegewezen

send_email*

bool

Bepaal of er een e-mail moet worden verzonden of niet

Retourneert:

  • Dict dat aangeeft of het proces succesvol was of niet

set_document_sub_org_id()

Stelt de sub_org_id van de opgegeven document_data in.

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)

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

sub_org_id*

string

Optionele sub-organisatie-ID voor filtering

get_user_by_id()

Haalt de gebruiker op met de bijbehorende gebruikers-ID.

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

Parameters:

Naam
Type
Beschrijving

user_id*

string

De ID van de gebruiker

Retourneert:

  • De gebruiker met de bijbehorende gebruikers-ID

get_group_by_id()

Haalt de groep op met de bijbehorende groeps-ID.

group_name  = str(get_group_by_id(assigned_to_group_id))

Parameters:

Naam
Type
Beschrijving

group_id*

string

De ID van de groep

Retourneert:

  • De groep met de bijbehorende groeps-ID

get_user_by_email()

Haalt de gebruiker op met de bijbehorende e-mail.

user_name = str(get_user_by_email(email)

Parameters:

Naam
Type
Beschrijving

email*

any

De e-mail van de gebruiker

Retourneert:

  • De gebruiker met de bijbehorende e-mail

add_table_column()

Voegt een kolom toe aan de opgegeven tabel.

table = tables_dict.get("ORDER_CONFIRMATION_TABLE")

if table:
    add_table_column(table, "PROMISED_DELIVERY_DATE")

Parameters:

Naam
Type
Beschrijving

table*

string

De tabel waar de kolom aan moet worden toegevoegd

col_name*

string

De naam van de kolom

default_value (optioneel)

any

De initiële waarde voor het veld

Standaard is None

get_column_value()

Haalt de waarde op van een opgegeven kolom.

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

Parameters:

Naam
Type
Beschrijving

row*

string

De rij waar de waarde zich bevindt

col_name*

string

De naam van de kolom

default_value (optioneel)

any

De initiële waarde voor het veld Standaard is None

is_clean (optioneel)

bool

Converteert de waarde naar hoofdletters en verwijdert extra spaties Standaard is False

Retourneert

  • Retourneert de waarde van de opgegeven kolom als deze bestaat; anders retourneert het None

set_column_value()

Stelt de waarde van de opgegeven kolom in. Als de kolom niet bestaat, wordt deze aangemaakt.

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)

Parameters:

Naam
Type
Beschrijving

row*

string

De rij waar de waarde zich bevindt

col_name*

string

De naam van de kolom

value*

any

De waarde die op de opgegeven locatie moet worden ingesteld

Retourneert:

  • True als de wijziging succesvol was

set_column_date_value()

Stelt de datumwaarde van een opgegeven kolom in.

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

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

row*

string

De rij waar de waarde zich bevindt

col_name*

string

De naam van de kolom

value*

string

De datumwaarde die in ISO-formaat moet worden ingesteld (bijv. "2020-12-31")

add_days (optioneel)

int

Voeg extra dagen toe aan de gegeven datum Standaard is 2

skip_weekend (optioneel)

bool

Overslaat de datum als deze in het weekend valt Standaard is False

exclude_final_days (optioneel)

of string of int

Geeft de dagen op die moeten worden uitgesloten (0-6 of zondag tot zaterdag)

set_column_amount_value()

  • Converteer waarde naar string en stel de waarde voor de kolom in

  • Stel de kolominhoud in op de waarde

  • Formatteer waarde volgens de locale

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

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

row*

string

De rij waar de waarde zich bevindt

column_name*

string

De naam van de kolom

value*

string

De waarde die voor het veld moet worden ingesteld (geef een nummer als string door, bijv. "123456")

delete_tables()

Deze functie verwijdert de tabellen uit de documentgegevens.

delete_tables(document_data)

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

restore_tables()

Deze functie herstelt de tabellen in de documentgegevens.

restore_tables(document_data)

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

remove_rows_from_table()

Verwijdert rijen uit de opgegeven tabel.

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

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

table_name*

string

De naam van de tabel

count*

int

Hoeveel lijnen moeten worden verwijderd

start*

int

Het startpunt

remove_all_rows_except_one_from_table()

Verwijdert alle rijen behalve één uit de opgegeven tabel

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

Parameters:

Naam
Type
Beschrijving

document_data*

dictionary

De documentgegevens met veldinformatie

line_number*

int

Het nummer van de regel die niet moet worden verwijderd

Python Ingebouwde Functies

Je kunt ook enkele van de ingebouwde Python-functies gebruiken:

  • abs(): Retourneert de absolute waarde van een getal.

  • len(): Retourneert de lengte (aantal items) van een object, zoals een lijst of string.

  • isinstance(): Controleert of een object een instantie is van een bepaalde klasse of type.

  • print(): Drukt output af naar de console.

  • round(): Rondt een drijvend getal af naar een opgegeven aantal decimalen.

  • str_to_bool(): Converteert een string naar een boolean waarde (True of False).

  • type(): Retourneert het type van een object.

  • dict(): Maakt een woordenboekobject aan.

  • list(): Maakt een lijstobject aan.

  • str(): Converteert een waarde naar een string.

  • float(): Converteert een waarde naar een drijvend getal.

  • int(): Converteert een waarde naar een geheel getal.

Voor meer details, bezoek de officiële Python-documentatie: Ingebouwde Functies.

String Klasse Functies

Je kunt ook deze functies specifiek voor het werken met strings gebruiken:

  • lower(): Converteert alle karakters in een string naar kleine letters.

  • upper(): Converteert alle karakters in een string naar hoofdletters.

  • split(): Splitst een string in een lijst op basis van een scheidingsteken (bijv. spatie of komma).

  • startswith(): Controleert of een string begint met een opgegeven voorvoegsel.

  • endswith(): Controleert of een string eindigt met een opgegeven achtervoegsel.

  • strip(): Verwijdert eventuele leidende of achterblijvende spaties uit een string.

Functies uit de Python Wiskunde Module

Deze functies maken deel uit van de wiskundemodule en zijn nuttig voor wiskundige bewerkingen:

  • floor(): Retourneert het grootste gehele getal dat kleiner is dan of gelijk is aan een gegeven getal.

  • ceil(): Retourneert het kleinste gehele getal dat groter is dan of gelijk is aan een gegeven getal.

Voor meer informatie, bekijk de officiële Python-documentatie: Wiskunde Module Functies.

Reguliere Expressie Functie

  • re.search(): Zoekt naar een patroon binnen een string en retourneert de eerste match.

Zie meer details hier: re.search Documentatie.

Externe Functies

Hier zijn enkele nuttige functies van externe bibliotheken:

  • deepcopy(): Maakt een kopie van een object, inclusief geneste objecten (van de copy-module). Deepcopy Documentatie.

  • levenshtein_distance(): Berekent het aantal bewerkingen (invoegingen, verwijderingen, vervangingen) dat nodig is om de ene string in de andere te veranderen. Deze functie is beschikbaar in de Jellyfish bibliotheek.

Datum en Tijd Functies

Je kunt de volgende functies gebruiken voor het werken met data en tijden:

  • strptime(): Converteert een string naar een datetime-object op basis van een opgegeven formaat.

  • strftime(): Formatteert een datetime-object naar een string op basis van een opgegeven formaat.

Voor meer informatie, bekijk de officiële documentatie: Datum en Tijd Functies.

Last updated

Was this helpful?