Projekt

Allgemein

Profil

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: