...
Code Block |
---|
language | java |
---|
title | Dostęp do usług |
---|
linenumbers | true |
---|
|
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 |
---|
language | java |
---|
title | Przykłady |
---|
linenumbers | true |
---|
|
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 |
---|
language | java |
---|
title | Operacje na grupach |
---|
linenumbers | true |
---|
|
//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 |
---|
language | java |
---|
title | Powiązanie użytkowników z grupami |
---|
linenumbers | true |
---|
|
//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 |
---|
language | java |
---|
title | Przykł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.