Versions Compared

Key

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

...

Operacje

Code Block
languagejava
titleUtworzenie procesuDostęp do usług
linenumberstrue
		ProcessService processService = ServiceFactory.getProcessService();
        ActivityService activityService = ServiceFactory.getActivityService();
        ProcessFinder processFinder =FinderFactory.getProcessFinder();
        ActivityFinder activityFinder=FinderFactory.getActivityFinder();

Procesy

Code Block
languagejava
titleOperacje na procesach
linenumberstrue
        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
languagejava
titlePobranie otwartych zadań z procesu
linenumberstrue
	 	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
languagejava
titleZmiana wartości zmiennych zadaniaOperacje na zadaniach
linenumberstrue
	 	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
languagejava
titleZmiana wartości zmiennych procesuWyszukiwanie zadań
linenumberstrue
	 	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
        }