Net-Base Ajakiri

12.07.2026

Delphi ettevõtte rakendustele: miks väljakujunenud süsteeme on selle abil võimalik jätkuvalt planeeritult moderniseerida

Delphi ei ole paljudes ettevõtetes „legacy“, vaid protsessikeskne ärirakvara stabiilne tuum. Artikkel näitab, kuidas Delphi-rakendusi saab turvaliselt moderniseerida – keskendudes andmejuurdepääsule, liidestustele, käitamisele, turvalisusele ja migratsioonile.

12.07.2026

Ajakirjateemast projektipraktikasse

Sobivad teenuse- ja tehnilised lehed postituse jaoks

Delphi ettevõtte rakenduste jaoks ei ole paljudes organisatsioonides nostalgiline valik, vaid operatiivne reaalsus: aastate jooksul välja kujunenud töölauakliendid, teenused ja andmejuurdepääsud, mis on protsesse stabiilselt kandnud. Kes vastutab IT-juhtimises või administraatorina kättesaadavuse, hooldatavuse ja turvalisuse eest, ei küsi harva „Uuesti ehitada või säilitada?“, vaid: Kuidas moderniseerida kontrollitud viisil ilma käimasolevat tootmist ohustamata?

See artikkel paigutab Delphi aastaks 2026 operatsiooni- ja IT-otsustajate vaatenurgast. Fookuses ei ole raamistikudetailid, vaid argipäevas olulised teemad: andmebaasi juurdepääs (sh BDE-asendamine), liidesed ja REST-APId, juurutamine kui Windows- ja Linux-teenused või Linux-deemon, turvapõhitõed, 32/64-bitine ja Unicode-migratsioon ning arhitektuur, mida meeskonnad aastaid kanda suudavad. Eesmärk on usaldusväärne otsustusbaas: millal on Delphi mõistlik, millal muutub see riskantseks ja millised moderniseerimisteed on end tõestanud?

Miks Delphi ettevõtetes endiselt kasutusel on

Delphi-rakendusi leiab sageli kohtades, kus protsessid ei ole „nice to have“, vaid põhitegevus: tellimuste registreerimine, tootmine, logistika, labori- või seadmete ühendamine, teenindus- ja välitööd, sisemised portaalid andmekvaliteedi või heakskiitude haldamiseks. Sellised protsessile lähedal olevad tarkvaralahendused on sageli aastaid täpselt protsesside, erandite ja liideste järgi optimeeritud. Täielik ümberehitus ei tooks kaasa ainult arenduskulusid, vaid eelkõige riski: protsessiteadmised lähevad kaduma, varjufunktsioonid ilmnevad alles käitusel ja üleminekuperiood neelab IT- ja ärivaldkonna ressursse.

Delphi on selles kontekstis huvitav, sest see vastab tavaliselt kolmele nõudele hästi:

  • Stabiilne töölaua- ja teenuste töö: Paljud rakendused töötavad VCL-töölauakliendina või kui Windows-teenus aastaid väga usaldusväärselt. Operatsioonis on see sageli oluline tegur.
  • Otse andmebaasi juurdepääs ja hea jõudlus: Delphi-rakendused töötavad sageli lähedalt SQL-i ja transaktsioonidega. See on kasulik, kui protsessisammud ja andmete järjepidevus on esmatähtsad.
  • Järk-järguline moderniseerimine: Paljudes kohtades saab teha inkrementaalset moderniseerimist: andmejuurdepääsu asendada, liideseid lisada, üksikuid mooduleid refaktoreerida, üle minna 64-bitisele või Unicode’ile – ilma Big-Bang-üleminekusüsteemita.

Varjukülg: just seetõttu, et need süsteemid on nii kaua töötanud, koguneb tihti tehnilist koormat. Aegunud draiverid, kasutajaliidese ja loogika puudulik eraldatus, ajalooliselt kujunenud õigustemudelid või ebaselged installatsioonirutiinid muutuvad käitusel lõpuks kulukaks. Delphi kasu sõltub seega pigem kogu süsteemi moderniseeritavusest kui „keelest“.

Delphi ettevõtte rakendustes: tüüpilised süsteemimaastikud ja integratsioonimustrid

Käitumises on Delphi harva isoleeritud üheprogramm. Sageli on see komponent maastikus, kuhu kuuluvad andmebaasid, identiteedihaldus ja muud süsteemid. Operatsiooni ja administratsiooni jaoks on määrav, kui puhtalt need sidemed on lahendatud. Tüüpilised mustrid on:

Töölauaklient pluss keskne andmebaas

Klassikaline seadistus: üks Windows-klient, tsentraalne SQL Server, PostgreSQL, Firebird või MariaDB. Probleemne saab olukord olema siis, kui kliendid töötavad otse produktiivsete tabelitega, kuid äriloogika on aastate jooksul hajutatud UI-üritustesse ja SQL-stringidesse. Moderniseerimine tähendab siin sageli: andmejuurdepääsu standardiseerida, tehingupiirid määratleda ning logimist ja seiret lisada – ilma äriprotsessi lõhkumata.

Taustateenused: Windows-Service oder Linux-Daemon

Paljud ettevõtted haldavad Delphi-komponente kui „Headless“-teenuseid: import/eksport, liidesed ERP/DMS/CRM-iga, trüki- ja PDF-vood, öised partiitööd või seadmete pollimine. Üks Windows- und Linux-Services on Windows-alusel töötav teenuseprotsess, millel on määratletud käivitus-/peatamisloogika ning tüüpilised nõuded logimisele ja taastumisele. Linux-Services on funktsionaalselt sarnased, kuid neid haldab enamasti systemd (käivitamine, taaskäivitamine, tervisekontrollid). Töö käigus on siin olulised: korras konfiguratsioon (ilma „INI-faili programmi kataloogis“), õiguste skeem, logide rotatsioon ning võime uuendusi planeeritult juurutada.

REST-API als Brücke zu Portalen und Fremdsystemen

Kui Delphi-rakendused on ajalooliselt olnud „ainult töölauaks“, on sagedaseks moderniseerimisideeks REST-API lisamine. REST tähistab veebipõhist liideseviisi, kus süsteemid suhtlevad HTTP kaudu selgelt määratletud ressursside ja meetodite kaudu. Ettevõtetele annab see võimaluse kliendiportaale, mobiilseid protsesse, BI/aruandlust või väliseid partnerühendusi võimaldada ilma töölauakliendi tingimata asendamiseta. Oluline ei ole pelgalt „API olemasolu“, vaid et autentimine, taotluste piirangud (Rate-Limits), versioonihaldus, vigade käitumine ja monitooring on operatiivselt hallatavad.

Moderniseerimine ohne Big-Bang: Was sich bewährt hat

Moderniseerimine õnnestub siis, kui see on planeeritav: selge ulatus, määratletud riskid, mõõdetavad verstapostid. Delphi-lahenduste puhul saavutatakse see tihti siis, kui moderniseerimise prioriteedid lähtuvad käitusvaludest, mitte „ilusa koodi“ soovist.

1) Datenzugriff konsolidieren (BDE-Ablösung, FireDAC, Treiberstrategie)

Üheks sagedaseks piduriks on ajalooline Borland Database Engine (BDE). Modernsetes keskkondades tekitab see probleeme: juurutamine, 64-bitine tugi, draiverite kättesaadavus ja turvastandardid ei pruugi enam sobida. Üks BDE-Ablösung ei ole harva pelgalt ühe teegi väljavahetamine. See mõjutab SQL-dialekte, väljatüüpe, sortimisreegleid, transaktsioone ja vigade käitumist käituses.

Paljudes projektides on praktiline samm BDE-Ablösung mit nativer Anbindung — andmejuurdepääsukiht Delphi-s, mis ühendab erinevad andmebaasid sobivate draiverite kaudu. See pakub ühtset abstraktsiooni ja kaasaegsemaid draiveriradu. Otsustav on migratsioonistrateegia: mitte kõik korraga, vaid moodulite kaupa — selgete regressioonitestidega, mis keskenduvad kandedile, dokumendinumbritele, lukustustele ja paralleeltööle.

Sügavamaks ülevaateks riskidest ja lähenemistest võib sisemiselt viidata artiklitele nagu „BDE-Ablösung: So modernisieren Sie Delphi-Bestandsanwendungen ohne Betriebsrisiko“ või „Paradox Datenbanken modernisieren“, kui mängus on sellised legacy-andmeallikad.

2) 64-Bit und Unicode als Betriebsvoraussetzung verstehen

Paljud Delphi-rakendused on ajalooliselt 32-bitised ja osaliselt ei toeta järjekindlalt Unicode’i. Tänapäevastes Windows-keskkondades ei ole 64-bit üksnes jõudlusteema, vaid eeldus draiverite, Office-integratsiooni, suurte andmemahtude ja tulevikukindluse jaoks. Unicode on keskne, kui on tähtsad rahvusvahelised andmed, puhtad CSV-/XML-/JSON-liidesed või järjepidev sorteerimine.

IT-vastutajatele on oluline: see migratsioon ei ole „kompileeri ja valmis“. Tüüpilised riskid on muudetud stringipikkused, liideste märgistikueeldused ning ühilduvusprobleemid vanemate DLL-idega või trüki-/skannimiskomponentidega. Usaldusväärne planeerimine hõlmab seetõttu sõltuvuste inventuuri (printerid, skannerid, digiallkiri, Office, seadmed) ning testandmeid erimärkide ja realistlike andmemahtudega.

3) Arhitektuuri samm-sammult korrastada (Layer-3, äriloogika, liidesed)

Paljud vanemad süsteemid toimivad, sest need on „kõik ühes“: UI, äriloogika ja andmejuurdepääs on tihedalt põimunud. See muutub ekspluateerimisel kalliks, kui on vaja uusi kasutajaliideseid, veebiühendusi või automatiseerimist. Tõestatud lähenemine on Layer-3 arhitektuur: jagamine esitluskihtideks (UI), äriloogikaks (reeglid, töövood) ja andmejuurdepääsuks (SQL/tehingud). Kasu pole niivõrd akadeemiline kui praktiline: liideste või andmebaasi muudatused mõjutavad selgemaid kihte, testitavus suureneb ja vead on kiiremini isoleeritavad.

Oluline on järjekord: mitte kõigepealt „kõike refaktoreerida“, vaid stabiliseerida kriitilised protsessituumad. Sageli alustatakse eriti vigadele altid valdkondadest: kandeprotsessi loogika, põhiandmete hooldus koos kõrvalmõjudega, taustatööd ja liideste impordid. Iga mooduli juures suureneb kogu süsteemi hallatavus.

Andmebaasid fookuses: PostgreSQL, SQL Server, MariaDB ja migratsiooni teemad

Ettevõtte rakendused sõltuvad andmetest. Delphi ei ole siin tavaliselt probleem – kitsaskoht on ajalooliselt kujunenud andmebaasi- ja juurdepääsuloogika. Tüüpilised stsenaariumid:

PostgreSQL-i käitamine Delphi tootmiskeskkonnas

Ettevõtetes valitakse PostgreSQL sageli, kui otsitakse robustset avatud lähtekoodiga andmebaasi hea SQL-funktsionaalsuse ja selgete haldustööriistadega. Delphi kontekstis on olulised: puhas draiverikonfiguratsioon, määratletud transaktsioonide isolatsioon ning selge migratsiooniprotseduur skeemimuudatuste jaoks (nt versioonitud andmebaasimigratsioonid, mis jooksutatakse release-protsessis). Halduseks on samuti tähtis, et monitorimine (lukud, aeglased päringud) ja varukoopia/taastamisstrateegiad planeeritakse varakult, mitte alles jõudlusprobleemide tekkides.

SQL Server: stabilne, kuid sageli tehnilise pagasiga

Kui Delphi on aastaid toetunud SQL Serverile, on seadistus sageli põhimõtteliselt stabiilne, kuid mitte tingimata hooldatav. Tüüpilised probleemkohad on dünaamiliselt kokku ehitatud SQL-laused, ebakonsistentne transaktsioonide juhtimine või puuduv parametriseerimine (mõjutades nii turvalisust kui jõudlust). Seetõttu keskendub moderniseerimine sageli järgmistele kohtadele:

  • Ühtsed transaktsioonipiirid: kes alustab/commitib/rollbackib – ja kus?
  • Parametriseerimine: SQL-injektsiooni vältimiseks ja stabiilsemate päringuplaanide jaoks.
  • Selged veapildid: timeoutid, deadlockid ja lukustuste konfliktid peavad logides nähtavad olema.

Ka siin saab sisemiselt viidata põhjalikumale artiklile nagu „SQL Serveri ühenduse moderniseerimine Delphi-s“, kui lugejad on täpselt selles valdkonnas kinni.

Andmebaasi migratsioonid: Firebird, Paradox, vanad struktuurid

Kui mängus on vanad andmebaasid (nt Paradox või vanemad Firebird-seadistused), muutub moderniseerimine kiiresti andmeprojektiks. Operatsioonide jaoks on otsustavad järgmised punktid:

  • Paralleelkäitlus ja üleminekuplaan: Kui kaua töötavad vana ja uus kõrvuti? Kuidas tuvastatakse erinevused?
  • Andmekvaliteet: Duplikaadid, kehtetud kuupäevaväärtused, märgistikuprobleemid ilmnevad migratsioonide käigus järjepidevalt.
  • Õigused ja auditeerimine: Kes tohib mida näha/muuta? Kuidas protokollitakse muudatused jälgitavalt?
  • Rollback-võimekus: Mis juhtub, kui käivituspäeval ei tööta kriitiline protsess?

Seega on Delphi-moderniseerimine automaatselt ka vabastuste ja muudatuste juhtimise distsipliin: selged versioonid, reprodutseeritavad juurutamised, korrektsed varukoopiad ja määratletud aktsepteerimiskriteeriumid.

Liidesed ja integratsioon: REST-API, identiteedid, protokollid

Tänapäeva ettevõtte-IT suurim funktsionaalne käepide ei ole tihti kasutajaliides, vaid integratsioonivõimekus. Püsirakendused peavad täna andmeid andma ja vastu võtma: kliendipordaalid, DMS/ECM, ERP, BI, E-Mail-Gateways, allkirjastamisteenused, masinad või IoT-Gateways.

REST-API järelpaigaldus: was operatsioonid und turvalisus vajavad

Eine REST-API erweitert eine Delphi-Anwendung um standardisierte HTTP-Endpunkte. Für Entscheider ist der Nutzen klar: Man entkoppelt neue Kanäle (Portal, Mobile, Partner) vom Desktop-Release-Zyklus. Für den Betrieb ist der Preis ebenfalls klar: Eine API ist ein öffentliches Versprechen, das stabil, überwacht und abgesichert sein muss.

Praktikas tuleks järgmised aspektid varakult fikseerida:

  • Autentimine/Autorisatsioon: Tokenipõhine, eelistatult integreeritud olemasolevatesse identiteetidesse (nt SAML 2.0 kui ettevõtte Single-Sign-on-standard või järeltöötlusena väljastatud tokenid).
  • Versioonihaldus: Uued väljad ja Endpunkte ei tohi olemasolevaid integratsioone katkestada.
  • Rate-Limits ja kaitse väärkasutuse eest: See ei kehti ainult välistele osapooltele; ka sisemised süsteemid võivad valede konfiguratsioonide tõttu koormust tekitada.
  • Struktureeritud logimine: Request-ID, kasutajakontekst, jooksuajad, veakoodid – für Support und Audit.

TCP/IP, faililiidesed ja „nähtamatud“ integratsioonid

Lisaks REST on kasvavas maastikus palju pragmaatilisi integratsioone: TCP/IP-socketid seadmetega, failide impordid (CSV/XML), E-Mail-põhised üleandmised või printimise-/skaneerimise töökäigud. Need on sageli ärikriitilised, kuid halvasti dokumenteeritud. Moderniseerimine tähendab siin sageli: liideste inventeerimist, formaatide versioonimist, vigade teed määratlemist ja operatsioonialarmide lisamist. See on vähem glamuurne kui uus UI, vähendab aga rikkeid ja tugiaegu märgatavalt.

Igapäevane operatsioon: juurutamine, uuendused, monitooring, toetatavus

Ein Delphi-System kann fachlich hervorragend sein und trotzdem teuer wirken, wenn der Betrieb nicht sauber gestaltet ist. Typische Kostentreiber sind manuelle Updates, ungeklärte Konfigurationsorte, fehlende Telemetrie und Support, der nur über „Bitte Screenshot schicken“ läuft.

Reprodutseeritav juurutamine käsitsi seadistamise asemel

Ettevõtte rakenduste puhul on korduvad juurutused otsustava tähtsusega: sama seis testis, Stagingus ja tootmises, jälgitavad rollbackid, selged sõltuvused. Im Delphi-keskkonnas puudutab see tavaliselt:

  • Client-Deployment: MSI/Setup, automaatvärskenduse mehhanismid või tarkvara levitamine olemasolevate tööriistade kaudu.
  • Service-Deployment: teenusekonto, õigused, käivitustüüp, taastumisvalikud, sõltuvused.
  • Konfiguration: eraldatud binaarpaketist, versioonihalduses, iga keskkonna jaoks eraldi juhitav.

Eriti teenuste puhul on keskne küsimus, millise konto all need jooksevad ja kuidas salajased andmed (nt andmebaasi paroolid, API- võtmed) salvestatakse. „Tavalekirjas failis“ on operatiivselt mugav, kuid turvalisuse mõttes harva aktsepteeritav. Paremad on ettevõttes kasutusele võetud Secret-Stores või vähemalt opsüsteemi kaitsega mehhanismid.

Monitooring ja logimine, mis tugiteenusele tõeliselt aitab

Paljudes olemasolevates süsteemides on logisid, kuid neid ei saa analüüsida: liiga palju müra, puudub korrelatsioon, puuduvad kontekstiandmed. Operatsioonis osutub vajalikuks minimaalne standard:

  • Strukturierte Logs: ajatempel, komponent, severity, Request/Job-ID, kasutaja/klient (kui olemas).
  • Metriken: tööde kestused, järjekorra pikkused, veamäärad, ühenduse katkestused.
  • Health-Checks: kas teenus suudab jõuda andmebaasi ja sõltuvate süsteemideni?

See mõjutab otseselt kättesaadavust: häired lokaliseeritakse kiiremini ja paljud „sporaadilised vead“ muutuvad reprodutseeritavaks, kuna kontekstiandmed ei ole enam puudu.

Turvalisus ja vastavus: mida Delphi-süsteemid täna peavad täitma

Turvalisus ei ole ettevõtte rakendustes niivõrd üksikfunktsioon kui komplekt miinimumnõudeid. Delphi ei ole iseenesest automaatselt turvaline ega turvatu; otsustavad on arhitektuur ja operatiivne distsipliin.

Tüüpilised turvanõrkused olemasolevates rakendustes

  • SQL-Injection und unparametrisierte Queries: eriti oluline, kui sisendid tulevad importidest või liidestest.
  • Rechtekonzept: rollid kasvavad ajalooliselt ilma selge dokumentatsioonita. See tuleb kätte audititel ja mitmekliendilisuse korral.
  • Transportverschlüsselung: liidesed ja andmebaasiga ühendused peavad paljudes keskkondades olema krüpteeritud.
  • Abhängigkeiten: vanad DLL-id, vanad krüptoraamatukogud, ebamäärased litsentsitingimused või enam mitte hooldatavad komponendid.

Moderniseerimisprojektides on mõistlik käsitleda turvalisust mitte kui „kontrollnimekirja lõppu“, vaid kui läbivat teemat: andmepääs, API, juurutus, logimine ja kasutajahaldus peavad sobima. Eriti REST-API-de puhul on puhas autentimine (nt SSO SAML 2.0 kaudu või keskelt hallatavad identiteedid) sageli see punkt, kus projekt liigub olekust „töötab“ olekusse „operatiivselt korras“.

Millal Delphi õige valik on – ja millal mitte

Otsustajatele on tehnoloogiaküsimus harva ideoloogiline; see on riskipõhine. Delphi võib ettevõtte rakendustes olla väga mõistlik alus, kui teatud raamistiku tingimused on täidetud.

Hea põhjused, miks Delphi säilitada ja moderniseerida

  • Hoher Prozessfit im Bestand: rakendus kajastab äriprotsesse, mida ärivaldkonnas on raske asendada.
  • Beherrschbare Modernisierungsschritte: andmepääs, 64-Bit/Unicode, liidesed ja arhitektuur on võimalik etapiviisiliselt lahendada.
  • Selged käitamisnõuded: teenused, monitooring, juurutamine ja turvastandardid on määratletavad ja rakendatavad.

Hoiatusmärgid, mille puhul tuleks varakult sekkuda

  • Ebaselged sõltuvused: „mingi DLL“ vanadest aegadest on äriliselt kriitiline, aga keegi ei tea miks.
  • Puudub testimis- ja release-distsipliin: muudatusi „parandatakse“ otse tootmiskeskkonnas.
  • Kasutajaliides ja andmelogika lahutamatud: iga muudatus tekitab kõrvalmõjusid ja pikki tugitsükleid.
  • Integratsioon muutub sunduseks: kui uued portaalid/partnerid/BI-nõuded on võimalikud ainult kiirlahenduste abil, siis sageli puudub API- ja kihistrateegia.

„Mitte Delphi“ ei ole siiski automaatselt lahendus. Sageli on tegelik otsus: kas soovime kontrollitud moderniseerimisteed planeeritavate release’idega – või uut ülesehitust pikema paralleelfaasiga, kahekordsete testidega ja organisatsioonilise hõõrdumisega? See kaalumine peaks põhinema protsessi-, andme- ja käitamisriskidel, mitte tehnoloogiasuundadel.

Pragmaatiline tegevuskava: nii alustavad ettevõtted struktureeritult

Mõistlik algus väldib nii aktsioonismi („Kõik uus!“) kui ka seiskumist („Töötab ju!“). Praktikas on end õigustanud lähenemine selgeteks tööpakettideks:

  1. Tehniline ülevaatus: sõltuvused, andmebaasid, draiverid, teenused, liidesed, juurutamiskanalid, kriitilised partiitööd.
  2. Käitamisriskide prioriseerimine: mis põhjustab katkestusi, käsitsi sekkumisi või turvariske?
  3. Moderniseerimise jagamine etappideks: näiteks esmalt andmepääs/BDE-Ablosung mit nativer Anbindung, seejärel logimine/monitooring, siis REST-API ja lõpuks arhitektuuri moodulid.
  4. Release- ja rollback-protsessi määratlemine: sh andmebaasi migratsioonid, varukoopiad, üleminekuplaanid.
  5. Dokumentatsioon, mis toetab käitamist: mitte romaanina, vaid selgete runbookidena: käivitus/peatamine, tüüpilised vead, taastumine.

See tegevuskava on teadlikult keskendatud käitamisele. See tagab, et moderniseerimine ei lõpe projektikaustas, vaid toob kaasa tarkvara, mida igapäevaselt saab puhtalt juurutada ja toetada.

Järeldus: Delphi ei ole nii väga „vana“ kui pigem „käitamislähedane“ — kui moderniseerimine on planeeritud

Delphi ettevõtterakendustes on tugev seal, kus loevad stabiilsus, andmekontroll ja protsessile lähedased tööprotsessid. Tegelik tõukejõud ei ole keeles, vaid moderniseerimislähenemises, mis käsitleb võrdselt käitamist, turvalisust ja andmeid: BDE-asendamine ja FireDAC-strateegia, 64-Bit/Unicode, selged kihid (Layer-3), REST-API-d autentimisega, reprodutseeritav juurutamine ning logimine ja monitooring, mis lühendavad tugijuhtumeid.

Kellel on selline lähenemine, saab säilitada välja kasvanud süsteemide ärilise funktsionaalsuse ja viia need tehniliselt olukorda, mis on veel aastaid vastupidav – ilma riskantse Big-Bang’i ja ilma organisatsiooni sundimiseta lõputusse paralleelmaailma vanade ja uute vahel. Kui soovite oma Delphi-maastiku seisundit struktureeritult hinnata ja tuletada moderniseerimistee, on tehniline esmane vestlus sageli kiireim tee selgusele:

Funktsionaalses kontekstis mängib ka Delphi moderniseerimine olulist rolli, kui integratsioonid, andmevood ja edasiarendus peavad puhtalt koos töötama.

Arutage projekti või moderniseerimisettevõtmist koos Net-Base.

järgmine samm

Kui teemast saab reaalne projekt, tuleks arhitektuuri, olemasolevat keskkonda ja ekspluatatsiooni varakult koos vaadelda.

Me ei toeta ainult üksikute küsimuste lahendamist, vaid ka siis, kui lähtekoodilõikudest, pärandsüsteemidest või portaalikontseptsioonidest peab saama usaldusväärne ettevõtteprojekt.

  • Olemasolev olukord, sihtpilt ja tehnilised riskid hinnatakse üheskoos.
  • REST, andmejuurdepääs, portaalid ja juurutamine ei lükata hilisemateks tagajärgedeks edasi.
  • Te näete varakult, milline tee on majanduslikult ja operatiivselt jätkusuutlik.

Jaga postitust

Jaga seda postitust otse

LinkedIn, X, XING, Facebook, WhatsApp ja e-post on kohe saadaval. Instagrami jaoks valmistame lingi ja lühiteksti otse ette.

e-post

Instagram avatakse uues vahekaardis. Link ja lühitekst kopeeritakse eelnevalt lõikepuhvrisse.