610 ELO-DMS ankoppeln » Historie » Version 16
  [X] Marcus F, 12.01.2022 12:56 
  
| 1 | 1 | [X] Daniel S | h1. ELO | 
|---|---|---|---|
| 2 | |||
| 3 | 15 | [X] Daniel S | {{toc}} | 
| 4 | |||
| 5 | 16 | [X] Marcus F | h2. Ablauf | 
| 6 | 1 | [X] Daniel S | |
| 7 | 16 | [X] Marcus F | * 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') | 
| 8 | * 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 | ||
| 9 | |||
| 10 | 1 | [X] Daniel S | h3. Algorithmus | 
| 11 | 5 | [X] Daniel S | |
| 12 | 16 | [X] Marcus F | * Eingangs- und Ausgangsrechung > Anbindung ELO und Ablauf | 
| 13 | 10 | [X] Marcus F | * #9153: ELO: PRODAT-DMS Strukturerweiterungen: Externe DMS Id, Spalte(n) für Änderungsstatus | 
| 14 | 12 | [X] Marcus F | ** #9154: ELO: Abfrage / Funktion: gib mir alle geänderten PRODAT-Dokumente + Schlagworte @TDMS.External_DMS__get_Documents@ | 
| 15 | 11 | [X] Marcus F | ** @dt_external_dms_dokutype@ ODER @pd_external_dms_id@ muss angegeben sein | 
| 16 | 13 | [X] Marcus F | * #9491: ELO: Zusatzinformationen zum Dokument @tdms.picndoku__fetch__metadata@ : Out Adresskurzname, Auftrags-Nr/Bestell-Nr | 
| 17 | 10 | [X] Marcus F | * #9155: ELO: Funktion, welche die ELO-ID an PRODAT zurückgibt | 
| 18 | * #9164: ELO: Funktion, welche die Änderungsübernahme in PRODAT zurückschreibt | ||
| 19 | 5 | [X] Daniel S | |
| 20 | 1 | [X] Daniel S | h2. Funktionen und Bsp-Aufrufe | 
| 21 | |||
| 22 | 4 | [X] Daniel S | #9145 | 
| 23 | 3 | [X] Daniel S | |
| 24 | 14 | [X] Daniel S | |
| 25 | * <pre><code class="sql">SELECT * FROM TDMS.External_DMS__get_Documents WHERE is_updated_or_new; </code></pre> | ||
| 26 | 2 | [X] Daniel S | + Ansatz: bei Änderung von Schlagwort oder am Dokument wird @TIMESTAMP "pd_external_dms_updated"@ gesetzt | 
| 27 | + alle neuen oder geänderten Dokumente | ||
| 28 | + Änderung von Schlagwort, Änderung | ||
| 29 | + @(pd_external_dms_updated IS NOT NULL OR pd_external_dms_id IS NULL) AS is_updated_or_new@ | ||
| 30 | 1 | [X] Daniel S | * TDMS.External_DMS__get_Keywords(pd_id) | 
| 31 | * TDMS.External_DMS__set_ID(pd_id, external_id) | ||
| 32 | 2 | [X] Daniel S | + ELO-ID an PRODAT DMS | 
| 33 | + Achtung, @TDMS.External_DMS__reset_Updated(pd_id)@ muß aufgerufen werden, wenn vollständig (zB Keyowrds noch übernommen) | ||
| 34 | 1 | [X] Daniel S | * TDMS.External_DMS__reset_Updated(pd_id) | 
| 35 | 2 | [X] Daniel S | + @TIMESTAMP "pd_external_dms_updated"@ wird zurückgesetzt (NULL) | 
| 36 | 1 | [X] Daniel S | |
| 37 | Achtung: Zugriff des ELO nur über DMS-User "ELO". | ||
| 38 | Mindestens TDMS.External_DMS__set_ID und TDMS.External_DMS__reset_Updated müssen mit DMS-User ausgeführt werden. | ||
| 39 | |||
| 40 | |||
| 41 | 7 | [E] Frank S | <pre><code class="sql"> | 
| 42 | 9 | [X] Marcus F | SELECT -- Beispielaufruf | 
| 43 | * | ||
| 44 | FROM | ||
| 45 | TDMS.external_dms__get_documents JOIN LATERAL tdms.picndoku__fetch__metadata(pd_id) ON true | ||
| 46 | JOIN LATERAL tdms.external_dms__adk(picndoku__fetch__metadata->>'adkrz') ON true | ||
| 47 | WHERE is_updated_or_new | ||
| 48 | </code></pre> | ||
| 49 | |||
| 50 | |||
| 51 | <pre><code class="sql"> | ||
| 52 | 7 | [E] Frank S | SELECT * FROM TDMS.External_DMS__get_Documents; -- "geänderte" Dokumente auslesen ... | 
| 53 | SELECT * FROM TDMS.External_DMS__get_Documents WHERE is_updated_or_new; | ||
| 54 | SELECT * FROM TDMS.External_DMS__get_Documents WHERE is_updated_or_new AND pd_external_dms_id IS NOT NULL; | ||
| 55 | SELECT * FROM TDMS.External_DMS__get_Documents WHERE pd_external_dms_id = "external_id"; | ||
| 56 | SELECT TDMS.External_DMS__set_ID(pd_id, "external_id"); -- externe ID speichern | ||
| 57 | SELECT TDMS.External_DMS__reset_Updated(pd_id); -- Änderungsstatus zurücksetzen | ||
| 58 | SELECT * FROM TDMS.External_DMS__get_Keywords(pd_id); -- Schlüsselworte auslesen | ||
| 59 | SELECT TDMS.External_DMS__get_RemoteFilename(pd_id, True); -- "internen" Dateinamen auslesen (siehe auch TDMS.External_DMS__get_Documents pd_dmsremotefile) | ||
| 60 | 1 | [X] Daniel S | |
| 61 | 7 | [E] Frank S | --TDMS.External_DMS__get_Documents | 
| 62 | pd_external_dms_id, -- document ID in external DMS | ||
| 63 | pd_external_dms_updated, -- last changed at | ||
| 64 | pd_external_dms_changed, -- what has changed (file, annotation, recinfo, keyword) | ||
| 65 | is_updated_or_new, -- . | ||
| 66 | is_linked, -- document is linked | ||
| 67 | pd_dmsremotefile, -- internal file name | ||
| 68 | |||
| 69 | pd_revision_id, -- revision (related documents with the same ID) | ||
| 70 | pd_revision_count, -- count of revisions | ||
| 71 | pd_revision_pos, -- position in revisions | ||
| 72 | pd_revision_pdids, -- list of all pd_id of this revision | ||
| 73 | pd_deletable, -- hidden / deleted (e.g. older revision) | ||
| 74 | pd_dmscomment, -- has comment/stamp/annotaions on file | ||
| 75 | |||
| 76 | pd_id, -- document ID in PRODAT | ||
| 77 | pd_path, -- caption | ||
| 78 | pd_txt, -- comment | ||
| 79 | pd_doktype, -- document type (classification) | ||
| 80 | pd_external_doktype, -- different from pd_doktype if document type changed, but file has not been moved yet | ||
| 81 | pd_tablename, pd_dbrid, pd_dokident, -- owner | ||
| 82 | pd_source, -- file origin (print, scan, file, camera, bi, image, ...) | ||
| 83 | pd_date, -- date of printing or import | ||
| 84 | pd_modified -- modified date</code></pre> | ||
| 85 | </code></pre> | ||
| 86 | 5 | [X] Daniel S | |
| 87 | h2. Weitere Funktionen | ||
| 88 | |||
| 89 | * TDMS.External_DMS__adk(IN VARCHAR) > Adressdaten, IN: Adresskurzname aus PRODAT (adk) | ||
| 90 | + Kundennummer > a1_knr | ||
| 91 | + Lieferantennummer > a2_knr | ||
| 92 | + AdresseName (Für Ordner) > adressename | ||
| 93 | 15 | [X] Daniel S | |
| 94 | h2. Einlesetool seitens Elo | ||
| 95 | |||
| 96 | Das Dienstprogramm "" liest permanent die Schnittstelle aus und überträgt die Daten ins ELO. | ||
| 97 | |||
| 98 | # Die Anwendung läuft auf: | ||
| 99 | # Log-Dateien sind zu finden unter: | ||
| 100 | # Die Konfiguration (IP des Servers) ist angegeben in der Config-File / über die Startparameter: | ||
| 101 | # Die Anwendung wird neu gestartet, indem: |