Hi there,
I am using ecoDMS as my document archive. I´d really like to interact with it via n8n!
I am willing to compansate someone for the effort.
Cheers
Jan
Hi there,
I am using ecoDMS as my document archive. I´d really like to interact with it via n8n!
I am willing to compansate someone for the effort.
Cheers
Jan
I’d also compensate!
Hey @mosesjohann,
What would you be wanting to do in ecoDMS from n8n, Do you have any workflow ideas that may help with putting together a first version of a node?
Thanks for your interest!
Some simple examples would be:
The new link to documntation is ecoDMS API Handbuch - ecoDMS API Handbuch
I played with the API in python:
import requests
import json
from requests.auth import HTTPBasicAuth
response = requests.get('https://myecodmsapi.com/api/classifyAttributes', auth=HTTPBasicAuth('user', 'password'))
print(response.json())
this gives you
{'docart': 'Dokumentenart', 'docid': 'DocID', 'defdate': 'Wiedervorlage ab', 'changeid': 'Bearbeitet von', 'revision': 'Revision', 'rechte': 'Berechtigung', 'folder': 'Ordner', 'cdate': 'Datum', 'dyn_0_1612129530096': 'für Steuerberater', 'bemerkung': 'Bemerkung', 'ctimestamp': 'Letzte Änderung', 'mainfolder': 'Hauptordner', 'status': 'Status'}
The attributes are quite handy, for a requested doc it is not obvious what ‘dyn_0_1612129530096’ would be:
import requests
import json
from requests.auth import HTTPBasicAuth
response = requests.get('https://myecodmsapi.com/api/documentInfo/540', auth=HTTPBasicAuth('username', 'password'))
print(response.json())
Answer:
[{'docId': 540, 'clDocId': 541, 'archiveName': '1', 'classifyAttributes': {'dyn_0_1612479280677': 'ERP-Purchase', 'docart': '6', 'docid': '540#541', 'defdate': '', 'dyn_0_1623744037311': '2', 'changeid': 'myEcoDMSusername', 'revision': '1.3', 'rechte': 'W', 'folder': '5', 'cdate': '2021-07-13', 'dyn_0_1612129530096': '0', 'dyn_0_1618918868587': 'ERP-Project Number', 'bemerkung': 'nc-2047616', 'dyn_0_1618387974189': '0', 'dyn_0_1618330142060': 'ERP-Invoice', 'ctimestamp': '2021-07-20 23:09:19', 'mainfolder': '5', 'status': '3'}, 'editRoles': ['Buchhaltung'], 'readRoles': []}]
Bools use ‘0’ for False and ‘2’ for True.
To update a document you can not use PUT for a single field. You have to post the whole string and only change the bits you want to change… I already complained.
import requests
import json
from requests.auth import HTTPBasicAuth
aaa = {'docId': 24, 'clDocId': 24, 'archiveName': '1', 'classifyAttributes': {'docart': '6', 'docid': '24#24', 'defdate': '', 'changeid': 'apiuser', 'revision': '2.1', 'rechte': 'W', 'folder': '5', 'cdate': '2020-11-10', 'dyn_0_1612129530096': '2', 'bemerkung': 'API E0300CN2IQ', 'ctimestamp': '', 'mainfolder': '5', 'status': '3'}, 'editRoles': ['r_apiuser'], 'readRoles': ['Buchhaltung']}
x = requests.post('https://myecodmsapi.com/api/classifyDocument', json=aaa ,auth=HTTPBasicAuth('username', 'password') )
Since you have to pay per API use (per download or upload), I found that the preview is quite handy. That creates a JPG-Preview to display the documents, without downloading them.
import requests
import json
from requests.auth import HTTPBasicAuth
from IPython.display import Image, display
response = requests.get('https://myecodmsapi.com/api/thumbnail/22/page/1/height/1080', auth=HTTPBasicAuth('username', 'password'))
display(Image(response.content))
Our workflows would be:
When we submit an outgoing Invoice in erpnext, a PDF is created and archived in ecoDMS.
When a invoice is uploaded, we search in the custom field ‘ERP Purchase Order’ for the erpnext-PO-number, look that up in erpnext and create an invoice (erpnext doc) for that purchase. The document ID and a preview picture are stored in the erpnext-invoice that is created.
Then read the customer name from erpnext and write that into the ecoDMS-doc.
Would be super cool to get started here! Let me know where I can help!
I´d suggest we all write an email to ecoDMS GmbH asking why there is no proper PUT method in the API
Cheers