Wstęp
Dokument w systemie PlusWorkflow zawiera informację o pliku(nazwa, rozmiar, wersja itp.) i indeksach (polach zdefiniowanych w klasie dokumentów). Dokumenty są zawsze zapisywane w archiwum systemowym. Mogą być również przypisywane do zadań.
Wersja pliku, a dokument
W systemie PlusWorkflow wersjonowane są wyłącznie pliki, a nie dokumenty. Plik zawsze posiada wersję, natomiast dokument odnosi się zawszę do najnowszej wersji pliku z którym jest powiązany.
Implementacja
WfDocument
Klasa WfDocument reprezentuje dokument w systemie. Tworzy powiązanie między klasami WfFile, WfFileVersion oraz indeksami dokumentu(wartościami z tabeli pm_idx_000x).
WfFile
Klasa WfFile reprezentuje plik w systemie. Zawiera podstawowe informacje o pliku.
WfFileVersion
Klasa WfFileVersion reprezentuje wersję pliku w systemie. Relacja między obiektami WfFile, a WfFileVersion to 1-do-1
Operacje na dokumentach
Do wykonywania operacji na dokumentach należy używać usługi DocumentService. Umożliwia ona dodawania nowych dokumentów, zmianę indeksów, usunięcie, dołączanie lub odłączenie z/do procesu/zadania.
Przykłady:
InputStream inputStream = ...
DocumentClassService documentClassService=ServiceFactory.getDocumentClassService();
DocumentService documentService=ServiceFactory.getDocumentService();
DocumentClass documentClass = documentClassService.getDocumentClass( "klasa" );
Map<Long, Object> idx = new HashMap<Long, Object>();
idx.put( 1L, "wartość tekstowa" );
idx.put( 2L, 555 );
idx.put( 3L, new Date() );
DocumentDefinition definition = new DocumentDefinition();
definition.setDocumentClassId( documentClass.getId() );
definition.setFileName( "nazwa.pdf" );
definition.setDescription( "opis" );
definition.setUserName( "admin" );
definition.setIndexes( idx );
definition.setInputStream( inputStream );
definition.setActivityId( "103_proces1_zadanie1" );//parametry opcjonalne jeżeli nie zostaną podane dokument zostanie dodany tylko do archiwum
definition.setProcessId( "103_proces1" );// nie będzie dołączony do żadnego procesu
WfDocument document = documentService.addDocument( definition );
documentService.attachDocumentToProcess( documentId, documentClassId, "admin", "103_proces1", "103_proces1_zadanie1" );
Wyszukiwanie dokumentów
Do wyszukiwania dokumentów należy używać klasy.
