90 lines
6.2 KiB
Python
90 lines
6.2 KiB
Python
# Copyright (c) 2025 Patrick Motsch
|
|
# Trustee node definitions - map to methodTrustee actions.
|
|
# Pipeline: extractFromFiles -> processDocuments -> syncToAccounting.
|
|
|
|
TRUSTEE_NODES = [
|
|
{
|
|
"id": "trustee.refreshAccountingData",
|
|
"category": "trustee",
|
|
"label": {"en": "Refresh Accounting Data", "de": "Buchhaltungsdaten aktualisieren", "fr": "Actualiser données comptables"},
|
|
"description": {
|
|
"en": "Import/refresh accounting data from external system (e.g. Abacus). Skips import if data is fresh unless forceRefresh is set.",
|
|
"de": "Buchhaltungsdaten aus externem System importieren/aktualisieren (z.B. Abacus). Überspringt Import wenn Daten frisch sind, ausser forceRefresh ist gesetzt.",
|
|
"fr": "Importer/actualiser les données comptables depuis le système externe (ex. Abacus).",
|
|
},
|
|
"parameters": [
|
|
{"name": "featureInstanceId", "type": "string", "required": True, "description": {"en": "Trustee feature instance ID", "de": "Trustee Feature-Instanz-ID", "fr": "ID instance Trustee"}},
|
|
{"name": "forceRefresh", "type": "boolean", "required": False, "description": {"en": "Force re-import even if data is fresh (default: false)", "de": "Import erzwingen auch wenn Daten frisch sind", "fr": "Forcer la réimportation"}, "default": False},
|
|
{"name": "dateFrom", "type": "string", "required": False, "description": {"en": "Start date filter (YYYY-MM-DD)", "de": "Startdatum-Filter (JJJJ-MM-TT)", "fr": "Date début (AAAA-MM-JJ)"}, "default": ""},
|
|
{"name": "dateTo", "type": "string", "required": False, "description": {"en": "End date filter (YYYY-MM-DD)", "de": "Enddatum-Filter (JJJJ-MM-TT)", "fr": "Date fin (AAAA-MM-JJ)"}, "default": ""},
|
|
],
|
|
"inputs": 1,
|
|
"outputs": 1,
|
|
"meta": {"icon": "mdi-database-refresh", "color": "#4CAF50"},
|
|
"_method": "trustee",
|
|
"_action": "refreshAccountingData",
|
|
"_paramMap": {"featureInstanceId": "featureInstanceId", "forceRefresh": "forceRefresh", "dateFrom": "dateFrom", "dateTo": "dateTo"},
|
|
},
|
|
{
|
|
"id": "trustee.extractFromFiles",
|
|
"category": "trustee",
|
|
"label": {"en": "Extract Documents", "de": "Dokumente extrahieren", "fr": "Extraire documents"},
|
|
"description": {
|
|
"en": "Extract document type and data from PDF/JPG via AI (from fileIds or SharePoint folder)",
|
|
"de": "Dokumenttyp und Daten aus PDF/JPG per AI extrahieren (aus Dateien oder SharePoint-Ordner)",
|
|
"fr": "Extraire type et données de PDF/JPG par IA",
|
|
},
|
|
"parameters": [
|
|
{"name": "connectionId", "type": "string", "required": False, "description": {"en": "SharePoint connection (if reading from SharePoint)", "de": "SharePoint-Verbindung (falls aus SharePoint)", "fr": "Connexion SharePoint"}, "default": ""},
|
|
{"name": "sharepointFolder", "type": "string", "required": False, "description": {"en": "SharePoint folder path (e.g. /sites/MySite/Documents/Expenses)", "de": "SharePoint-Ordnerpfad", "fr": "Chemin dossier SharePoint"}, "default": ""},
|
|
{"name": "featureInstanceId", "type": "string", "required": True, "description": {"en": "Trustee feature instance ID", "de": "Trustee Feature-Instanz-ID", "fr": "ID instance Trustee"}},
|
|
{"name": "prompt", "type": "string", "required": False, "description": {"en": "AI prompt for extraction (optional)", "de": "AI-Prompt für Extraktion (optional)", "fr": "Prompt IA pour extraction"}, "default": ""},
|
|
],
|
|
"inputs": 1,
|
|
"outputs": 1,
|
|
"meta": {"icon": "mdi-file-document-scan", "color": "#4CAF50"},
|
|
"_method": "trustee",
|
|
"_action": "extractFromFiles",
|
|
"_paramMap": {"connectionId": "connectionReference", "sharepointFolder": "sharepointFolder", "featureInstanceId": "featureInstanceId", "prompt": "prompt"},
|
|
},
|
|
{
|
|
"id": "trustee.processDocuments",
|
|
"category": "trustee",
|
|
"label": {"en": "Process Documents", "de": "Dokumente verarbeiten", "fr": "Traiter documents"},
|
|
"description": {
|
|
"en": "Create TrusteeDocument + TrusteePosition from extraction result",
|
|
"de": "TrusteeDocument + TrusteePosition aus Extraktionsergebnis erstellen",
|
|
"fr": "Créer TrusteeDocument + TrusteePosition à partir du résultat",
|
|
},
|
|
"parameters": [
|
|
{"name": "documentList", "type": "string", "required": True, "description": {"en": "Reference to extractFromFiles result", "de": "Referenz auf extractFromFiles-Ergebnis", "fr": "Référence au résultat extractFromFiles"}},
|
|
{"name": "featureInstanceId", "type": "string", "required": True, "description": {"en": "Trustee feature instance ID", "de": "Trustee Feature-Instanz-ID", "fr": "ID instance Trustee"}},
|
|
],
|
|
"inputs": 1,
|
|
"outputs": 1,
|
|
"meta": {"icon": "mdi-file-document-check", "color": "#4CAF50"},
|
|
"_method": "trustee",
|
|
"_action": "processDocuments",
|
|
"_paramMap": {"documentList": "documentList", "featureInstanceId": "featureInstanceId"},
|
|
},
|
|
{
|
|
"id": "trustee.syncToAccounting",
|
|
"category": "trustee",
|
|
"label": {"en": "Sync to Accounting", "de": "In Buchhaltung synchronisieren", "fr": "Synchroniser comptabilité"},
|
|
"description": {
|
|
"en": "Push trustee positions to accounting system",
|
|
"de": "Trustee-Positionen in Buchhaltungssystem übertragen",
|
|
"fr": "Transférer les positions vers la comptabilité",
|
|
},
|
|
"parameters": [
|
|
{"name": "documentList", "type": "string", "required": True, "description": {"en": "Reference to processDocuments result", "de": "Referenz auf processDocuments-Ergebnis", "fr": "Référence au résultat processDocuments"}},
|
|
{"name": "featureInstanceId", "type": "string", "required": True, "description": {"en": "Trustee feature instance ID", "de": "Trustee Feature-Instanz-ID", "fr": "ID instance Trustee"}},
|
|
],
|
|
"inputs": 1,
|
|
"outputs": 1,
|
|
"meta": {"icon": "mdi-calculator", "color": "#4CAF50"},
|
|
"_method": "trustee",
|
|
"_action": "syncToAccounting",
|
|
"_paramMap": {"documentList": "documentList", "featureInstanceId": "featureInstanceId"},
|
|
},
|
|
]
|