Dokument w firmie ma dwa życia. Pierwsze to plik, czyli bajty zapisane na dysku pod jakąś nazwą. Drugie to informacja: kto dokument wystawił, do jakiej sprawy należy, w jakim jest stanie i kto może go zmienić. Folder sieciowy przechowuje tylko pierwsze życie, a system DMS zapisuje oba.
Moduł DMS (Document Management System) w enova365 opisano tu według materiału SoftwareStudio. Materiał wymienia cyfrowe przechowywanie dokumentów w formatach takich jak PDF oraz archiwizację. Opisuje też przeszukiwanie według kryteriów oraz listy dokumentów i spraw, a także integrację z obszarem Workflow. Mechanizmy ogólne, takie jak metadane i wersje, oraz techniczne, takie jak uprawnienia i indeksy, opisano jako wiedzę o systemach DMS, a nie specyfikację modułu.
enova365 DMS a folder sieciowy - co zmienia archiwum
Folder sieciowy jest wygodny, bo każdy zna Eksplorator plików, a uprawnienia nadaje się na poziomie katalogu. Problemy zaczynają się w skali. Nazwa pliku musi nieść całą informację, na przykład Umowa_dostawa_2026_final_v3.pdf. Uprawnienia NTFS obejmują cały katalog, a historia zmian kończy się na dacie modyfikacji pliku.
System DMS rozdziela plik od jego opisu. Plik trafia do repozytorium, a obok powstaje rekord z metadanymi i wersjami, a status obiegu jest polem tego rekordu. Wyszukiwanie i obieg działają na rekordzie, więc nie zależą od nazwy pliku ani od miejsca w drzewie katalogów.
| Cecha | Folder sieciowy | System DMS |
|---|---|---|
| Opis dokumentu | Nazwa pliku i ścieżka | Pola metadanych w rekordzie |
| Wyszukiwanie | Po nazwie, ewentualnie po treści przez indeks Windows | Po polach opisu oraz po treści dokumentu |
| Wersje | Kopie z dopiskiem w nazwie | Kolejne wersje jednego dokumentu |
| Uprawnienia | Lista ACL na katalogu | Rola, typ dokumentu lub sprawa |
| Ślad zmian | Data modyfikacji pliku | Dziennik: kto, kiedy, co zmienił |
| Powiązania | Brak, poza konwencją nazewnictwa | Kontrahent, sprawa, proces |
Reguła: informacja o dokumencie należy do metadanych, a nie do nazwy pliku. Zmiana nazwy przez użytkownika nie może zrywać powiązania z kontrahentem ani ze sprawą.

Migracja plików z folderu do DMS
Przeniesienie istniejącego zasobu z folderu sieciowego do DMS zaczyna się od inwentaryzacji. Trzeba ustalić, które katalogi zawierają dokumenty obowiązujące, a które kopie robocze i duplikaty. Nazwy plików często niosą część metadanych, na przykład numer umowy w stałym wzorcu, więc pola można wypełnić maszynowo wyrażeniem regularnym i tylko wyjątki opisać ręcznie.
- Inwentaryzacja - lista plików z rozmiarem i datą oraz sumą kontrolną, na której wykrywa się duplikaty.
- Mapowanie - przypisanie katalogów i wzorców nazw do typów dokumentów i kontrahentów.
- Import - wczytanie plików wraz z metadanymi partiami, z dziennikiem błędów.
- Weryfikacja - porównanie liczby plików i sum kontrolnych po obu stronach.
Suma kontrolna po imporcie jest jedynym dowodem, że plik w repozytorium jest identyczny z oryginałem. Sama zgodność liczby plików ukrywa uszkodzenia pojedynczych dokumentów.
Metadane dokumentu i listy spraw
Pola opisujące dokument
Typowy rekord dokumentu zawiera typ i datę oraz kontrahenta i numer sprawy. Status obiegu jest osobnym polem. Typ powinien pochodzić ze słownika, a nie z pola tekstowego. Gdy jeden użytkownik wpisze „Faktura”, drugi „faktura”, a trzeci „fv”, filtrowanie po typie zwraca trzy różne zbiory. Słownik wartości usuwa ten problem u źródła.
Poniższy schemat jest przykładowy i nie odpowiada bazie enova365. Pokazuje, jak metadane zapisuje się w SQL Server oraz jak indeks przyspiesza listę dokumentów kontrahenta:
CREATE TABLE dbo.DokumentMeta (
DokumentId int IDENTITY(1,1) PRIMARY KEY,
TypDokumentu varchar(20) NOT NULL,
KontrahentId int NULL,
NumerSprawy varchar(30) NULL,
DataDokumentu date NOT NULL,
Status varchar(20) NOT NULL DEFAULT 'Roboczy'
);
CREATE INDEX IX_DokumentMeta_Kontrahent
ON dbo.DokumentMeta (KontrahentId, DataDokumentu DESC)
INCLUDE (TypDokumentu, Status);
Indeks z klauzulą INCLUDE jest indeksem pokrywającym. Zapytanie o dokumenty jednego kontrahenta, posortowane od najnowszych, zostaje obsłużone wyłącznie z indeksu, bez odczytu tabeli. Kolejność kolumn w kluczu ma znaczenie: równość po kontrahencie stoi przed sortowaniem po dacie.
Listy spraw i kancelaria
Sprawa jest kontenerem, w którym gromadzi się dokumenty jednego przedsięwzięcia, na przykład wniosku albo umowy. Lista spraw to widok grupujący dokumenty według sprawy. Materiał SoftwareStudio wspomina o listach spraw dopasowanych do specyfiki działalności, takich jak kancelarie bezdziennikowe czy mieszane, czyli o różnych sposobach ewidencji korespondencji.
Mechanizm zostaje ten sam: dokument należy do sprawy, a sprawa ma numer i stan. Różni się jedynie sposób nadawania numerów oraz to, czy korespondencja przechodzi przez dodatkowy rejestr. Szersze omówienie dostosowania programu opisuje tekst o dostosowaniu enova365 do specyfiki firmy.
Wersjonowanie i archiwizacja dokumentów
Wersjonowanie polega na tym, że każdy zapis zmiany tworzy nową wersję dokumentu, a poprzednia zostaje w repozytorium. Zwykle wersje robocze numeruje się drobnymi krokami, na przykład 0.1 i 0.2, a wersja zatwierdzona dostaje numer całkowity, na przykład 1.0. Użytkownik może wrócić do dowolnej wcześniejszej wersji bez szukania kopii w katalogach.
Blokada edycji, czyli check-out, chroni przed nadpisaniem: dokument pobrany do edycji jest dla pozostałych tylko do odczytu, dopóki nie zostanie odblokowany. W folderze sieciowym ostrzega przed tym dopiero edytor, a gdy dwie osoby zapiszą kopie lokalne, powstają dwie rozbieżne wersje.
Reguła: zatwierdzona wersja dokumentu jest niezmienna. Poprawka oznacza nową wersję z własnym numerem i śladem w dzienniku, a nie edycję zatwierdzonego pliku.
Archiwizacja i kopie zapasowe
Według materiału SoftwareStudio funkcja archiwizacji zapewnia bezpieczeństwo i trwałość przechowywanych danych, a system wspiera tworzenie kopii zapasowych. Od strony bazy danych oznacza to kopię pełną i różnicową oraz kopię dziennika transakcji. Kopia bez sprawdzenia nie jest jeszcze kopią zapasową, ponieważ uszkodzony plik wychodzi na jaw dopiero przy odtwarzaniu.
Przykład dla SQL Server z sumą kontrolną i weryfikacją pliku (nazwa bazy i ścieżka są przykładowe):
BACKUP DATABASE DokumentyPrzyklad
TO DISK = N'D:\Kopie\Dokumenty_full.bak'
WITH CHECKSUM, COMPRESSION, INIT;
RESTORE VERIFYONLY
FROM DISK = N'D:\Kopie\Dokumenty_full.bak'
WITH CHECKSUM;
Pliki dokumentów można przechowywać w bazie albo poza nią. SQL Server oferuje mechanizm FileTable, który zapisuje pliki w bazie, a jednocześnie udostępnia je jako zwykły udział sieciowy. Opis funkcji zawiera dokumentacja FileTables w SQL Server. Materiał SoftwareStudio nie wskazuje, w jaki sposób enova365 zapisuje pliki, więc ten przykład ilustruje wyłącznie ogólną technikę.
Uprawnienia i dziennik dostępu
Uprawnienia NTFS opisują dostęp do katalogu, więc dwa dokumenty w jednym katalogu mają te same reguły, nawet jeśli jeden jest ofertą, a drugi umową z klauzulą poufności. W systemie DMS uprawnienia przypisuje się do roli, typu dokumentu lub sprawy. Materiał SoftwareStudio mówi o wielopoziomowych zabezpieczeniach, co w praktyce oznacza rozdzielenie kilku poziomów dostępu:
- Odczyt - podgląd dokumentu i jego metadanych bez prawa zmiany.
- Zapis - dodawanie dokumentów i nowych wersji w wybranych sprawach.
- Zatwierdzanie - zmiana statusu wersji na obowiązującą.
- Administracja - konfiguracja słowników oraz ról.
Rozdzielenie zapisu od zatwierdzania jest podstawą kontroli wewnętrznej: autor dokumentu nie akceptuje własnej wersji. Podobną zasadę ról opisuje artykuł o roli NAR w Studio TCS.net, gdzie uprawnienia decydują o zakresie operacji na danych.
Dziennik dostępu zapisuje, kto otworzył dokument, kto zmienił metadane i kiedy. Przy sporze o treść umowy albo o termin przekazania dokumentu dziennik jest jedynym źródłem, które nie zależy od pamięci użytkowników. W folderze sieciowym podobny ślad wymaga osobnego włączenia inspekcji dostępu do plików.
Statusy obiegu i integracja z Workflow
Materiał SoftwareStudio opisuje integrację DMS z obszarem Workflow: firma definiuje i realizuje procesy związane z przetwarzaniem dokumentów. Według tego samego materiału system kontroluje terminy realizacji zadań i powiadamia odpowiednie osoby o konieczności działania. Mechanizmem stojącym za takim obiegiem jest maszyna stanów.
Każdy dokument ma w danej chwili jeden status, a przejścia między statusami są z góry określone. Dokument roboczy może trafić do akceptacji, lecz nie może od razu zostać zarchiwizowany. Reguły przejść zapisuje się w konfiguracji ścieżki, dzięki czemu każda firma układa własny obieg.
| Status | Kto zmienia | Konsekwencja |
|---|---|---|
| Roboczy | Autor | Edycja swobodna, dokument niewidoczny dla innych działów |
| Do akceptacji | Autor, po zakończeniu redakcji | Edycja zablokowana, zadanie dla akceptującego z terminem |
| Zaakceptowany | Osoba z prawem zatwierdzania | Wersja obowiązująca, dalsze zmiany tylko jako nowa wersja |
| Odrzucony | Osoba z prawem zatwierdzania | Powrót do autora z komentarzem |
| Zarchiwizowany | Reguła procesu lub administrator | Dokument tylko do odczytu, liczony okres przechowywania |
Poniższy fragment w C# pokazuje ideę tabeli przejść. Kod jest przykładem mechanizmu i nie pochodzi z enova365:
using System.Collections.Generic;
using System.Linq;
public enum Status { Roboczy, DoAkceptacji, Zaakceptowany, Odrzucony, Zarchiwizowany }
public static class Obieg
{
private static readonly Dictionary<Status, Status[]> Przejscia = new()
{
[Status.Roboczy] = new[] { Status.DoAkceptacji },
[Status.DoAkceptacji] = new[] { Status.Zaakceptowany, Status.Odrzucony },
[Status.Odrzucony] = new[] { Status.Roboczy },
[Status.Zaakceptowany] = new[] { Status.Zarchiwizowany },
[Status.Zarchiwizowany] = new Status[0]
};
public static bool CzyDozwolone(Status z, Status na) => Przejscia[z].Contains(na);
}
Przejście spoza tabeli jest odrzucane, więc nikt nie ominie akceptacji przez ręczną zmianę statusu. Terminy zadań kontroluje osobny mechanizm powiadomień, którego działanie w systemach ERP opisuje artykuł o powiadomieniach ERP.
Reguła: każde zadanie w obiegu ma termin i osobę odpowiedzialną. Zadanie bez terminu nie generuje powiadomienia, więc dokument czeka w statusie do akceptacji bez końca.
Wyszukiwanie po metadanych i w treści
Materiał SoftwareStudio wskazuje, że moduł generuje listę dokumentów z możliwością analizy i przeszukiwania oraz filtrowania po określonych parametrach. Wyszukiwanie po metadanych korzysta z indeksów opisanych wcześniej i działa szybko nawet przy milionach rekordów, ponieważ porównuje wartości pól, a nie otwiera plików.
Filtry i tagi uzupełniają pola słownikowe tam, gdzie stała lista wartości byłaby za sztywna. Tag jest dowolnym słowem przypisanym do dokumentu, więc szybko powstaje bogaty, ale nieuporządkowany zbiór. Dobrą praktyką jest okresowy przegląd tagów: łączenie synonimów i usuwanie pojedynczych wystąpień utrzymuje użyteczność filtrowania.
Przeszukiwanie treści wymaga osobnego mechanizmu. Skan zapisany jako obraz w PDF nie zawiera tekstu, dopóki nie przejdzie rozpoznawania znaków (OCR). Po wydobyciu tekstu system zapisuje go w indeksie pełnotekstowym, który przechowuje odwzorowanie słów na dokumenty. SQL Server udostępnia takie indeksy oraz predykat CONTAINS:
SELECT m.DokumentId, m.TypDokumentu, m.DataDokumentu
FROM dbo.DokumentMeta AS m
JOIN dbo.DokumentTresc AS t ON t.DokumentId = m.DokumentId
WHERE m.TypDokumentu = 'Umowa'
AND CONTAINS(t.TekstDokumentu, N'"klauzula poufności"')
ORDER BY m.DataDokumentu DESC;

Zapytanie łączy oba mechanizmy: pole typu zawęża zbiór szybkim indeksem, a CONTAINS sprawdza treść tylko w pozostałych dokumentach. Odwrócenie tej kolejności, czyli przeszukiwanie całej treści bez zawężenia, jest najczęstszą przyczyną wolnego wyszukiwania w archiwach.
Dokumenty w procesach księgowych i handlowych
Archiwum dokumentów ma sens dopiero wtedy, gdy plik jest powiązany z rekordem, którego dotyczy. Według materiału SoftwareStudio moduł DMS integruje się z obszarem systemu księgowego i pełni rolę narzędzia do ewidencji oraz przetwarzania danych. Dla faktury oznacza to, że skan leży obok dokumentu i jego dekretu, więc kontrola zapisu nie wymaga szukania pliku. Przebieg dekretacji i zamknięcia okresu opisuje artykuł o enova365 księgowość.
To samo powiązanie działa w obszarze handlowym. Umowa i dokumenty dostawy przypisane do zlecenia tworzą komplet, który można otworzyć jednym kliknięciem. Obsługę zamówień i zleceń opisuje tekst o obsłudze zamówień i zleceń w enova365.
| Dokument | Powiązany rekord | Co daje powiązanie |
|---|---|---|
| Faktura zakupu | Dokument w księgach i jego dekret | Kontrola zapisu bez szukania skanu |
| Umowa | Kontrahent lub zlecenie | Komplet dokumentów do wglądu w jednym miejscu |
| Dokument magazynowy | Ruch towaru i numer zamówienia | Weryfikacja ilości i daty przyjęcia lub wydania |
Rejestry dokumentów występują również w innych produktach SoftwareStudio. Dokumenty magazynowe, takie jak PZ i WZ, opisuje artykuł o dokumentach magazynowych. Obieg dokumentów wypożyczeń w narzędziowni wyjaśnia tekst o dokumentach wypożyczeń w Studio TCS.net, a dokumenty w transporcie omawia artykuł o Linkway.TMS.
Bazę danych i procedury składowane, na których opiera się taki obieg, opisuje tekst o programowaniu baz danych. Pozycję enova365 wśród systemów ERP omawia artykuł o Soneta enova, a ofertę wdrożeniową SoftwareStudio prezentuje strona usług SoftwareStudio. Oficjalny opis produktu producenta zawiera serwis enova.pl.



