====== Engie Green Kerwin - Erreur recalculer Dispo Mensuelle ======
Dans Kerwin, lors d'un recalcule d'un fichier de disponibilité Mensuelle, il est possible d'avoir ce type d'erreur :
{{ :tma:erreur_recalculer_dispo_mensuelle_1.png?nolink&800 |}} \\
Ce type d'erreur est du à une division par 0 dans la requête SQL caché derrière. Pour corriger ce problème, il y a deux possibilités.
===== Relance des calculs =====
Il est préférable dans un premier temps de refaire une relance de calcul pour être sûr que les fichiers corrigés (utilisés dans la requêtes) soient corrects : [[tma:pv:rex_ai:rapports:relance_calculs_end|Relance calculs end]]
Après la relance de calcul, vérifier si le **Recalculer** donne toujours une erreur.
===== Modification de la donnée problématique =====
Si le fichier contient donc bien la valeur zéro, la requête SQL fait une division par 0 et donc donne une erreur. Pour y remédier, il faut changer la/les valeurs **0** en **NULL**.
Les valeurs à changer se situe dans la table **XXX_DebFinToJour** dans la base de donnée **CALEND** (Avec XXX : Site // CAI,FIG,LM1,......).\\
Par exemple : [CALEND].[dbo].[STF_DebFinToJour] \\ \\
Pour certains sites, il se peut que cette table soit dans la base de donnée **KERWIN_SQL**.\\
Pour le site de Nohic, ne pas prendre NOH_ (l'ancien Nohic) mais **NON_** (Nohic New) \\ \\
Pour trouver le jour où il y a ce problème, il suffit de faire un SELECT sur le mois concerné, et de regarder le jour où il y a la valeur 0 dans **END_Jr et EPDL_Jr**.\\
Par exemple : SELECT * FROM [CALEND].[dbo].[STF_DebFinToJour] where Date > '01/04/2020' order by date \\ \\
{{ :tma:erreur_recalculer_dispo_mensuelle_2.png?nolink&800 |}} \\ \\
Il suffit alors de remplacer ces valeurs **0** par des **NULL** en exécutant cette requête, pour la table et le jour correspondant, en faisant bien attention à mettre la même **date et heure** que dans le SELECT précédent : \\
UPDATE table SET EPDL_Jr = NULL, END_Jr = NULL where Date = 'JJ/MM/AAAA 23:59:59 \\ \\
Pour vérifier, il est possible de rejouer le SELECT précédent et de voir qu'il y a bien des NULL à la place des 0 (Voir screen avant).\\ \\
La requête est enregistrée sur la SDSV143 : __C:\Users\app_Kerwin\Desktop\Requêtes SQL TMA__ sous le nom #Erreur_Dispo_mensuelle\\ \\
Après ça, vous pouvez RELANCER votre rapport dans Kerwin ! \\ \\
Si vous relancez les calculs pour le site où vous avez fait la modification, il y a de grande chance que le NULL que vous aviez mis soit de nouveau remplacé par un 0. Il faudra alors refaire cette procédure !!! \\ \\
{{tag>TMA Kerwin Engie_Green #erreur erreur Disponibilité Mensuelle Disponibilité_mensuelle erreur Recalculer}}