Bonjour,
Pour faire simple, proposant une extraction d'informations techniques issue d'une base de données Oracle, je mets en tableau des informations de caractéristique technique d'un équipement.
Les concepteurs du logiciel de GMAO ont utilisés des astuces pour permettre d'optimiser les informations stockées.
Chaque équipement dispose d'une classe et d'une sous classe renseignée ou non, sur chaque classe nous définissons des propriétés pour identifier une caractéristique technique.
Seule les propriétés renseignées individuellement sont stockées. Par contre une sous classe hérite des propriétés de la classe, de ce fait une valeur associée à la propriété de la sous classe est affiché pour tous les équipements tout en étant stockée une seule fois - gain non négligeable.
Lors de l'utilisation du programme Excel, selon les critères de sélection d'équipement, j'interroge la base Oracle sur plusieurs tables et effectue une mise en forme tabulaire des données.
Pour extraire les données de propriétés techniques, je concatene le code de la propriété, le code de la classe, le code de l'équipement ou le code de la sous-classe, en regard de la valeur stockée.
Soit : "propriété classe équipement" ou "propriété classe sous-classe"
Une recherche dichotomique permet de trouver rapidement les informations, sauf quand il y a une aberration dans le tri !
Ci-dessous une partie de la liste (il y a plus de 43000 lignes) :
IDCNTRGLGREQFA-GR-000001246 ==> IDCNTRGL GR EQFA-GR-000001246 propriété classe équipement
IDCNTRGLGREQFA-GR-000001247
IDCNTRGLGREQFA-GR-000001248
IDCNTRGLGRGR-BLINDALU ==> IDCNTRGL GR GR-BLINDALU propriété classe sous-classe
IDCNTRGLGRGR-CAPALDI
IDCNTRGLGRGR-FIRAC/MEMC
IDCNTRGLGRGR-MEMC
IDCNTRGLGRGR-S-CLEMESSY
IDCNTRGLGRGR-S-CLEMESSY-V2
IDCNTRGLGRGR-SEFALU
IDCNTRGLGRGR-S-FIRAC-V2
IDCNTRGLGRGR-S-SOTRALINOX ==> donnée recherchée
IDCNTRGLGRGR-VERBOOM
IDCNTRGLGSEQFA-GS-000000000
IDCNTRGLGSEQFA-GS-000000001
IDCNTRGLGSEQFA-GS-000000002
Pour la sous classe GR-S-SOTRALINOX la réponse est "non-renseigné" or la ligne existe !
Donc pourquoi un tri EXCEL ou SQL insère IDCNTRGLGRGR-SEFALU entre s-c et s-f ? quel est l'importance du signe moins par rapport aux lettres ?
Pour contrer ce problème, lorsque l'écart de recherche est inférieur à 10, je teste chaque ligne entre les bornes et trouve la bonne occurence !
Si vous avez une explication rationnelle ou si je n'ai pas été assez clair, j'attends vos avis.
Cordialement Jean-Luc
Partager