Projet

Général

Profil

Anomalie #9806

[métadonnées complémentaires] Problème de gestion des Where Clause issu du fichier index_letterbox.xml

Ajouté par Laurent GIOVANNONI il y a environ 5 ans. Mis à jour il y a presque 3 ans.

Statut:
R&D - Terminé
Priorité:
1-Majeur
Assigné à:
-
Version cible:
Début:
01/03/2019
Echéance:
Version applicable MC:
Tags Courrier:
18.04.13, 18.10.8

Description

Remontée du SGAMI à partir de la 18.04 :

Nous relevons une anomalie lié aux Where Clause du fichier index_letterbox.xml :
Test Case : Bug dans la page 'plan de classement' si clause where vide dans index_letterbox.xml

Nos instances contiennent une table de mapping entre les n° de procédure et des champs complémentaire custom qui sont chargés avec des identifiants.
Cette table procédure ne contient que 2 colonnes : des identifiants et des libellés en clairs.

index_letterbox.xml doit contenir un tag where_clause vide.

    <INDEX>
        <column>custom_f1</column>
        <label>Thématique SVE</label>
        <type>float</type>
        <img>plus.png</img>
        <table>
            <table_name>procedures</table_name>
            <foreign_key>procedure_id</foreign_key>
            <foreign_label>procedure_label</foreign_label>
            <where_clause>1=1</where_clause>
            <order>order by procedure_label</order>
        </table>
        <default_value></default_value>
    </INDEX>

Test Case:
1 - Dans la page "Administration Typologie(s) documentaire(s) 33 Typologie(s) documentaire(s)"

1.1 sélectionner 'plan de classement'

1.2 sélectionner un sous-sous élément comme par exemple : 'invitation'

Résultat : un pop up avec un icône de warning apparaît sans texte. Pas d'affichage à droite pour modifier le choix sélectionné.

Debug : la requête dans la classe DatabaseModel.php contient un clause where vide :
SELECT procedure_id, procedure_label FROM procedures WHERE ORDER BY procedure_label

Note :
Les paramètres de l'appel de la fonction DatabaseModel:select ne semblent pas correctement implémentés pour la classe DoctypeIndexesModelAbstract.php
~~~

class DoctypeIndexesModelAbstract : function getAllIndexes()

$tableXml     = $item->table;
$tableName    = (string) $tableXml->table_name;
$foreignKey   = (string) $tableXml->foreign_key;
$foreignLabel = (string) $tableXml->foreign_label;
$whereClause  = (string) $tableXml->where_clause;
$order        = (string) $tableXml->order;

$res = DatabaseModel::select([
    'select'   => [$foreignKey, $foreignLabel],
    'table'    => [$tableName],
    'where'    => [$whereClause],
    'order_by' => [str_ireplace("order by", "", $order)]
]);
Il conviendrait de prendre exemple sur la classe DocserverTypeModelAbstract.php


class DocserverTypeModelAbstract
public static function get(...)
$aDocserverTypes = DatabaseModel::select([
'select' => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
'table' => ['docserver_types'],
'where' => empty($aArgs['where']) ? [] : $aArgs['where'],
'data' => empty($aArgs['data']) ? [] : $aArgs['data'],
'order_by' => empty($aArgs['orderBy']) ? [] : $aArgs['orderBy'],
'limit' => empty($aArgs['limit']) ? 0 : $aArgs['limit']
]);

  

Historique

#2 Mis à jour par Emmanuel DILLARD il y a environ 5 ans

  • Statut changé de A traiter à R&D - A étudier
  • Priorité changé de 2-Sérieux à 1-Majeur
  • Tags Courrier 18.04.12, 18.10.6 ajouté

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

  • Statut changé de R&D - A étudier à R&D - A planifier
  • Version cible changé de 18.04 à 19.04 (Fin de vie)
  • Tags Courrier 18.10.7 ajouté
  • Tags Courrier 18.10.6 supprimé

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

  • Projet changé de Backlog à CURRENT SPRINT
  • Statut changé de R&D - A planifier à R&D - En cours
  • Tags Courrier 18.04.12, 18.10.7 supprimé

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

  • Tags Courrier 18.04.13, 18.10.8 ajouté

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

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

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

  • Projet changé de CURRENT SPRINT à Backlog

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

  • Projet changé de Backlog à Backlog Courrier
  • Version cible changé de 19.04 (Fin de vie) à 19.04 (Sécurité)

Formats disponibles : Atom PDF