====== Package standard d'APEX : WWV_FLOW ====== Ce package est un package standad d'APEX 4.2 ayant été modifié pour les besoin de S@M ---- ===== SOMMAIRE ===== * **[[#cvs|Les fichiers CVS]]**. * **[[#modif1|Explication des modifications - RMO 18/05/2016 ]]**. ---- ===== Les fichiers CVS ===== Sur le CVS, à l'emplacement **dev_erra\appli\PKG_STD** il est possible de retrouver ces fichiers : * wwv_flow.sql : sauvegarde de la version standard du package. * XX_wwv_flow.sql : version actuelle du package qui a écrasé la version standard. ---- ===== Explication des modifications - RMO 18/05/2016 ===== ==== Contexte avant modification ==== La génération des pages APEX est réalisée par le moteur APEX. Lorsque l'on remonte des messages APEX à l'écran à destination de l'utilisateur, ces messages stoppent le moteur APEX et donc la génération de la page. __Problématique :__ la page n'étant pas générée dans son intégralité, les données de l'écran sont incohérentes et peuvent engendrer par la suite une incohérence des données de la base si elles sont transmises à nos API via les processus de la page. ==== Recherche d'une solution ==== Le but était d'éviter l'arrêt de ce moteur APEX. Une possibilité était d'utiliser le déclencheur APEX "**Inline Validation Errors Displayed**" qui permet d'exécuter des processus PL/SQL ou actions dynamiques lorsque des messages apparaissent à l'écran. Or cette solution ne contournait pas le problème. Après des recherches sur le fonction du moteur d'APEX, la valeur retournée par la fonction G_INLINE_VALIDATION_ERROR_CNT du package APEX wwv_flow influe sur l'arrêt du moteur de génération des pages APEX. ==== Modification ==== Tout d'abord, avant de modifier le package standard, un Application Item (PAGE_SKIP_STOP_ENGINE) et un Application Process (PAGE_SKIP_STOP_ENGINE) ont été créés pour renseigner une liste de page séparée par des ':'. Cette liste de page contient celles pour lesquelles on souhaite débrayer le standard. Ensuite, le package standard a été modifié pour que : * Soit l'on est dans la bonne application APEX et sur une page dans la liste précédente, la fonction G_INLINE_VALIDATION_ERROR_CNT renvoie 0 puis ne pas stopper le moteur de rendu APEX. * Sinon le comportement standard est appliqué.