https://dev.entrouvert.org/https://dev.entrouvert.org/favicon.ico?15861920342018-09-04T09:04:17ZRedmine Entr’ouvertOLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1268342018-09-04T09:04:17ZBenjamin Dauvergne
<ul></ul><p>Oui, pour les ItemField (choix fermés) dont on a pas la visibilité de l'ensemble, en fait uniquement ceux avec une source JSONP, on accumule les valeurs au fur et à mesure du chargement et on génère un id numérique, l'ordre peut donc varier et donc les ids. Pour les types JSON, formule ou liste explicite c'est moins fréquent parce qu'on a l'ensemble des choix exportés dans le schéma du formulaire mais on aura aussi un problème en cas de changement de la liste.</p>
<p>La bonne solution comme le suggère subtilement Serghei ce serait de stocker le label en plus de l'id dans le stockage de la visualisation et chercher le label au dernier moment au lieu d'utiliser l'id si c'est possible (en cas de suppression d'une valeur on aura encore un souci mais là on y peut rien).</p> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1268432018-09-04T09:08:16ZEmmanuel Cazenaveecazenave@entrouvert.com
<ul><li><strong>Assigné à</strong> mis à <i>Emmanuel Cazenave</i></li></ul> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1269112018-09-04T10:28:32ZThomas Noël
<ul></ul><p>Benjamin Dauvergne a écrit :</p>
<blockquote>
<p>Pour les types JSON, formule ou liste explicite c'est moins fréquent parce qu'on a l'ensemble des choix exportés dans le schéma du formulaire mais on aura aussi un problème en cas de changement de la liste.</p>
</blockquote>
<p>Et en réalité c'est assez fréquent car il faut compter sur les JSON qui sont dépendants d'une variable précédente dans le formulaire, genre « la liste des quartiers de la ville <code>{{form_var_ville}}</code> ». Je dis ça juste pour faire mon intéressant dans le ticket, la solution subtile de Serghei est la bonne.</p> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1278432018-09-07T12:10:24ZEmmanuel Cazenaveecazenave@entrouvert.com
<ul><li><strong>Statut</strong> changé de <i>Nouveau</i> à <i>En cours</i></li></ul> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1288932018-09-14T08:20:29ZEmmanuel Cazenaveecazenave@entrouvert.com
<ul><li><strong>Statut</strong> changé de <i>En cours</i> à <i>Nouveau</i></li><li><strong>Assigné à</strong> <del><i>Emmanuel Cazenave</i></del> supprimé</li></ul> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1297532018-09-19T16:06:35ZEmmanuel Cazenaveecazenave@entrouvert.com
<ul><li><strong>Assigné à</strong> mis à <i>Emmanuel Cazenave</i></li></ul> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1342652018-10-18T16:05:05ZBenjamin Dauvergne
<ul><li><strong>Fichier</strong> <a href="/attachments/28651">0001-reuse-older-id-for-open-item-fields-fixes-25982.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/28651/0001-reuse-older-id-for-open-item-fields-fixes-25982.patch">0001-reuse-older-id-for-open-item-fields-fixes-25982.patch</a> ajouté</li><li><strong>Statut</strong> changé de <i>Nouveau</i> à <i>Solution proposée</i></li><li><strong>Patch proposed</strong> changé de <i>Non</i> à <i>Oui</i></li></ul> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1342662018-10-18T16:12:17ZBenjamin Dauvergne
<ul><li><strong>Statut</strong> changé de <i>Solution proposée</i> à <i>En cours</i></li></ul><p>Ne marche pas si les valeurs n'arrivent pas dans le bon ordre<sup><a href="#fn1">1</a></sup>, il faut plutôt récupérer totalement l'ancienne lors de la création de la table.</p>
<p id="fn1" class="footnote"><sup>1</sup> Ancienne table</p>
<table>
<tr>
<td> id </td>
<td> value </td>
</tr>
<tr>
<td> 1 </td>
<td> a </td>
</tr>
<tr>
<td> 2 </td>
<td> b </td>
</tr>
<tr>
<td> 3 </td>
<td> c </td>
</tr>
</table>
<p>Nouvelles valeurs dans leur ordre d'arrivé: a, c, d, c, donnant la table:</p>
<table>
<tr>
<td> id </td>
<td> value </td>
</tr>
<tr>
<td> 1 </td>
<td> a </td>
</tr>
<tr>
<td> 2 </td>
<td> b </td>
</tr>
<tr>
<td> 3 </td>
<td> c </td>
</tr>
</table>
<p>ici erreur lors de l'insertion de (3, c) repris de l'ancienne table.</p> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1342672018-10-18T16:18:05ZBenjamin Dauvergne
<ul><li><strong>Fichier</strong> <a href="/attachments/28652">0001-reuse-older-id-for-open-item-fields-fixes-25982.patch</a> <a class="icon-only icon-download" title="Télécharger" href="/attachments/download/28652/0001-reuse-older-id-for-open-item-fields-fixes-25982.patch">0001-reuse-older-id-for-open-item-fields-fixes-25982.patch</a> ajouté</li><li><strong>Statut</strong> changé de <i>En cours</i> à <i>Solution proposée</i></li></ul><p>Nouvelle solution, a la creation d'une table pour un "open item field" on importe la table du précédent schéma (dont les valeurs ne disparaîtront donc plus).</p> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1351922018-10-23T13:54:27ZBenjamin Dauvergne
<ul><li><strong>Sujet</strong> changé de <i>dans les visualisations utiliser les libellé des champs filtres au lieu des identifiants</i> à <i>rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurs</i></li></ul> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1351932018-10-23T13:55:52ZBenjamin Dauvergne
<ul><li><strong>Projet</strong> changé de <i>BiJoe</i> à <i>OLAP / Business Intelligence pour Publik</i></li></ul><p>Le problème semble aussi présent sur les tables de formulaires voir #27529.</p> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1356682018-10-25T14:32:39ZBenjamin Dauvergne
<ul><li><strong>Statut</strong> changé de <i>Solution proposée</i> à <i>En cours</i></li></ul> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1357872018-10-26T09:13:56ZBenjamin Dauvergne
<ul></ul><p>Bouh c'est plus compliqué que prévu, garder des valeurs de formdef pour des formdef qui n'existent plus et dont la table aura disparu c'est embêtant (jusqu'à ce qu'on sache gérer de l'incrémental).</p>
Il faudrait:
<ul>
<li>pour les formdef et les agents utiliser un identifiant stable (on a id pour les agents, pour les formdefs id+slug je dirait, le premier pouvant être réutiliser il me semble, mais le deuxième pouvant changer :/)</li>
<li>pour les valeurs des options peut-être garder le plan initiale de conserver dans la visualisation le label et non la valeur...</li>
</ul> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1375772018-11-09T17:12:38ZSerghei Mihai
<ul></ul><p>Je serai pour ici gérer uniquement la cohérence des libellés et valeurs dans les visualisations.</p>
<p>Le cas des formdefs inexistants peut-être géré séparemment, dans <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Development: pouvoir supprimer une visualisation depuis le listing (Fermé)" href="https://dev.entrouvert.org/issues/27412">#27412</a> par exemple.</p> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1494962019-01-09T11:03:24ZSerghei Mihai
<ul></ul><ol>
<li>take old id, value paris an inject them <--- s/paris/paris/</li>
</ol>
<p>et</p>
<pre>
selx.ex('SELECT SETVAL...
</pre>
<p>il faut un <code>self.ex</code></p> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1495362019-01-09T14:28:08ZBenjamin Dauvergne
<ul></ul><p>Non mais de toute façon je ne suis pas content de cette solution... Le seul chemin viable pour moi c'est de modifier complètement les identifiants mais je ne vois pas comment en même modifier les visualisations parce que la modification sera faite dans wcs-olap et pas dans bijoe et je ne vois pas comment faire une migration dans bijoe pour cela...</p>
<p>Un plan en plusieurs temps :<br />1. ajouter les identifiants naturels au tables coté wcs-olap sans rien changer d'autres<br />2. quand tout ça est à jour, passer une migration manuelle sur les instances bijoe qui viendra modifier les visualisation pour utiliser cette identifiant plutôt que la clé primaire de postgres<br />3. modifier le schéma généré par wcs-olap pour utiliser cette valeur la jointure plutôt que la clé primaire</p> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1515592019-01-18T14:30:28ZSerghei Mihai
<ul></ul><p>Du coup on fait des tickets séparés: une créer des identifiants naturels, et un autre pour faire la migration et modifier les schéma?</p> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1515662019-01-18T14:44:43ZBenjamin Dauvergne
<ul></ul><p>Serghei Mihai a écrit :</p>
<blockquote>
<p>Du coup on fait des tickets séparés: une créer des identifiants naturels, et un autre pour faire la migration et modifier les schéma?</p>
</blockquote>
On peut faire le point 1 dans ce ticket:
<ul>
<li>identifiants stables pour les agents</li>
<li>les rôles</li>
<li>les fonctions</li>
<li>les statuts</li>
<li>les items (soit l'id pour une source de donnée, soit le libellé)</li>
</ul>
<p>On aura des tables <code>id,source_id,label</code> et pour l'instant source_id sera inutilisé par BiJoe, sans modifier le schéma il continuera à utiliser <code>id</code>, pour pas se faire chier je propose que source_id soit toujours <code>varchar</code> et quand on a un identifiant numérique on fait juste appel à <code>str()</code>.</p> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1515782019-01-18T14:51:14ZBenjamin Dauvergne
<ul><li><strong>Assigné à</strong> <del><i>Emmanuel Cazenave</i></del> supprimé</li></ul><p>J'enlève Manu comme assigné, je ne sais pas qui va s'en occuper.</p> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1554882019-02-11T14:22:14ZEmmanuel Cazenaveecazenave@entrouvert.com
<ul><li><strong>Assigné à</strong> mis à <i>Emmanuel Cazenave</i></li></ul> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1554942019-02-11T14:44:23ZBenjamin Dauvergne
<ul></ul>Discussion à l'instant avec manu, plan en 2,5 temps :
<ul>
<li>pour chaque table de label, refaire la mécanique pour prendre la table dans l'ancien schéma, insérer la totalité des valeurs dans la nouvelle table et poser le générateur de séquence comme le max des id existants (pour les nouvelles valeurs), voir si on préfère conserver la totalité des anciennes valeurs ou ne garder que celle existant vraiment dans le nouveau schéma</li>
<li>préparer l'avenir en ajoutant aux tables de label une colonne <code>natural_id varchar</code> dans laquelle on mettra :
<ul>
<li>pour les formdef, formdef.id</li>
<li>pour les category, category.id</li>
<li>pour les items field "naturels", le label de l'item</li>
<li>pour les items field venant de source de données <code>form_var_<varname>_raw</code> (l'id naturel venant de la source de donnée)</li>
<li>pour les agents le NameID</li>
<li>pour les rôles, le slug, si pas de slug on ignore (ça ne doit pas arriver)</li>
<li>pour les canaux, le slug (le label en fait) : web, mail, etc..</li>
<li>pour les statuts simplifiés, rien, id totalement contrôlé par wcs-olap pas de souci</li>
</ul></li>
</ul>
À la fin ouvrir un nouveau ticket pour la migration conjointe entre wcs-olap et bijoe des ids générés vers les natural_id:
<ul>
<li>coté wcs-olap changer tous les <code>'type': 'integer', 'value': '"field_x.id"'</code> en <code>'type': 'string', 'value': '"field_x.natural_id"'</code></li>
<li>coté bijoe dans toutes les visualisations chercher les filtrages dans toutes les visualisation et quand on trouve une valeur entière la remplacer par le natural_id qui correspond en regardant dans la table concernée:
<ul>
<li><code>for x in filters:</code> puis trouver la table <code>formdata_y_field_x</code> correspondante, cherche l'id dans la colonne <code>id</code> et recopier le <code>natural_id</code></li>
</ul></li>
</ul> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1555062019-02-11T15:01:21ZSerghei Mihai
<ul></ul><p>Benjamin Dauvergne a écrit :</p>
<blockquote>
Discussion à l'instant avec manu, plan en 2,5 temps :
<ul>
<li>pour chaque table de label, refaire la mécanique pour prendre la table dans l'ancien schéma, insérer la totalité des valeurs dans la nouvelle table et poser le générateur de séquence comme le max des id existants (pour les nouvelles valeurs), voir si on préfère conserver la totalité des anciennes valeurs ou ne garder que celle existant vraiment dans le nouveau schéma</li>
</ul>
</blockquote>
<p>Je suis d'avis de garder toutes les valeurs même si elles n'existent pas. Et cela pour ne pas casser les visualisations sauvegardées avec ces libellés.</p> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1555352019-02-11T16:31:13ZBenjamin Dauvergne
<ul></ul><p>Serghei Mihai a écrit :</p>
<blockquote>
<p>Benjamin Dauvergne a écrit :</p>
<blockquote>
Discussion à l'instant avec manu, plan en 2,5 temps :
<ul>
<li>pour chaque table de label, refaire la mécanique pour prendre la table dans l'ancien schéma, insérer la totalité des valeurs dans la nouvelle table et poser le générateur de séquence comme le max des id existants (pour les nouvelles valeurs), voir si on préfère conserver la totalité des anciennes valeurs ou ne garder que celle existant vraiment dans le nouveau schéma</li>
</ul>
</blockquote>
<p>Je suis d'avis de garder toutes les valeurs même si elles n'existent pas. Et cela pour ne pas casser les visualisations sauvegardées avec ces libellés.</p>
</blockquote>
<p>Mouais, faudra voir, peut-être ajouter une colonne <code>alive</code> booléenne pour noter si la valeur vient d'avant ou est encore utilisée, juste pour se souvenir qu'on y pense.</p> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1570432019-02-19T10:23:40ZEmmanuel Cazenaveecazenave@entrouvert.com
<ul><li><strong>Lié à</strong> <i><a class="issue tracker-2 status-5 priority-4 priority-default closed" href="/issues/30752">Development #30752</a>: Conserver les donnés des tables de dimensions</i> ajouté</li></ul> OLAP / Business Intelligence pour Publik - Bug #25982: rendre les identifiants stables sinon les visualisation ne peuvent pointer sur des valeurshttps://dev.entrouvert.org/issues/25982?journal_id=1643252019-03-27T14:41:20ZEmmanuel Cazenaveecazenave@entrouvert.com
<ul><li><strong>Statut</strong> changé de <i>En cours</i> à <i>Fermé</i></li></ul><p>Les choses se sont passées ici : <a class="issue tracker-2 status-5 priority-4 priority-default closed" title="Development: Conserver les donnés des tables de dimensions (Fermé)" href="https://dev.entrouvert.org/issues/30752">#30752</a>, la suite se passera là <a class="issue tracker-2 status-6 priority-4 priority-default closed" title="Development: Supprimer ou marquer les donnés 'mortes' (Rejeté)" href="https://dev.entrouvert.org/issues/31315">#31315</a>.</p>