Kihagyás

Dokumentum generálás

Dokumentum generáláshoz a SEMI Product két eszközt vizsgált meg.

A két eszköz:

Mindkét eszköz lényege, hogy egy docx kiterjesztésű fájlt használhatunk template-ként, amibe belekerülhetnek a statikus szövegek. A dinamikus részeket pedig a programkód helyettesíti be a megfelelő placeholderek helyére.

1. Apache POI és Gotenberg

  • Előnye, hogy ingyenesen használható.
  • Hátránya, hogy limitáltabb a funkcionalitása mint a fizetős eszközöknek.

1.1 Mikor érdemes a POI-t választanunk?

Amennyiben a projekten nem szükséges:

  • Dinamikus hosszúságú listákat, táblázatokat beszúrni a dokumentumba.
  • Adott bekezdések, táblázat oszlopok valamilyen feltétel alapján dinamikusan kerüljenek be a generált dokumentumba.

Azonban szeretnénk a statikus szövegekben:

  • Fix helyen található szavakat, hosszabb szövegeket dinamikusan cserélni.
  • Fix táblázatok celláinak értékét dinamikusan cserélni.
  • Fix helyen található footer értékeket dinamikusan cserélni.

Ha a fentiek teljesülnek, akkor az Apache POI is elengendő lehet a projekten.

1.2 Beüzemelése

A dokumentum generálás funkció alapértelmezetten ki van kapcsolva a projekten, így a bekapcsoláshoz az alábbi application.yml paraméter értékét állítsuk true-ra.

project:
  techcore:
    document:
      generation:
        poi:
          enabled: false

Mivel a pdf előlállításához a POI mellé a Gotenberg-et is használjuk, a backend/infrastructure mappában található docker-compose.yml fájlban vegyük ki a kommentezést a gotenberg szervíznél.

  gotenberg:
    container_name: gotenberg
    image: gotenberg/gotenberg:7
    restart: always
    ports:
      - "3000:3000"

Gotenberg beüzemelése a többi környezeten

Fontos, hogy ne felejtsük el, hogy a Gotenberg szükséges lesz az AWS DEV, illetve a UAT/PROD környezeteinken is. Ezért ne felejtsük el oda is deployolni, illetve a telepítés menetét a deployment guide-okba is beleírni.

2. Docmosis

  • Előnye, hogy nagyon jól használható tetszőleges dinamikus tartalom generálásához.
  • Hátránya, hogy használatához license szükséges.

2.1 Mikor érdemes a Docmosis-t választanunk?

Ha a projekten számos olyan dokumentumot kell generálnunk, ahol szeretnénk:

  • Dinamikus hosszúságú listákat, táblázatokat beszúrni a dokumentumba.
  • Adott bekezdéseket, táblázat oszlopokat valamilyen feltétel alapján dinamikusan beletenni a generált dokumentumba.

Fontos, hogy a Docmosis segítségével a fentieket úgy tudjuk megtenni, hogy például a táblázat pontos helye, fejléce, formázása, mind a docx template-ben van definiálva, viszont a tartalmát a Docmosis dinamikusan tudja feltölteni kódból. De egyszerűen kezelhető az is, hogy amennyiben 0 sort tartalmazna a táblázat, akkor a fejléc se jelenjen meg stb.

2.2 Beüzemelése

A Docmosis integráció alapértelmezetten ki van kapcsolva a projekten, így a bekapcsoláshoz az alábbi application.yml paraméter értékét állítsuk true-ra.

project:
  techcore:
    integration:
      rest:
        docmosis:
          enabled: false

A Docmosist mi self-hosted módon használjuk, amihez a Tornado API-t áll rendelkezésre.

A megfelelő docker image elindításához a backend/infrastructure mappában található docker-compose.yml fájlban vegyük ki a kommentezést a tornado szervíznél.

  tornado:
    container_name: tornado
    build: https://raw.githubusercontent.com/docmosis/tornado-docker/master/Dockerfile
    restart: unless-stopped
    platform: linux/amd64
    ports:
     - "9090:8080"
    volumes:
     - ${project-folder-path}/src/main/resources/document/generation/templates:/home/docmosis/templates #Replace the placeholde with the actual full path of the project
    environment:
      DOCMOSIS_KEY: "DEVELOPER_KEY_PLACEHOLDER" #Add the Tornado API developer key between double quotes
      DOCMOSIS_SITE: "Free Trial Tornado"
      DOCMOSIS_ADMINPW: "admin"
  • A volumes szekcióban cseréljük ki a ${project-folder-path} placeholdert a lokális környezetünknek megfelelő útvonalra.
  • Az environment szekcióban a változók értékéit helyettesítsük be:
    • DOCMOSIS_KEY A license-ünkhöz kapott kulcs értéke.
    • DOCMOSIS_SITE A license-ünkhöz kapott érték.
    • DOCMOSIS_ADMINPW A Tornado felület eléréshez szükséges jelszó, alapértelmezett értéke: admin.

Docmosis beüzemelése a többi környezeten

Fontos, hogy ne felejtsük el, hogy a Docmosis szükséges lesz az AWS DEV, illetve a UAT/PROD környezeteinken is. Ezért ne felejtsük el oda is deployolni, illetve a telepítés menetét a deployment guide-okba is beleírni.

Továbbá, figyeljünk rá, hogy külön license kulcsunk legyen az éles, és a teszt/DEV környezetekhez.