---
# System prepended metadata

title: Batchs Coltrane

---

# Batchs Coltrane PERSOCHAINE

## Fichiers de perso

### Balise Traitement
```xml
   <Traitement>
      <Type></Type>
      <Courrier></Courrier>
      <Mail></Mail>
      <Questionnaire></Questionnaire>
   </Traitement>
```
### Valeurs possibles:

Type    
```java
    INITIALISATION("Initialisation"),
    EDITION("Edition"),
    MISEAJOUR("Mise à jour"),;    
```
Courrier
```java	
    COURRIER_ENTREE("Entrée","entreeCOL","OUVDEB")
    COURRIER_OUVERTURE("Ouverture","ouvertureCOL","OUV") ->
    COURRIER_ACCOMPAGNEMENT("Accompagnement","accompagnementCOL","ACC"),
    COURRIER_RELANCE("Relance","relanceCOL","REL"),
    COURRIER_MED("MED","medCOL","MED"),
    COURRIER_MEDAR("MEDAR","medCOL","MEDAR"),
    COURRIER_CNR("CNR","cnrCOL","CNR"),
    COURRIER_CNRAR("CNRAR","cnrCOL","CNRAR"),
    COURRIER_REMERCIEMENT("Remerciement","remerciementCOL","REM"),
    PAS_DE_COURRIER("Sans")
```

Mail
```java
    MAIL_OUVERTURE("Ouverture"),
    MAIL_RELANCE("Relance"),
    MAIL_DIVERS("Divers"),
    PAS_DE_MAIL("Sans"),
    UNITAIRE("Unitaire")
```

Questionnaire
```java
    OUI("Oui"),
    NON("Non")
```
### Combinaisons possibles
#### Si Traitement = 'Initialisation'
* 	<Courrier> peut valoir
    * COURRIER_ENTREE("Entrée","entreeCOL","OUVDEB"),
	* COURRIER_OUVERTURE("Ouverture","ouvertureCOL","OUV")
	* PAS_DE_COURRIER("Sans")
* 	<Mail> peut valoir 
    * Ouverture
    * Sans
*   Questionnaire peut valoir 
    * Oui possible si Courrier différent de Sans  (COURRIER_OUVERTURE ou COURRIER_ENTREE donc) 
    * Non

#### Si Traitement = 'Mise à jour'
* <Courrier> Sans</Courrier>
* <Mail>Sans</Mail>
* <Questionnaire>Non</Questionnaire>

#### Si Traitement = 'Edition'
	Courrier et Mail doivent être de même nature 'Ouverture' ou Relance (ou un des 2 vides)
	Pas de mail pour MED MEDAR CNR CNRAR et Remerciement
    
    
### Balise Contact
Possibilité d'ajouter 	
```xml
<Traitement>
	<Type>Modification</Type>
</Traitement>
```
dans la balise Contact pour faire une modification des infos en base du contac


## PERSOCHAINE

### Ordonnacement des batchs
Si Traitement = 'Initialisation'
	PESOVERIF
	PERSOLDAP
	PERSOINITPILOTAGE
	PERSOINITSTROMAE
	COURRIERCHAINE si <Courrier> différent de 'Sans'
	COURRIELCHAINE si <Mail> différent de 'Sans'


Si Traitement = 'Mise à jour'
	PESOVERIF
	PERSOLDAP
	PERSOINITPILOTAGE
    Courrier et mail doivent valoir 'Sans'

Si Traitement = 'Edition'
    COURRIERCHAINE si <Courrier> différent de 'Sans'
	COURRIELCHAINE si <Mail> différent de 'Sans'
    
### Détail des batchs
    
#### PESOVERIF: 
	verif campagne et modele existe sur orbeon
	verif campagne/vague existe sur pilotage
	recherche des contacts précédents si pas de contact renseigné dans fichier de perso (balise Contacts inexistante ou vide)
    
#### PESOLDAP: 
     Pour chaque contact rensigné   
        Si idec de contact renseigné
	        recuperation du contact dans le LDAP
            ajout de l'habilitation relative à la campagne
        Sinon
	        creation contact dans le ldap
	        creation mot de passe dans le ldap
	        ajout de l'habilitation relative à la campagne + consultation_coltrane + stromae_coltrane
	creation d'un fichier de mots de passe

#### PERSOINITPILOTAGE
    

    
	 (:Si c'est une mise à jour, il faut obligatoirement que l'interrogation existe déjà. :)

	Traitement des UE
    
		Type = Initialisation -> insert or update
		Type = Mise à jour -> update ou error si l'ue n'existe pas

	Traitement des contacts
    
		Pour chacun des contacts
			Contact/Type = Modification -> update contact
			Ajout habilitation relative à la campagne * ue
			MAJ de la balise du contact <DerniereModification auteur="batch-{$campagne}" date="">

	Traitement des interrogations
    
		Type = 'Initialisation'
		 	si interro existe deja
				si l contact principal existe pour cette interro, on le recupere,
				sinon, on prend en contact principal le premier contact du fichier
			    update interro avec infos du fichier pour les gestionnaires
		 	sinon
			    creation interro avec infos du fichier de perso
    
		Type = 'Mise à jour' (verif existence interro plus haut)
			si Contact/Type = Creation ou pas de contact dans le fichier de perso (le batch cree dans ce cas un contact)
				update contact principal de l' interro avec le nouveau contact créé dans les étapes précédentes
			sinon
				RIEN au niveau du contact principal
			Dans tous les cas, update interro avec infos du fichier pour les gestionnaires

```xml!
<Interrogation idUniteEnquetee="999999100" idVague="01" idContactPrincipal="BETTYBE">
    <Gestionnaires>
                    <Gestionnaire>
                        <Nom>Aude Wierre</Nom>
                        <Telephone>0144382258</Telephone>
                        <FacSimile>0144382466</FacSimile>
                    </Gestionnaire>
                    <Gestionnaire>
                        <Nom>M-Lorraine Chausse</Nom>
                        <Telephone>0144382493</Telephone>
                        <FacSimile>0144382466</FacSimile>
                    </Gestionnaire>
    </Gestionnaires>
</Interrogation>
```

#### PERSOINITSTROMAE	
	ws...
