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ń. 

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.