diff --git a/CHANGELOG b/CHANGELOG
index b3c7ce602644a82b3a9b196819ddc088ad518d78..ccfc622c231c3cc282711f0d7896a290a09f2b21 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,8 @@
+---
+title: "Changement intervenus sur OSE"
+author: Laurent Lécluse - DSI - Unicaen
+...
+
 #OSE 6.3 
 
 ## Corrections de bugs
@@ -29,6 +34,8 @@ Le déploiement de OSE se fait désormais directement à partir de sa plateforme
 
 * Nouvelle procédure de mise à jour à partir de GitLab.
 
+* Suppression des anciens Jobs Oracle et remplacement par des tâches CRON
+
 ## Procédure de mise à jour
 
 * Sauvegardez votre fichier de configuration local (`config/application.local.php`)
@@ -40,6 +47,7 @@ Supprimez complètement le répertoire OSE.
 
 * Procédez à une nouvelle installation (procédure ici : https://ose.unicaen.fr/deploiement/install).
 Si vous déployez au même endroit qu'avant, la configuration d'Apache ne devra pas être modifiée.
+La base de données n'a pas non plus besoin d'être réinstallée.
 
 * Réintégrez votre fichier de configuration locale.
 Attention : **ce dernier a changé d'emplacement**. De `config/application.local.php` il est devenu `config.local.php`.
@@ -50,3 +58,13 @@ Le fichier n'est donc plus placé dans le répertoire `config`, mais à la **rac
 
   A sa place, copiez-collez dans votre fichier la rubrique `'etablissement'` en provenance 
   du fichier `config/application.local.dist`, puis personnalisez-là.
+
+* Modifiez la structure de votre base de données en exécutant dans SQL developer le script de mise à jour suivant :
+`data/Mises à jour/06.3.sql`
+
+* Créez les tâches CRON suivantes si elles n'existent pas déjà :
+    * notifier-indicateurs
+    * synchronisation
+    * chargens-calcul-effectifs
+ 
+Pour cela, se référer à la procédure d'installation de OSE.
\ No newline at end of file
diff --git a/bin/ose b/bin/ose
index 74514f13b33daa8dd5625e4dee5a679754369635..bb6fe0eaa2af43ad021c662cafc5c62204796a60 100755
--- a/bin/ose
+++ b/bin/ose
@@ -24,6 +24,9 @@ switch ($action) {
         $job = $c->getArg(2);
         $oa->exec('UnicaenImport SyncJob '.$job);
     break;
+    case 'chargens-calcul-effectifs':
+        $oa->exec('chargens-calcul-effectifs');
+    break;
     default:
         help($c, $oa);
     break;
@@ -104,6 +107,8 @@ function help(Console $c, OseAdmin $oa)
     $c->println('Actions possibles :');
     $c->println(" - update               : Mise à jour de l'application");
     $c->println(" - notifier-indicateurs : Envoi des mails relatifs aux indicateurs");
+    $c->println(" - synchronisation <job> : Effectue la synchronisation des données pour le <job> transmis");
+    $c->println(" - chargens-calcul-effectifs : Calcul des effectifs du module Charges");
 }
 
 
diff --git a/code/GenDbStructure/DdlGen.php b/code/GenDbStructure/DdlGen.php
index 3e6a3e8fd8ecdbebdc09636aae7ac4a9636414af..421fa95adfeeccb98b4c3cd2be3920833a65ad1e 100644
--- a/code/GenDbStructure/DdlGen.php
+++ b/code/GenDbStructure/DdlGen.php
@@ -111,22 +111,6 @@ class DdlGen
 
         $this->ddl[self::JOBS] = [];
 
-        $this->ddl[self::JOBS]['OSE_CHARGENS_CALCUL_EFFECTIFS'] = "BEGIN
-  DBMS_SCHEDULER.CREATE_JOB (
-      job_name => 'OSE_CHARGENS_CALCUL_EFFECTIFS',
-    job_type => 'STORED_PROCEDURE',
-    job_action => 'OSE_CHARGENS.CALC_ALL_EFFECTIFS',
-    number_of_arguments => 0,
-    start_date => TO_TIMESTAMP_TZ('2017-04-27 17:04:05.788458000 EUROPE/PARIS','YYYY-MM-DD HH24:MI:SS.FF TZR'),
-    repeat_interval => 'FREQ=DAILY;BYHOUR=20;BYMINUTE=0;BYSECOND=0',
-    end_date => NULL,
-    enabled => TRUE,
-    auto_drop => FALSE,
-    comments => 'Calcul général des effectifs des charges d''enseignement'
-  );
-END;
-/";
-
         $this->ddl[self::JOBS]['OSE_FORMULE_REFRESH'] = "BEGIN
   DBMS_SCHEDULER.CREATE_JOB (
       job_name => 'OSE_FORMULE_REFRESH',
diff --git a/code/test6.php b/code/test6.php
index 8443aef099d237cdb43cdaf5b269f49da5c0193b..9db28f97aa7526d7555e5523f5611387bf7c0955 100644
--- a/code/test6.php
+++ b/code/test6.php
@@ -6,3 +6,13 @@
  * @var $viewName   string
  * @var $sl         \Zend\ServiceManager\ServiceLocatorInterface
  */
+
+use UnicaenImport\Processus\ImportProcessus;
+
+
+/** @var ImportProcessus $ip */
+$ip = $sl->get(ImportProcessus::class);
+
+
+
+$ip->syncJob('test1');
\ No newline at end of file
diff --git "a/data/D\303\251ploiement/Changements.pdf" "b/data/D\303\251ploiement/Changements.pdf"
index c089acb498495aadcc15e8533c83e58abd026955..363bda2b2febca8291ef5a81ddf8819de0f47e1c 100644
Binary files "a/data/D\303\251ploiement/Changements.pdf" and "b/data/D\303\251ploiement/Changements.pdf" differ
diff --git "a/data/D\303\251ploiement/Proc\303\251dure d'installation.md" "b/data/D\303\251ploiement/Proc\303\251dure d'installation.md"
index d50fc0b7499d435ef0cc206e91a938bb52513b22..1a1a04cfa4f24a041254f32decbed0f4bee09f83 100644
--- "a/data/D\303\251ploiement/Proc\303\251dure d'installation.md"	
+++ "b/data/D\303\251ploiement/Proc\303\251dure d'installation.md"	
@@ -133,22 +133,6 @@ Certaines données ont en effet besoin d'être mis à jour périodiquement.
 A vous d'adapter les périodicités à vos besoins.
 
 ```sql
-/
-
-BEGIN
-  DBMS_SCHEDULER.CREATE_JOB (
-      job_name => 'OSE_CHARGENS_CALCUL_EFFECTIFS',
-    job_type => 'STORED_PROCEDURE',
-    job_action => 'OSE_CHARGENS.CALC_ALL_EFFECTIFS',
-    number_of_arguments => 0,
-    start_date => TO_TIMESTAMP_TZ('2017-04-27 17:04:05.788458000 EUROPE/PARIS','YYYY-MM-DD HH24:MI:SS.FF TZR'),
-    repeat_interval => 'FREQ=DAILY;BYHOUR=20;BYMINUTE=0;BYSECOND=0',
-    end_date => NULL,
-    enabled => TRUE,
-    auto_drop => FALSE,
-    comments => 'Calcul général des effectifs des charges d''enseignement'
-  );
-END;
 
 /
 
@@ -216,20 +200,19 @@ Exemple d'utilisation pour lancer une tâche de synchronisation appelée `princi
 | Usage                 | Fréquence             | Action de script      |
 | --------------------- | --------------------- | --------------------- |
 | Indicateurs : envoi des notifications par mail | Les jours de semaine entre 5h et 17h | notifier-indicateurs |
-| Synchronisation : Mise en place d'un job pour l'import des données. Plusieurs jobs pourront être créés au besoin | Tous les quarts d'heures entre 7h et 21h sauf le dimanche | synchronisation  |  
-
-Voici un exemple de crontab :
+| Synchronisation : Mise en place d'un job pour l'import des données. Plusieurs jobs pourront être créés au besoin | Tous les quarts d'heures entre 7h et 21h sauf le dimanche | synchronisation `<Nom du job>` |  
+| Calcul des effectifs du module Charges | une fois par jour, à 20h tous les jours sauf le dimanche. | chargens-calcul-effectifs |
 
+Après la commande, on ajoute `1> /tmp/oselog 2>&1` pour loguer le résultat dans le fichier`/tmp/oselog`.
+A adapter le cas échéant.
 
+Voici un exemple de crontab :
 
 ```cron
-###################### 
-#         OSE        #
-######################
-# Notifications par mail des personnes abonnées à des indicateurs.
-# Exécution du script du lundi au vendredi,chaque heure de 7h à 1h :
-0 5-17 * * 1-5   root    /usr/bin/php /var/www/ose/bin/ose notifier-indicateurs 1> /tmp/oselog 2>&1
-*/15 7-21 * * 1-6 php    /usr/bin/php /var/www/ose/bin/ose synchronisation job1 1> /tmp/oselog 2>&1
+# m  h    dom mon dow command
+0    5-17 *   *   1-5 /usr/bin/php /var/www/ose/bin/ose notifier-indicateurs 1> /tmp/oselog 2>&1
+*/15 7-21 *   *   1-6 /usr/bin/php /var/www/ose/bin/ose synchronisation job1 1> /tmp/oselog 2>&1
+0      20 *   *   1-6 /usr/bin/php /var/www/ose/bin/ose chargens-calcul-effectifs 1> /tmp/oselog 2>&1
 ```
 
 OSE est maintenant installé.
diff --git "a/data/D\303\251ploiement/Proc\303\251dure d'installation.pdf" "b/data/D\303\251ploiement/Proc\303\251dure d'installation.pdf"
index 536675ba2e04a9fc91a92e19c995cdb8ab502ec5..a1557e2f58805c025cc66900d499a088023f53fa 100644
Binary files "a/data/D\303\251ploiement/Proc\303\251dure d'installation.pdf" and "b/data/D\303\251ploiement/Proc\303\251dure d'installation.pdf" differ
diff --git "a/data/D\303\251ploiement/Proc\303\251dure de mise \303\240 jour.pdf" "b/data/D\303\251ploiement/Proc\303\251dure de mise \303\240 jour.pdf"
index 26aa26e12d08fbd56dd9e67be8d1cd348903a160..5fb3146d38888f758009784448032796a5f677e3 100644
Binary files "a/data/D\303\251ploiement/Proc\303\251dure de mise \303\240 jour.pdf" and "b/data/D\303\251ploiement/Proc\303\251dure de mise \303\240 jour.pdf" differ
diff --git "a/data/D\303\251ploiement/ose-ddl.sql" "b/data/D\303\251ploiement/ose-ddl.sql"
index a74bf3a89e76b1cc842f8ee0d9fd6f6c0ee126aa..0877219ec73a90bf8b2cdcd2175234f3f91e2ca6 100755
--- "a/data/D\303\251ploiement/ose-ddl.sql"
+++ "b/data/D\303\251ploiement/ose-ddl.sql"
@@ -18690,23 +18690,6 @@ ALTER TRIGGER "WF_ETAPE_DEP_CK" ENABLE;
 -- Jobs
 --------------------------------------------------
 
--- OSE_CHARGENS_CALCUL_EFFECTIFS
-BEGIN
-  DBMS_SCHEDULER.CREATE_JOB (
-      job_name => 'OSE_CHARGENS_CALCUL_EFFECTIFS',
-    job_type => 'STORED_PROCEDURE',
-    job_action => 'OSE_CHARGENS.CALC_ALL_EFFECTIFS',
-    number_of_arguments => 0,
-    start_date => TO_TIMESTAMP_TZ('2017-04-27 17:04:05.788458000 EUROPE/PARIS','YYYY-MM-DD HH24:MI:SS.FF TZR'),
-    repeat_interval => 'FREQ=DAILY;BYHOUR=20;BYMINUTE=0;BYSECOND=0',
-    end_date => NULL,
-    enabled => TRUE,
-    auto_drop => FALSE,
-    comments => 'Calcul général des effectifs des charges d''enseignement'
-  );
-END;
-/
-
 -- OSE_FORMULE_REFRESH
 BEGIN
   DBMS_SCHEDULER.CREATE_JOB (
diff --git "a/data/Mises \303\240 jour/06.3.sql" "b/data/Mises \303\240 jour/06.3.sql"
index cd9fad55d85018becdd2e737c6c195b58a53d368..1a34001cb233f575710a6eec4187d0c895c9befc 100644
--- "a/data/Mises \303\240 jour/06.3.sql"	
+++ "b/data/Mises \303\240 jour/06.3.sql"	
@@ -83,5 +83,13 @@ BEGIN
                                 force => true);
 END;
 /
+-- Suppression du JOB OSE_CHARGENS_CALCUL_EFFECTIFS
+BEGIN
+    DBMS_SCHEDULER.DROP_JOB(job_name => '"OSE"."OSE_CHARGENS_CALCUL_EFFECTIFS"',
+                                defer => false,
+                                force => true);
+END;
+/
+
 
 drop package "OSE"."OSE_IMPORT";
\ No newline at end of file
diff --git a/module/Application/Module.php b/module/Application/Module.php
index 602bca4c3fcf377b75240e082ae1ce63d6575add..552bc9b23c5ebad43af0ab20f167d874353b4883 100755
--- a/module/Application/Module.php
+++ b/module/Application/Module.php
@@ -161,6 +161,8 @@ class Module implements ConsoleUsageProviderInterface, ConsoleBannerProviderInte
             "Notifications",
             'notifier indicateurs [--force]' => "Notification par mail des personnes abonnées à des indicateurs",
             ['--force', "Facultatif", "Envoie les mails sytématiquement, sans tenir compte de la fréquence de notification."],
+            "Charges d'enseignement",
+            'chargens-calc-effectifs' => "Calcul des effectifs du module Charges",
         ];
     }
 
diff --git a/module/Application/config/chargens.config.php b/module/Application/config/chargens.config.php
index 90802b814b7ce3806b113460838d8dc399424977..26019373f09a65c43138721ba693f4ef30610950 100644
--- a/module/Application/config/chargens.config.php
+++ b/module/Application/config/chargens.config.php
@@ -183,6 +183,22 @@ return [
         ],
     ],
 
+    'console' => [
+        'router' => [
+            'routes' => [
+                'chargens-calcul-effectifs' => [
+                    'options' => [
+                        'route'    => 'chargens-calcul-effectifs',
+                        'defaults' => [
+                            'controller' => 'Application\Controller\Chargens',
+                            'action'     => 'calcul-effectifs',
+                        ],
+                    ],
+                ],
+            ],
+        ],
+    ],
+
     'navigation'   => [
         'default' => [
             'home' => [
diff --git a/module/Application/src/Application/Controller/ChargensController.php b/module/Application/src/Application/Controller/ChargensController.php
index 54020ebc52cf674d8f32c5cd3269200f388b49eb..dd4569b8df2e0822a71784b53927e37b87cbeceb 100644
--- a/module/Application/src/Application/Controller/ChargensController.php
+++ b/module/Application/src/Application/Controller/ChargensController.php
@@ -342,6 +342,13 @@ class ChargensController extends AbstractController
 
 
 
+    public function calculEffectifsAction()
+    {
+        $this->getProviderChargens()->calculEffectifs();
+    }
+
+
+
     public function exportCsvAction()
     {
         /** @var Scenario $scenario */
diff --git a/module/Application/src/Application/Provider/Chargens/ChargensProvider.php b/module/Application/src/Application/Provider/Chargens/ChargensProvider.php
index 2fb67f7450b7743a0252aa1ae60427faa387d809..272b1a7e7070c4b2913121bb5c0b888061513035 100644
--- a/module/Application/src/Application/Provider/Chargens/ChargensProvider.php
+++ b/module/Application/src/Application/Provider/Chargens/ChargensProvider.php
@@ -156,6 +156,16 @@ class ChargensProvider
 
 
 
+    /**
+     * @return \Doctrine\DBAL\Driver\Statement
+     */
+    public function calculEffectifs()
+    {
+        return $this->getBdd()->execPlsql('OSE_CHARGENS.CALC_ALL_EFFECTIFS;');
+    }
+
+
+
     /**
      * @param Etape $etape
      *
diff --git a/module/Application/src/Application/Provider/Chargens/ChargensProviderFactory.php b/module/Application/src/Application/Provider/Chargens/ChargensProviderFactory.php
index 9be47f21a2440c2329879696c1e85166fc9c90fb..c1962546e847f3e3a874355996221144b54c3bc1 100644
--- a/module/Application/src/Application/Provider/Chargens/ChargensProviderFactory.php
+++ b/module/Application/src/Application/Provider/Chargens/ChargensProviderFactory.php
@@ -5,6 +5,7 @@ namespace Application\Provider\Chargens;
 use Application\Connecteur\Bdd\BddConnecteur;
 use Application\Service\TypeHeuresService;
 use UnicaenTbl\Service\TableauBordService;
+use Zend\Console\Console;
 use Zend\ServiceManager\FactoryInterface;
 use Zend\ServiceManager\ServiceLocatorInterface;
 
@@ -33,8 +34,10 @@ class ChargensProviderFactory implements FactoryInterface
         $chargensProvider = new ChargensProvider();
         $chargensProvider->setBdd($bdd);
 
-        $serviceAuthorize = $serviceLocator->get('BjyAuthorize\Service\Authorize');
-        $chargensProvider->setServiceAuthorize($serviceAuthorize);
+        if (!Console::isConsole()) {
+            $serviceAuthorize = $serviceLocator->get('BjyAuthorize\Service\Authorize');
+            $chargensProvider->setServiceAuthorize($serviceAuthorize);
+        }
 
         $chargensProvider->setServiceTypeHeures(
             $serviceLocator->get(TypeHeuresService::class)