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.