Projet

Général

Profil

Anomalie #16856

[Statistiques] Erreur SQL

Ajouté par Cyril VAZQUEZ il y a environ 3 ans. Mis à jour il y a plus de 2 ans.

Statut:
R&D - Terminé
Priorité:
2-Sérieux
Assigné à:
-
Version cible:
Début:
14/04/2021
Echéance:
Tags RM:
2.7.3

Description

A l'arrivée sur la page des statistiques, le spinner reste actif et rien ne s'affiche.

Dans les en-têtes renvoyées par le serveur, on trouve l'erreur suivante:

X-Laabs-Exception
    PDOException; SQLSTATE[22P02]: Invalid text representation: 7 ERREUR: syntaxe en entrée invalide pour l'entier : « » in /var/www/maarchRM2.7.2/src/bundle/Statistics/Controller/Statistics.php:853

Historique

#1 Mis à jour par Cyril VAZQUEZ il y a environ 3 ans

il y a un événement de dépôt dont la colonne 8 des données complémentaires, censée contenir la taille de l'objet et pouvoir être castée en INT, est en fait un texte

C'est une valeur vide parce que le c'est un dépôt d'archive dossier (sans pièce)

Evénement de dépôt avec une resource:

[
  "maarchRM_5o29z5c7f-0000-1y1v2i",
  "SHA256",
  "1903047eb078ed77ffa4542f705910e544545a70428fb2c90d0ed0cb43c46f1e",
  "\\\\\\\\maarchRM\\ACME\\DIP\\DOSIP\\2020\\09\\03\\maarchRM_5o29mswmf-0000-qhozdw\\maarchRM_5o29z0uof-0000-jgdbso\\maarchRM_5o29z5bss-0000-k5sbcv\\maarchRM_5o29z5c7f-0000-1y1v2i",
  "DIP",
  "",
  "GIC",
  "",
  263045
]

Evénement dépôt sans ressource :

[
  "",
  "",
  "",
  "\\\\maarchRM\\ACME\\DIP\\DOSIP\\2020\\09\\03\\maarchRM_5o29mswmf-0000-qhozdw\\maarchRM_5o29z0uof-0000-jgdbso",
  "DIP",
  "",
  "GIC",
  "",
  ""
]

Il faut donc ajouter une clause dans le SQL pour ne prendre en compte que les valeurs numériques à chaque fois qu'on fait la somme de la taille:

Modification du contrôleur Statistics dans fonction 'getSizeForDirectEvent'

Requête qui plantait :

SELECT SUM(CAST("event"."eventInfo"::json->>8 AS INTEGER))
        FROM "lifeCycle"."event" "event"
        WHERE "event"."eventType" IN ('recordsManagement/deposit')

Requête corrigée:

SELECT SUM(CAST(COALESCE(NULLIF("event"."eventInfo"::json->>8, ''), '0') AS INTEGER))
        FROM "lifeCycle"."event" "event"
        WHERE "event"."eventType" IN ('recordsManagement/deposit')

#2 Mis à jour par Cyril VAZQUEZ il y a environ 3 ans

  • Statut changé de En cours à R&D - En test

il y a un événement de dépôt dont la colonne 8 des données complémentaires, censée contenir la taille de l'objet et pouvoir être castée en INT, est en fait un texte

C'est une valeur vide parce que le c'est un dépôt d'archive dossier (sans pièce)

Evénement de dépôt avec une resource:

[
  "maarchRM_5o29z5c7f-0000-1y1v2i",
  "SHA256",
  "1903047eb078ed77ffa4542f705910e544545a70428fb2c90d0ed0cb43c46f1e",
  "\\\\\\\\maarchRM\\ACME\\DIP\\DOSIP\\2020\\09\\03\\maarchRM_5o29mswmf-0000-qhozdw\\maarchRM_5o29z0uof-0000-jgdbso\\maarchRM_5o29z5bss-0000-k5sbcv\\maarchRM_5o29z5c7f-0000-1y1v2i",
  "DIP",
  "",
  "GIC",
  "",
  263045
]

Evénement dépôt sans ressource :

[
  "",
  "",
  "",
  "\\\\maarchRM\\ACME\\DIP\\DOSIP\\2020\\09\\03\\maarchRM_5o29mswmf-0000-qhozdw\\maarchRM_5o29z0uof-0000-jgdbso",
  "DIP",
  "",
  "GIC",
  "",
  ""
]

Il faut donc ajouter une clause dans le SQL pour ne prendre en compte que les valeurs numériques à chaque fois qu'on fait la somme de la taille:

Modification du contrôleur Statistics dans fonction 'getSizeForDirectEvent'

Requête qui plantait :

~~sql
SELECT SUM(CAST("event"."eventInfo"::json->>8 AS INTEGER))
FROM "lifeCycle"."event" "event"
WHERE "event"."eventType" IN ('recordsManagement/deposit')
~~~

Requête corrigée:

~~sql
SELECT SUM(CAST(COALESCE(NULLIF("event"."eventInfo"::json->>8, ''), '0') AS INTEGER))
FROM "lifeCycle"."event" "event"
WHERE "event"."eventType" IN ('recordsManagement/deposit')
~~~

#3 Mis à jour par Cyril VAZQUEZ il y a presque 3 ans

  • Version cible changé de 2.7 à 2.7.3

#4 Mis à jour par Arnaud PAUGET il y a presque 3 ans

  • Statut changé de R&D - En test à Livré

#5 Mis à jour par Emmanuel DILLARD il y a presque 3 ans

  • Projet changé de Maarch RM - Product Backlog à Backlog RM
  • Version cible changé de 2.7.3 à 2.7
  • Fonction Interrogation supprimé
  • Tags RM 2.7.3 ajouté

#6 Mis à jour par Emmanuel DILLARD il y a plus de 2 ans

  • Statut changé de Livré à R&D - Terminé

Formats disponibles : Atom PDF