...
Créer une classe workflow
Pour les cas les plus spécifiques, il est possible d'ajouter, au sources originales, une classe qui décrira précisément un circuit.
Info |
---|
L’intérêt de cette solution est de pouvoir mettre en place des mécanismes complexes de calcul des participants. On peut par exemple imaginer de calculer le n+1 de l'utilisateur courant. |
Cette nouvelle classe devra implémenter la classe "DefaultWorkflow". Des exemples sont déjà présent dans le code source original d'Esup-signature dans le dossier
src/main/java/org/esupportail/esupsignature/service/workflow/impl/
Votre classe doit être construite comme suit :
Bloc de code | ||||
---|---|---|---|---|
| ||||
package org.esupportail.esupsignature.service.workflow.impl;
import org.esupportail.esupsignature.entity.Data;
import org.esupportail.esupsignature.entity.User;
import org.esupportail.esupsignature.entity.WorkflowStep;
import org.esupportail.esupsignature.entity.enums.SignType;
import org.esupportail.esupsignature.exception.EsupSignatureUserException;
import org.esupportail.esupsignature.service.RecipientService;
import org.esupportail.esupsignature.service.UserService;
import org.esupportail.esupsignature.service.WorkflowService;
import org.esupportail.esupsignature.service.workflow.DefaultWorkflow;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Component
public class BasicWorkflow extends DefaultWorkflow {
private String name = "BasicWorkflow";
private String description = "Une signature";
@Resource
private WorkflowService workflowService;
@Resource
private UserService userService;
@Resource
private RecipientService recipientService;
@Override
public String getName() {
return name;
}
@Override
public String getDescription() {
return description;
}
@Override
public List<WorkflowStep> generateWorkflowSteps(User user, Data data, List<String> recipentEmailsStep) throws EsupSignatureUserException {
List<WorkflowStep> workflowSteps = new ArrayList<>();
/* on cree et on ajoute les étapes du workflow ici */
WorkflowStep workflowStep = new WorkflowStep();
workflowStep.setStepNumber(1);
workflowStep.setSignType(SignType.pdfImageStamp);
workflowStep.setDescription("Choix du signataire");
workflowStep.setChangeable(true);
if(data != null) {
workflowStep.setRecipients(workflowService.getFavoriteRecipientEmail(1, data.getForm(), recipentEmailsStep, user));
} else {
workflowStep.getRecipients().add(recipientService.createRecipient(null, userService.getGenericUser("Utilisateur issue des favoris", "")));
}
workflowSteps.add(workflowStep);
return workflowSteps;
}
} |
Il faut donc préciser a minima :
- un nom et une description (dans name et description)
- et implémenter la fonction generateWorkflowSteps
Les formulaires
Création d'un PDF Form
...