Heute freue ich mich, dass wir den ecmind_blue_client
in Version 0.7.0 auf PyPi.org veröffentlichen konnten:
Neue Features mit RequestFile
Jobs, welche mit Eingabedateien arbeiten, sind nun wesentlich vielseitiger: Bisher konnten Dateien vom Dateisystem übernommen werden, um sie z. B. bei xml_import
in enaio® zu übertragen. Neu können Dateien auch aus Puffern/Streams oder aus Byte-Arrays/Arbeitsspeicher übertragen werden.
from pathlib import Path
from ecmind_blue_client.tcp_pool_client import TcpPoolClient
from ecmind_blue_client import RequestFileFromReader
client = TcpPoolClient("localhost:4000:100", __file__, "root", "optimal")
file = "./Beispiel.pdf"
with open(file, "rb") as reader, Path(file) as path:
doc_import = client.xml_import(
object_name="Dokument",
search_fields=(fields:={
"Name": path.name,
}),
import_fields=fields,
folder_id=1234,
files=[RequestFileFromReader(reader, path.stat().st_size, path.suffix[1:])],
)
assert doc_import, doc_import.error_message
Dieses etwas konstruierte Beispiel zeigt, dass Dateien auch von beliebigen Quellen zu enaio® gestreamt werden können. Konstruiert, da hier wieder direkt aus einer Datei. Die Quelle kann aber auch etwas anderes wie ein Web-Endpunkt sein:
from urllib.request import urlopen
from ecmind_blue_client.tcp_pool_client import TcpPoolClient
from ecmind_blue_client import RequestFileFromReader
client = TcpPoolClient("localhost:4000:100", __file__, "root", "optimal")
url = "https://ecmind.ch/index.html"
with urlopen(url) as web_response:
# enaio muss leider immer die Zielgrösse kennen
# dies hier also bitte auch nur als Beispiel verstehen
web_size = len(web_response.read())
with urlopen("url") as web_response:
doc_import = client.xml_import(
object_name="Dokument",
search_fields=(fields:={
"URL": "url",
}),
import_fields=fields,
folder_id=1234,
files=[RequestFileFromReader(web_response, web_size, "html")],
)
assert doc_import, doc_import.error_message
Abkündigung alter enaio®-Anbindungen
Die bisherigen Anbindungen von enaio über SOAP (ecmind_blue_client.soap_client
) und über die COM-API (ecmind_blue_client.com_client
) haben wir deprecated:
Die SOAP-Schnittstelle von enaio® ist durch OPTIMAL SYSTEMS abgekündigt und deshalb nicht weiterzuverfolgen.
Die COM-API wird von OPTIMAL SYSTEMS weiter unterstützt, wir haben im Alltag aber keine Verwendung oder Rückmeldung zur Verwendung von ecmind_blue_client.com_client
. Weiterhin ist diese Schnittstelle nicht netzwerktransparent.
Die Funktionen aus ecmind_blue_client.soap_client
und ecmind_blue_client.com_client
werden somit nicht mehr getestet oder weiterentwickelt. Wer diese Klassen noch eine Zeit weiterverwenden will, findet die 0.6er-Serie wie gewohnt auf PyPi.org.