...
Operacje
Code Block |
---|
language | java |
---|
title | Utworzenie procesuDostęp do usług |
---|
linenumbers | true |
---|
|
ProcessService processService = ServiceFactory.getProcessService();
ActivityService activityService = ServiceFactory.getActivityService();
ProcessFinder processFinder =FinderFactory.getProcessFinder();
ActivityFinder activityFinder=FinderFactory.getActivityFinder(); |
Procesy
Code Block |
---|
language | java |
---|
title | Operacje na procesach |
---|
linenumbers | true |
---|
|
ProcessBuilderDefinition definition = new ProcessBuilderDefinition();
definition.setPackageId( "suncode" );
definition.setCreator( "admin" );
definition.setCreatorPassword( "enhydra" );
definition.setProcessDefId( "proces1" );
Map<String, Object> variables = new HashMap<String, Object>();
variables.put( "zmienna1", "abc" );
definition.setVariables( variables );
String processId = processService.createProcess( definition ); |
Code Block |
---|
language | java |
---|
title | Pobranie otwartych zadań z procesu |
---|
linenumbers | true |
---|
|
ActivityFinder activityFinder=FinderFactory.getActivityFinder(
// Pobieranie informacji o procesie
Process process = processService.getProcess( processId );
List<Activity>process activities=activityFinder processService.findOpenedActivitiesgetProcess( processId, Process.JOIN_PROCESS_DEFINITION );// jeżeli chcemy mieć dostęp
for ( Activity activity : activities ) // do definicji procesu
String name = process.getName();
String desc = process.getDescription();
{// Definicja procesu
ProcessDefinition processDef = process.getProcessDefinition();
String activityIdpackageId =activity processDef.getActivityIdgetPackageId();// bez Process.JOIN_PROCESS_DEFINITION rzuci wyjątek
} |
String processDefId = processDef.getProcessDefinitionId();
// Zmiana wartości zmiennych procesu
Map<String, Object> ctx = processService.getProcessContext( processId );
ctx.put( "zmienna", "abc" );
processService.setProcessContext( processId, ctx );
//Usunięcie procesu
processService.deleteProcess( processId ); |
Zadania
Code Block |
---|
language | java |
---|
title | Zmiana wartości zmiennych zadaniaOperacje na zadaniach |
---|
linenumbers | true |
---|
|
ActivityService activityService = ServiceFactory.getActivityService// Pobieranie informacji o zadaniu
Activity activity=activityService.getActivity( processId, activityId );
String activityDefId=activity.getActivityDefinitionId();
String desc=activity.getDescription();
String name=activity.getName();
ActivityState state=activity.getState();//RUNNING, NOT_STARTED, SUSPENDED, COMPLETED, TERMINATED, ABORTED
Date created=activity.getCreatedTime();//data utworzenia zadani
Date started=activity.getStartedTime();//data uruchomienia
// Zmiana wartości zmiennych zadania
Map<String,Object> activityContext=activityService.getActivityContext( processId, activityId );
activityContext.put( "zmienna", "wartość" );
activityService.setActivityContext( processId, activityId, activityContext ); |
Powyższy kod zmienia mapę zmiennych zadania. Jeżeli w aktualnym wątku mamy otwartą transakcję, np. jesteśmy w zadaniu automatycznym to metody getActivityContext i setActivityContext automatycznie podłączą się do aktywnej transakcji. Jeżeli chcemy zmienić wartości zmiennych procesu, lecz nie chcemy zaakceptować zadania to należy ustawić ActivityContext, oraz ProcessContext:
//Otworzenie zadania przez podanego użytkownika. Jeżeli zadanie ma status 'Oczekujące na uruchomienie'
//i jest przypisane do podanego użytkownika to poniższa funkcja spowoduje przypisanie zadania
//do podanego użytkownia i zmieni status na 'Uruchomione'
activityService.openActivity( userName, userPassword, processId, activityId );
//Akceptacja zadania
String executor="jkowalski";//użytkownik akceptujący
String actionName="akceptacja";//nazwa akcji z mapy
Map<String,Object> map=new HashMap<String,Object>();
map.put( "zmienna", "wartosc" );//mapa nie zostanie całkowicie zastąpiona podaną
//zostaną nadpisane tylko podane wartości
AcceptationDefinition acceptation=new AcceptationDefinition( processId, activityId, executor, actionName );
acceptation.setContextMap( map );//opcjonalnie
|
Code Block |
---|
language | java |
---|
title | Zmiana wartości zmiennych procesuWyszukiwanie zadań |
---|
linenumbers | true |
---|
|
ActivityService activityService = ServiceFactory.getActivityService( // Pobieranie otwartych zadań
List<Activity> activities = activityFinder.findOpenedActivities( processId );
ProcessServicefor processService = ServiceFactory.getProcessService( Activity activity : activities )
{
activityId = activity.getActivityId();
Map<String,}
Object> activityContext = activityService.getActivityContext( processId, activityId // Pobieranie zadań przypisanych do użytkownika
activities = activityFinder.findActivitiesAssignedToUser( userName, Activity.JOIN_PROCESS );
activityContext.putfor ( "zmienna", "wartość" );Activity activity : activities )
activityService.setActivityContext( processId, activityId, activityContext );
{
activityId = activity.getActivityId();
Process process = activity.getProcess();// tylko gdy użyliśmy Activity.JOIN_PROCESS
Map<String, Object> processContext = processService.getProcessContext }
// Pobieranie zadań z procesu
activities = activityFinder.findByProcessId( processId, Activity.JOIN_PROCESS );
processContext.putfor ( "zmienna", "wartość" );Activity activity : activities )
processService.setProcessContext( processId, processContext ); |
...
{
activityId = activity.getActivityId();
Process process = activity.getProcess();// tylko gdy użyliśmy Activity.JOIN_PROCESS
} |