ODF - Apogée : Requête des heures d'enseignement


Cette page ne doit être appliquée que si le script vous demande de passer la migration manuelle ODFSync.20230525.apogee.course.parts.scc.request

Vous avez un fichier apogee-request.xml dans le dossier WEB-INF/param/odf, il est nécessaire de modifier la requête pour les heures d'enseignement.

Dans la très grande majorité des cas, l'implémentation du noyau convient, supprimez la requête getCourseParts pour la remplacer par les deux requêtes suivantes :

<!--+
   + Cas d'utilisation:
   +   Cette requête est utilisée durant l'import des volumes horaires associés à un ELP.
   +
   + Paramètres utilisateurs (saisie dans l'interface graphique: moteur de recherche)
   +   Aucun
   +
   + Paramètres (contextuels, lié à une sélection ou autre...)
   +   #{apogeeSyncCode} : identifiant de synchronisation des heures d'enseignement [COD_ELP]-[COD_TYP_HEU]
   +   #{parentCode} : identifiant de synchronisation du parent [COD_ELP]
   +   #{year} : Année administrative définie en paramètre dans _admin
   +
   + Retourne:
   +   Les volumes horaires
   +
   +-->
<sql id="searchCoursePartsRequest">
  <include refid="Functions.isNotBlank"/>
     SELECT DISTINCT
         COD_ELP || '-' || COD_TYP_HEU AS ID_SYNC,
         COD_TYP_HEU,
         NBR_HEU_ELP
     FROM ELP_CHG_TYP_HEU
     WHERE
         NBR_HEU_ELP IS NOT NULL
         <if test="#fn = isNotBlank, #fn(apogeeSyncCode)">
             AND upper(COD_ELP) || '-' || COD_TYP_HEU = upper(#{apogeeSyncCode})
         </if>
         <if test="#fn = isNotBlank, #fn(parentCode)">
             AND upper(COD_ELP) = upper(#{parentCode})
         </if>
         <if test="#fn = isNotBlank, #fn(year)">
              AND (COD_ANU IS NULL OR COD_ANU = #{year})
         </if>
</sql>

<select id="searchCourseParts" parameterType="java.util.Map" resultType="map">
  <include refid="pagination">
         <property name="__request" value="searchCoursePartsRequest"/>
   </include>
</select>

 

 

Dans le cas où vous avez une requête personnalisée, où une méthode de tri personnalisée sur les autres requêtes faisant appel à pagination, reportez-y vos modifications. L'essentiel est d'avoir :

  • une balise select avec l'identifiant searchCourseParts faisant appel à la requête pagination avec searchCoursePartsRequest
  • une balise sql avec l'identifiant searchCoursePartsRequest avec :
    • <include refid="Functions.isNotBlank"/> en entête
    • un code de synchronisation (ID_SYNC dans le mapping proposé) concaténant COD_ELP et COD_TYP_HEU
    • un filtre sur ce code de synchronisation avec le paramètre apogeeSyncCode
    • un filtre sur COD_ELP avec le paramètre parentCode
Retour en haut