610 ELO-DMS ankoppeln » Historie » Revision 16
Revision 15 ([X] Daniel S, 31.03.2021 09:22) → Revision 16/17 ([X] Marcus F, 12.01.2022 12:56)
h1. ELO {{toc}} h2. Ablauf Ansatz * PRODAT: Dokument Druck -> Dokument hat keine @pd_external_dms_id@ -> Erscheint im Elo View @TDMS.External_DMS__get_Documents@ -> wird angenommen -> Elo Tool schreibt ID zurück (siehe Abschnitt 'Einlesetool seitens Elo') * PRODAT: Dokument oder Schlagwort wird geändert -> erscheint über Flag "Änderung" (@pd_external_dms_updated@ @pd_external_dms_changed@) in View -> Elo Tool schreibt Übernahme zurück mit Aktualisierungsdatum h3. Algorithmus * #9146: Eingangs- und Ausgangsrechung > Anbindung ELO und Ablauf * #9153: ELO: PRODAT-DMS Strukturerweiterungen: Externe DMS Id, Spalte(n) für Änderungsstatus ** #9154: ELO: Abfrage / Funktion: gib mir alle geänderten PRODAT-Dokumente + Schlagworte @TDMS.External_DMS__get_Documents@ ** @dt_external_dms_dokutype@ ODER @pd_external_dms_id@ muss angegeben sein * #9491: ELO: Zusatzinformationen zum Dokument @tdms.picndoku__fetch__metadata@ : Out Adresskurzname, Auftrags-Nr/Bestell-Nr * #9155: ELO: Funktion, welche die ELO-ID an PRODAT zurückgibt * #9164: ELO: Funktion, welche die Änderungsübernahme in PRODAT zurückschreibt h2. Funktionen und Bsp-Aufrufe #9145 * <pre><code class="sql">SELECT * FROM TDMS.External_DMS__get_Documents WHERE is_updated_or_new; </code></pre> + Ansatz: bei Änderung von Schlagwort oder am Dokument wird @TIMESTAMP "pd_external_dms_updated"@ gesetzt + alle neuen oder geänderten Dokumente + Änderung von Schlagwort, Änderung + @(pd_external_dms_updated IS NOT NULL OR pd_external_dms_id IS NULL) AS is_updated_or_new@ * TDMS.External_DMS__get_Keywords(pd_id) * TDMS.External_DMS__set_ID(pd_id, external_id) + ELO-ID an PRODAT DMS + Achtung, @TDMS.External_DMS__reset_Updated(pd_id)@ muß aufgerufen werden, wenn vollständig (zB Keyowrds noch übernommen) * TDMS.External_DMS__reset_Updated(pd_id) + @TIMESTAMP "pd_external_dms_updated"@ wird zurückgesetzt (NULL) Achtung: Zugriff des ELO nur über DMS-User "ELO". Mindestens TDMS.External_DMS__set_ID und TDMS.External_DMS__reset_Updated müssen mit DMS-User ausgeführt werden. <pre><code class="sql"> SELECT -- Beispielaufruf * FROM TDMS.external_dms__get_documents JOIN LATERAL tdms.picndoku__fetch__metadata(pd_id) ON true JOIN LATERAL tdms.external_dms__adk(picndoku__fetch__metadata->>'adkrz') ON true WHERE is_updated_or_new </code></pre> <pre><code class="sql"> SELECT * FROM TDMS.External_DMS__get_Documents; -- "geänderte" Dokumente auslesen ... SELECT * FROM TDMS.External_DMS__get_Documents WHERE is_updated_or_new; SELECT * FROM TDMS.External_DMS__get_Documents WHERE is_updated_or_new AND pd_external_dms_id IS NOT NULL; SELECT * FROM TDMS.External_DMS__get_Documents WHERE pd_external_dms_id = "external_id"; SELECT TDMS.External_DMS__set_ID(pd_id, "external_id"); -- externe ID speichern SELECT TDMS.External_DMS__reset_Updated(pd_id); -- Änderungsstatus zurücksetzen SELECT * FROM TDMS.External_DMS__get_Keywords(pd_id); -- Schlüsselworte auslesen SELECT TDMS.External_DMS__get_RemoteFilename(pd_id, True); -- "internen" Dateinamen auslesen (siehe auch TDMS.External_DMS__get_Documents pd_dmsremotefile) --TDMS.External_DMS__get_Documents pd_external_dms_id, -- document ID in external DMS pd_external_dms_updated, -- last changed at pd_external_dms_changed, -- what has changed (file, annotation, recinfo, keyword) is_updated_or_new, -- . is_linked, -- document is linked pd_dmsremotefile, -- internal file name pd_revision_id, -- revision (related documents with the same ID) pd_revision_count, -- count of revisions pd_revision_pos, -- position in revisions pd_revision_pdids, -- list of all pd_id of this revision pd_deletable, -- hidden / deleted (e.g. older revision) pd_dmscomment, -- has comment/stamp/annotaions on file pd_id, -- document ID in PRODAT pd_path, -- caption pd_txt, -- comment pd_doktype, -- document type (classification) pd_external_doktype, -- different from pd_doktype if document type changed, but file has not been moved yet pd_tablename, pd_dbrid, pd_dokident, -- owner pd_source, -- file origin (print, scan, file, camera, bi, image, ...) pd_date, -- date of printing or import pd_modified -- modified date</code></pre> </code></pre> h2. Weitere Funktionen * TDMS.External_DMS__adk(IN VARCHAR) > Adressdaten, IN: Adresskurzname aus PRODAT (adk) + Kundennummer > a1_knr + Lieferantennummer > a2_knr + AdresseName (Für Ordner) > adressename h2. Einlesetool seitens Elo Das Dienstprogramm "" liest permanent die Schnittstelle aus und überträgt die Daten ins ELO. # Die Anwendung läuft auf: # Log-Dateien sind zu finden unter: # Die Konfiguration (IP des Servers) ist angegeben in der Config-File / über die Startparameter: # Die Anwendung wird neu gestartet, indem: