# Logiciels > Solutions d'entreprise > BPM >  demande de cong bonita BPM7

## guesmi

bonjour , je suis dbutant Bonita BPM 7,
j'ai fait un processus de demande de cong , j'ai fait deux modle de donnes mtier DemandesConges(idDemandeur,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  aprs que la demande est approuvee par le RH .
j'ai fait un script groovy du variable de pool mais plein d'erreur
import com.company.model.DemandesConges
import com.company.model.DemandesCongesDAO
import org.bonitasoft.engine.api.*
import org.bonitasoft.engine.api.IdentityAPI
import org.bonitasoft.engine.bdm.BusinessObjectDAOFactory
import org.bonitasoft.engine.business.data.SimpleBusinessDataReference
import org.bonitasoft.engine.identity.User
import org.bonitasoft.engine.identity.UserCriterion
import org.bonitasoft.engine.session.APISession
def demandesCongesVar = new com.company.model.DemandesConges()
demandesCongesVar.dateDebut = demandeInput.dateDebut
demandesCongesVar.nombreJours = demandeInput.nombreJours
demandesCongesVar.typeConge = demandeInput.typeConge
demandesCongesVar.motifConge = demandeInput.motifConge
demandesCongesVar.dateFin = demandeInput.dateFin
demandesCongesVar.dateRetours = demandeInput.dateRetours
if(demandesCongesVar.getTypeConge()=="pay")
{
demandesCongesVar.solde = 22}
else if(demandesCongesVar.getTypeConge()=="maternit"){
	demandesCongesVar.solde = 60
}
else if(demandesCongesVar.getTypeConge()=="impay"){
	demandesCongesVar.solde = 20
}else if(demandesCongesVar.getTypeConge()=="paternit"){
	demandesCongesVar.solde = 3
}
else if(demandesCongesVar.getTypeConge()=="maladie"){
	demandesCongesVar.solde = 25
}
else{
	demandesCongesVar.solde = 15
}
double solde = demandesCongesVar.getSolde()
solde = solde - demandesCongesVar.getNombreJours()
demandesCongesVar.setSolde(solde)
demandesCongesVar.getPersistenceId()
def apiSession = PageContext.getApiSession();
BusinessDataAPI businessDataAPI = BusinessDataAPI.getBusinessDataAPI(apiSession);
// Use BusinessDataAPI to retrieve the process instance business variable
// We need to cast it to the appropriate class (SimpleBusinessDataReference or MultipleBusinessDataReference)
SimpleBusinessDataReference businessDataReference = (SimpleBusinessDataReference)businessDataAPI.getProcessBusinessDataReference("vacationAvailable", 2);
// Get storage id (i.e. persistence id) of the business variable
Long storageId = businessDataReference.getStorageId();
// Create DAO factory for the business data
BusinessObjectDAOFactory daoFactory = new BusinessObjectDAOFactory();
DemandesCongesDAO demandesCongesDAO = daoFactory.createDAO(apiSession, DemandesCongesDAO.class);
// Use DAO to find the business variable using the storage id (i.e. persistence id)
DemandesConges demandesConges = demandesCongesDAO.findByPersistenceId(storageId);

//Use the factory to obtain a DAO object

	 IdentityAPI identityAPI = apiAccessor.identityAPI

	 List<User> users
// For each user
for(DemandesConges demande: demandesConges){
	double soldeEncours=demandesConges.getSolde()
	return soldeEncours
	demandesCongesVar.setSolde(soldeEncours)
}

def processInstance = apiAccessor.processAPI.getProcessInstance(processInstanceId)
// Ajouter l'identifiant du demandeur  la nouvelle demande
demandesCongesVar.idDemandeur = processInstance.startedBy
return demandesCongesVar

----------


## Nadinette

Salut,

Je dcouvre bonita avec merveillement malheureusement, je ne comprends pas grand chose... Je suis plutt de culture Microsoft et je ne connais pas trop Java (pour ne pas dire pas du tout).

Comme je n'ai pas les  pour me payer une version souscription, j'essaye de m'auto former sur la version community et je me suis install la version 7.6.3...

J'ai quand mme russi  crer un connecteur  SQL Server et un autre  mon web service XML.

Mon premier objectif est trs simple :


                 +----------------- Si rponse = true ------------- Enreg true  la date de la rponse dans une table historique
Appel WS--+
                 +----------------- Si rponse = false ------------- Enreg false  la date de la rponse dans une table historique

J'ai cr un objet mtier historique
J'ai cr un connecteur d'entre pour appeler le web service (je vois qu'il est appel dans mon visual studio en mode pas  pas)
Dans le script groovy, je n'arrive pas  mettre un point d'arrt pour voir ce qui se passe.
Je rcupre l'enveloppe de sortie mais je n'arrive pas  la parser.

Vous pourriez m'aider ?

Merci

----------

