Functies

Functionele Documentatie

Dit 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

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 moet worden ingesteld in ISO-formaat (bijv. "2020-12-31").

add_days (optioneel)

int

Voegt extra dagen toe aan de gegeven datum Standaard is 0

skip_weekend (optioneel)

bool

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

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 door als string, bijv. "123456")

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

Returns:

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

Returns:

  • 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

Returns:

  • 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

Returns:

  • 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

Returns:

  • 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

Returns:

  • 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 formaat waarin de waarde wordt omgezet. 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 omgezet.

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

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

Returns:

  • 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

Returns:

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

create_document_task()

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

Returns:

  • 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

Returns:

  • 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

Returns:

  • De groep met de bijbehorende groeps-ID

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 waaraan de kolom 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 van een opgegeven kolom op.

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

Returns

  • De waarde van de opgegeven kolom

set_column_value()

Stelt de waarde van een opgegeven kolom in.

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

Returns:

  • 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 moet worden ingesteld in ISO-formaat (bijv. "2020-12-31")

add_days (optioneel)

int

Voegt extra dagen toe aan de gegeven datum Standaard is 2

set_column_amount_value()

  • Converteert waarde naar string en stelt de waarde voor de kolom in

  • Stelt de kolominhoud in op de waarde

  • Format 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 door als string, bijv. "123456")

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 rijen 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(): Geeft de absolute waarde van een getal terug.

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

  • 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(): Geeft het type van een object terug.

  • 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 tekens in een string naar kleine letters.

  • upper(): Converteert alle tekens 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(): Geeft het grootste gehele getal dat kleiner is dan of gelijk aan een gegeven getal terug.

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

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 uit externe bibliotheken:

  • deepcopy(): Maakt een kopie van een object, inclusief geneste objecten (uit 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?