Przydatne klasy:
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 ); |
ActivityFinder activityFinder=FinderFactory.getActivityFinder();
List<Activity> activities=activityFinder.findOpenedActivities( processId );
for ( Activity activity : activities )
{
String activityId=activity.getActivityId();
} |
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.