Wstęp
Przydatne klasy:
- ProcessService
- ActivityService
- ProcessFinder
- ActivityFinder
Operacje
Utworzenie procesu
ProcessService processService = ServiceFactory.getProcessService(); 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 );
Pobranie otwartych zadań z procesu
ActivityFinder activityFinder=FinderFactory.getActivityFinder(); List<Activity> activities=activityFinder.findOpenedActivities( processId ); for ( Activity activity : activities ) { String activityId=activity.getActivityId(); }
Zmiana zmiennych zadania
ActivityService activityService = ServiceFactory.getActivityService(); 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.
TODO Opisać możliwość utworzenie ręczenie transakcji SharkTransaction która będzie kompatybilna z serviceami API.