demande congé

1
0
-1

bonjour , je suis débutant Bonita BPM 7,
j'ai fait un processus de demande de congé , j'ai fait deux modèle de données métier DemandesConges(dateDebut,dateFin,dateRetours,NombreJours,TypeConge,solde,MotifConge)et DossierAdministratif(firstName,lastName,Email..) , maintenant je veut savoir comment je peut calculer solde de congé de tel sorte que chaque fois qu'un employé fait une demande de congé , le solde de congé soustrait le nombre de jours .

j'ai fait un script du variable de pool mais plein d'erreur

  1. def demandesCongesVar = new com.company.model.DemandesConges()
  2. demandesCongesVar.dateDebut = demandeInput.dateDebut
  3. demandesCongesVar.nombreJours = demandeInput.nombreJours
  4. demandesCongesVar.typeConge = demandeInput.typeConge
  5. demandesCongesVar.motifConge = demandeInput.motifConge
  6. demandesCongesVar.dateFin = demandeInput.dateFin
  7. demandesCongesVar.dateRetours = demandeInput.dateRetours
  8. int solde = demandeInput.solde
  9. solde = solde - demandeInput.nombreJours
  10. demandesCongesVar.setSolde(solde)
  11. def processInstance = apiAccessor.processAPI.getProcessInstance(processInstanceId)
  12. // Ajouter l'identifiant du demandeur à la nouvelle demande
  13. demandesCongesVar.idDemandeur = processInstance.startedBy
  14. import org.bonitasoft.engine.api.IdentityAPI
  15. import org.bonitasoft.engine.identity.User
  16. import org.bonitasoft.engine.identity.UserCriterion
  17.  
  18. import com.company.model.DemandesConges
  19.  
  20. // Default vacations days number
  21. final int daysAvailableInitialValue = 60
  22.  
  23. // Offset and increment to use when using paginated API
  24. int offset = 0
  25. int increment = 10
  26.  
  27. // The list of Bonita BPM user id that already have an entry in VacationAvailable table
  28. List<Long> alreadyKnownEmployeeId = new ArrayList<Long>()
  29.  
  30. // The list of already created VacationAvailaible
  31. List<DemandesConges> currentlyExistingDemandesConges
  32.  
  33. // The newly created VacationAvailable
  34. List<DemandesConges> newDemandesConges = new ArrayList<DemandesConges>()
  35.  
  36. // Search for already existing VacationAvailable counters
  37. while ((currentlyExistingDemandesConges = DemandesCongesDAO.find(offset, increment)).size() > 0) {
  38. for (DemandesConges va : currentlyExistingDemandesConges) {
  39. // Update the list of user ids for user who already have an associated VacationAvailable object
  40. alreadyKnownEmployeeId.add(va.bonitaBPMId)
  41.  
  42. // Reset the vacation available counter
  43. va.solde=daysAvailableInitialValue
  44. }

Comments

Submitted by Lionel Palacin on Wed, 04/26/2017 - 21:40

Pourriez-vous decrire plus en detail les erreurs remontes?

Aussi un exemple interessant de demande de conges existe ici: https://github.com/Bonitasoft-Community/vacation-management-example

Submitted by helaguesmi on Fri, 04/28/2017 - 00:02

@Lionel Palacin

j'essaye à faire comme dans l'exemple du vacation management mais malheureusement j'ai cette Erreur : { "exception": "class org.bonitasoft.engine.exception.BonitaRuntimeException", "message": "USERNAME=guesmi | java.lang.IllegalArgumentException: org.hibernate.QueryException: Not all named parameters have been set: [bonitaBPMId] [SELECT s\nFROM SoldeCongeAvailable s\nWHERE s.bonitaBPMId= :bonitaBPMId\n]" } –

Submitted by helaguesmi on Fri, 04/28/2017 - 12:22

@Lionel Palacin j'ai reussi à résoudre ce probleme mais comment je peut récupérer les valeurs retournés du script des opérations de deductsdays (mise à jour du soldeAvailableCounter au niveau du Manager et mise à jour du cumul) dans le UIdesigner (bouton valider pour faire mise à jour du solde et du cumul)

No answers yet.
Notifications