Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
titleDostęp do usług
linenumberstrue
		SubstitutionService substitutionService = ServiceFactory.getSubstitutionService();
        SubstitutionFinder substitutionFinder = FinderFactory.getSubstitutionFinder();

Zarządzanie zastępstwami

 

Do zarządzania zastępstwami należy używać usługi SubstitutionService. Umożliwia ona m. in. dodawanie, zmianę, usuwanie zastępstw.

 

Przykłady:

Code Block
languagejava
titlePrzykłady
linenumberstrue
SubstitutionService ss = ServiceFactory.getSubstitutionService();		

//Utworzenie zastępstwa
Substitution substitution = new Substitution();
substitution.setProcessDefId( "test" );

       
RoleService rs = ServiceFactory.getRoleService();
ProcessService ps = ServiceFactory.getProcessService();
ProcessDefinition pd = ps.getProcessDefinition( substitutionForm.getProcessName() );
Role role = rs.getRole( pd.getPackageId(), pd.getProcessDefinitionId(), roleId );
substitution.setRole( role );
 
UserService us = ServiceFactory.getUserService();
substitution.setSubstituted( us.getUser("jkowalski") );
substitution.setSubstitute( us.getUser( "admin" ) );
 
substitution.setStartDate( new LocalDateTime( "2014-10-20") );
substitution.setFinishDate( new LocalDateTime( "2014-10-22" ) );
 
ss.createSubstitution( substitution );
 
 
//Pobieranie zastępstw
Substitution substitution  = ss.getSubstitution( 34L ); //pobieranie na podstawie id z bazy danych
ListSubstitution> substitutions = ss.getSubstitutions( "admin" ); //pobieranie na podstawie loginu użytkownika (zastępstwa, w których podany użytkownik jest zastępcą lub zastępowanym)
 
//Modyfikacja zastępstwa
Substitution substitution  = ss.getSubstitution( 34L );
substitution.setProcessDefId( "test2" );
ss.updateSubstitution( substitution );
 

Grupy

Code Block
languagejava
titleOperacje na grupach
linenumberstrue
		//Tworzenie grupy
        UserGroup group = new UserGroup( "grupa" );
        group.setDescription( "opis" );
        userService.createGroup( group );
        
        //Zmiana danych grupy
        group.setDescription( "nowy opis" );
        group.setName( "nowa nazwa" );
        userService.updateGroup( group );
        
        //Usunięcie grupy
        userService.deleteGroup( "nowa nazwa" );
 
 

Powiązanie użytkowników z grupami

 

Code Block
languagejava
titlePowiązanie użytkowników z grupami
linenumberstrue
		//Dodanie użytkownika do grupy
		userService.addUserToGroup( "jkowalski", "grupa" );
        
        List<String> groups=Arrays.asList( "grupa1","grupa2" );
        userService.addUserToGroups( "jkowalski", groups );
 
 
		//Usunięcie użytkownika z grupy
		userService.removeUserFromGroup( "jkowalski", "grupa" );
        
        List<String> groups=Arrays.asList( "grupa1","grupa2" );
        userService.removeUserFromGroups( "jkowalski", groups );
 
 
//Usuwanie zastępstwa
Substitution substitution  = ss.getSubstitution( 34L );
ss.deleteSubstitution( substitution ); //usuwanie na podstawie całego obiektu pobranego z bazy
ss.deleteSubstitution( 30L ); //usuwanie na podstawie id z bazy danych
 

Wyszukiwanie zastępstw

Usługa SubstitutionService udostępnia podstawowe i najczęściej wykorzystywane wyszukiwania zastępstw, np.: pobieranie zastępców dla danego użytkownika.

Do bardziej złożonego wyszukiwania służy usługa SubstitutionFinder, która pozwala na wyszukiwanie zastępstw w zależności od zdefiniowanych kryteriów.

Code Block
languagejava
titlePrzykład
SubstitutionFinder sf = FinderFactory.getSubstitutionFinder();
 
//definiujemy filtry wyszukiwania
List<HibernateFilter> filters = new ArrayList<HibernateFilter>();
//Łączenie kryteriów za pomocą operatora logicznego OR
GroupHibernateFilter groupFilter = new GroupHibernateFilter();
groupFilter.setLogicOperator( LogicOperator.OR );
 
//Warunek - processDefId = "test"
SimpleHibernateFilter filter1 = new SimpleHibernateFilter( "processDefId", "test" );
groupFilter.addFilter( filter1 );
//Warunek - lStartDate (data rozpoczęcia) > obecna data
SimpleHibernateFilter filter2 = new SimpleHibernateFilter( "lStartDate", ( new Date() ).getTime() );
filter2.setOperator( FilterOperator.GT );
groupFilter.addFilter( filter2 );
 
filters.add( groupFilter );
 
//Sortowanie malejąco po id z bazy
Sorter sorter = new Sorter( "id", SortDirection.DESC );

int start = 0;
int limit = 10;
 
CountedResult<Substitution> substitutions = sf.findByFilters( filters, sorter, start, limit );

Zdefiniowane powyżej wyszukiwanie znajdzie zastępstwa, które zdefiniowane są dla procesu "test" lub ich data rozpoczęcia jest późniejsza niż aktualna data. Wyniki zostaną zawężone do 10 pozycji i posortowane malejąco po "id" z bazy danych.