Uživatelské nástroje

Nástroje pro tento web


techdoc:googledrivesync

Synchronizace Google Drive s DMS ESO9

Pro automatické souborové exporty/importy z/do ESO9 lze nově použít Google Drive (GD), který lze pomocí automatu oboustranně synchronizovat s DMS ESO9. Užitečné to může být zejména pro uživatele, kteří nemají přímý přístup k aplikační databázi (tj. typicky provoz aplikace v cloudu). Práce se soubory přitom nemusí probíhat na GD, synchronizované složky si lze namapovat na vlastní lokální disk. Uživatel tak může nahrát požadované soubory na svůj lokální disk a ty se následně automaticky naimportují do ESO9. Nebo naopak spustí v ESO9 export a vyexportované soubory se automaticky uloží na jeho lokální disk.

Synchronizační automat

Základem řešení je automat (program), který se v pravidelných intervalech spouští a dle své konfigurace provádí export z DMS ESO9 na GD či import z GD do DMS ESO9. Pravidelné spouštění lze zajistit přes plánované úlohy ve Windows, časem lze toto nahradit systémovou službou či např.balíčkem v Dockeru.
Program ESO9DMS2GoogleDrive.exe lze získat na vyžádání v ESO9 international. Pro režijní spouštění je konfigurace uložena v souboru ESO9DMS2GoogleDrive.exe.config. Pro servisní režim se spouští s parametry z příkazové řádky (GD pro service account nemá žádné webové rozhraní, nelze tedy ve webovém prohlížeči zobrazit obsah disku; proto servisní režim, který toto umožní z příkazové řádky)

Konfigurace

LOG

  • logování do souboru zapnuté (1) / vypnuté (0). Pokud je logování zapnuté, vytvoří se ve složce s programem logovací soubor ESO9DMS2GoogleDrive.log
  • standardně se logují akce typu založená/vymazání dokumentu z DMS ESO9 i do LOGovací databáze jako Action=9 (externí akce)

CREDENTIAL_FILE

ConnStr

  • connection string k aplikační databázi
  • na jeho základě se vytváří i connstr k LOGovací a DOCumentové databázi

Action

  • spouštěná akce: 1=Import, 2=Export

SQL_SELECT_IDLOGUSER

  • výběrový SQL dotaz, který vrací ID uživatele, pod nímž se provádí import; pro export není povinný
  • musí obsahovat alespoň sloupec IDUZIVATEL

SQL_SELECT_DOC2EXPORT_GOOGLE_DRIVE

  • výběrový SQL dotaz, který vrací dokumenty, které se budou exportovat z DMS do GD
  • musí obsahovat alespoň sloupec DOKUMENTFILEGUID

ExportFolder

  • jméno složky v GD pro export dokumentů z DMS ESO9
  • pokud složka neexistuje, založí se v rootu GD pro daný účet (složka není nikde „vidět“, je tedy lepší mít exportní složku připravenou)

SQL_AFTER_DOC_EXPORTED

  • SQL dotaz/příkaz, který se spouští po exportu souboru z DMS ESO9 do GD
  • musí obsahovat parametr %FILEGUID%, který se nahradí GUIDem aktuálně vyexportovaného dokumentu
  • může obsahovat nastavení hodnoty řádku v DMS, které způsobí, že se dokument nebude uplodovat opakovaně (změní stav, zvedne verzi, …)
  • nebo může obsahovat smazání dokumentu v případě, že se DMS používá jen jako TEMP úložiště pro export

ImportFolder

  • složka na GD, odkud se importují dokumenty do DMS ESO9
  • musí existovat a musí obsahovat nějaké dokumenty, jinak není co importovat
  • pokud existuje na GD více složek se stejným jménem (přístupných pod daným účtem), vezme se první nalezená

SQL_AFTER_DOC_IMPORTED

  • SQL dotaz/příkaz, který se spouští po importu souboru z GD do DMS ESO9
  • musí obsahovat parametr %FILEGUID%, který se nahradí GUIDem aktuálně naimportovaného dokumentu
  • může obsahovat nastavení hodnoty řádku v DMS (typ dokumentu, verzi, …)

DeleteDocAfterImport

  • příznak, zda se má po importu do DMS ESO9 dokument z GD smazat (1) či nikoli (0)
  • pro mazání zpravidla nejsou pro daný účet dostatečná oprávnění
  • má přednost před přesunem naimportovaného dokumentu do jiné podsložky (parametr ImportedFolder)

ImportedFolder

  • jméno podsložky v rámci importní složky, kam se po úspěšním importu do DMS ESO9 přesune naimportovaný soubor tak, aby se neimportoval opakovaně
  • pokud podsložka neexistuje, založí se
  • pokud není parametr zadán, vytváří se defaultně složka „Imported“


Příklad:

  <applicationSettings>
      <ESO9DMS2GoogleDrive.My.MySettings>
          <setting name="CREDENTIAL_FILE" serializeAs="String">
              <value>..\..\..\eso9-1589890273102-ba2d6bc069e3.json</value>
          </setting>
          <setting name="LOG" serializeAs="String">
              <value>1</value>
          </setting>
          <setting name="ConnStr" serializeAs="String">
              <value>Provider=SQLOLEDB.1;Integrated Security=SSPI;Data Source=ws021;Initial Catalog=eso9start</value>
          </setting>
          <setting name="Action" serializeAs="String">
              <value>1</value>
          </setting>
          <setting name="SQL_SELECT_IDLOGUSER" serializeAs="String">
              <value>SELECT IDUZIVATEL FROM UZIVATEL WHERE KOD_UZIV = 'turych'</value>
          </setting>
          <setting name="SQL_SELECT_DOC2EXPORT_GOOGLE_DRIVE" serializeAs="String">
              <value>SELECT * FROM QDOKUMENT WHERE version = '1.0'</value>
          </setting>
          <setting name="ExportFolder" serializeAs="String">
              <value>Export</value>
          </setting>
          <setting name="SQL_AFTER_DOC_EXPORTED" serializeAs="String">
              <value>update DOKUMENT set VERSION = '2.0' WHERE DOKUMENTFILEGUID = '%FILEGUID%'</value>
          </setting>
          <setting name="ImportFolder" serializeAs="String">
              <value>Import</value>
          </setting>
          <setting name="SQL_AFTER_DOC_IMPORTED" serializeAs="String">
              <value>update DOKUMENT set VERSION = '1.0' WHERE DOKUMENTFILEGUID = '%FILEGUID%'</value>
          </setting>
          <setting name="DeleteDocAfterImport" serializeAs="String">
              <value>0</value>
          </setting>
          <setting name="ImportedFolder" serializeAs="String">
              <value>Hotovo</value>
          </setting>
      </ESO9DMS2GoogleDrive.My.MySettings>
  </applicationSettings>


Parametry z příkazové řádky pro servisní režim (konfigurační soubor musí také existovat, použije se z něj pouze parametr CREDENTIAL_FILE):

  • parametry se zadávají ve formátu /p Action=xxx
  • v případě spuštění servisního režimu se neprovádí standardní akce import/export
  • výsledek spuštění servisního režimu se zapisuje do LOGovacího souboru a do konsole (příkazový řádek)
  • Action=List - zobrazí obsah GD přístupný pod daným účtem (credentials)
  • Action=Delete - vymaže obsah GD přístupný pod daným účtem (credentials)
techdoc/googledrivesync.txt · Poslední úprava: 08.02.2025 13:00 autor: 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki
DokuWiki Appliance - Powered by TurnKey Linux