610 ELO-DMS ankoppeln » Historie » Revision 13
Revision 12 ([X] Marcus F, 08.10.2018 14:11) → Revision 13/17 ([X] Marcus F, 08.10.2018 14:19)
h1. ELO
h2. Ansatz
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
* SELECT * FROM TDMS.External_DMS__get_Documents WHERE is_updated_or_new;
+ 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