Introduction
Ce document décrit la rétrocompatibilité de l'export des « Events » depuis weavy et leur intégration dans Divalto infinity selon la version des logiciels.
Nous avons également vérifié la rétrocompatibilité des extractions par « ControlCenter » des données depuis Divalto Infinity selon la version du kit et de l'ERP.
Le but étant d'apporter une solution efficace à l'utilisateur confronté à ce genre de problèmes.
La dernière version du kit est la 5.6 pour être en phase avec la version SUMMER’22 de Divalto weavy.
Elle est également totalement intégrée à la version X.8 de Divalto infinity.
Versions logicielles
Petit rappel sur les différentes versions de Divalto infinity, Divalto weavy et du kit de connexion avec leurs dates de sorties.
Divalto infinity
X.8 : 25/05/2022
X.7 : 19/11/2021
X.6 : 28/05/2021
X.5 : 20/11/2020
X.4 : 22/11/2019
X.3 : 23/11/2018
X.2b : 30/11/2018
7.5e : 14/12/2018
Divalto weavy
5.6 - Summer' 22 : 17/05/2022
5.5 - Winter' 21 : 16/11/2021
5.4 - Summer' 21 : 18/05/2021
5.3 - Winter' 20 : 17/11/2020
5.2 - Summer' 20 : 11/06/2020
5.1 - Summer' 19 : 17/10/2019
5.0 - Spring' 19 : 16/05/2019
4.8 - Winter' 19 : 28/02/2019
4.7 - Summer' 18 : 18/09/2018
4.5 - Spring' 18 : 24/05/2018
4.4 - Winter' 18 : 22/02/2018
Kit de connexion
5.6 : 17/05/2022 (Divalto weavy 5.6 - Summer' 22)
5.5 : 16/11/2021 (Divalto weavy 5.5 - Winter' 21)
5.4 : 18/05/2021 (Divalto weavy 5.4 - Summer' 21)
5.3 : 17/11/2020 (Divalto weavy 5.3 - Winter' 20)
5.2 : 02/07/2020 (Divalto weavy 5.2 - Summer' 20)
5.0 : 27/11/2019 (Divalto weavy 5.1 - Summer' 19)
4.1 : 12/04/2019 (Divalto weavy 4.8 - Winter' 19)
4.0 : 30/11/2018 (Divalto weavy 4.5 - Spring' 18)
Compatibilité Event
Tableau des compatibilités
Ce tableau est le résultat du cumul de la compatibilité des intersections des fichiers exportés dans l'event + Divalto weavy avec kit + Divalto infinity (cf détail des compatibilités dans l'annexe 1).
Il permet de savoir vers qu’elle version du kit downgradé nous voulons tendre et le tableau « Compatibilité par fichier » de l’annexe 1 permet d’affiner celà.
| INFINITY | |||||||
WEAVY | 7.5e | X.2b | X.3 | X.4 | X.5 | X.6 | X.7 | X.8 |
4.8 - Winter' 19 | x | x | x | x | x | x | x | x |
5.1 - Summer' 19 | (1) | (1) | (1) | x | x | x | x | x |
5.2 - Summer' 20 | (1) | (1) | (1) | x | x | x | x | x |
5.3 - Winter' 20 | (1)(2) | (1)(2) | (1)(2) | (2) | x | x | x | x |
5.4 - Summer' 21 | (1)(2) | (1)(2) | (1)(2) | (2) | (2) | x | x | x |
5.5 - Winter' 21 | (1)(2) | (1)(2) | (1)(2) | (2) | (2) | (2) | x | x |
5.6 - Summer' 22 | (1)(2) | (1)(2) | (1)(2) | (2) | (2) | (2) | (2) | x |
x : compatible
(1) : fichiers exportés par event depuis Divalto weavy mais non traités à l'import dans Divalto infinity (ex : equipement.txt, typeintervention.txt, typeequipement.txt, LinkToWeavy.txt, …)
(2) : fichiers exportés par event depuis Divalto weavy à downgrader (ex : equipementV3.txt -> equipementV2.txt, ContratV2.txt -> Contrat.txt, …)
Remarques : Weavy 4.8 – Winter' 19 est compatible avec toutes les versions de Divalto infinity mais nous traitons beaucoup moins de fichiers et cette version ne bénéficie pas de toutes les corrections qui ont été apportées depuis : donc non significatif !
Solutions
Généralités
A partir du kit 5.4 les fichiers « Event » permettant de faire un downgrade sont livrés en standard.
Dans le répertoire « …\Kit de connexion Infinity.Install\Interfaces », qui aujourd'hui contient les fichiers d'exports des interfaces, des sous-répertoires complémentaires par version de kit sont disponibles.
Chaque sous-répertoire « Event_vx.x.0.0 » contient les 4 fichiers « eventxxxxx.json » de la version dans laquelle nous souhaitons faire le downgrade, ainsi que les fichiers de dictionnaire « dictionary.json » et « metaData.json » de la version courante car nous ne voulons surtout pas modifier le dictionnaire de données.
Le sous-répertoire « DetailEvents », contient chaque action d'event individuelle (les fichiers sont différents selon les versions) ainsi que l'export global de l'automate « [Infinity] Export.swd » et l'export des stocks de l'automate « [Infinity] Export stock.swd » (uniquement depuis la version 5.5 du kit).
Remarque : si vous avez modifié les requêtes « Event » pour faire du spécifique, celles-ci seront perdues lors d'un downgrade. Il faudra penser à les remettre en place si nécessaire.
Downgrade par import configuration
Le principe est donc par le studio d'importer une configuration : Configuration -> Importer la configuration. Puis de charger le downgrade voulu.
Par exemple, je suis en 5.4.0.0 et je veux passer les events en 5.0.0.0 : je charge les données de « …\Kit de connexion Infinity.Install\Interfaces\Event_v5.0.0.0\ »
Attention la seule proposition de modification doit concerner les « Evénements ». Si une autre modification est proposée il y a un souci et il faut abandonner l'import de la configuration.
Bien vérifier l'onglet « Dictionnaire » qui doit être vide de toute proposition d'ajout, modification, suppression.
Ceci va donc gérer à la fois toutes les actions « [Infinity] Export … » et les automates « [Infinity] Export » et « [Infinity] Export stock.swd ».
A ce stade vous pouvez appliquer toutes les modifications d'Evénements ou les traiter au cas par cas si vous ne voulez pas tout modifier.
Une fois votre choix effectué il ne vous reste plus qu'à « Appliquer la configuration ».
Attention, il n'y aura pas de suppression d'action mais les actions inutiles ne seront plus appelées dans les automates « [Infinity] Export » et « [Infinity] Export stock.swd ».
Downgrade par import action
Le principe ici est de faire un import plus ciblé action par action sans passer par l'import de la configuration.
Par exemple, je suis en 5.4.0.0 et je veux passer l'action « [Infinity] Export Intervention » en version 5.0.0.0, j'importe les données de « …\Kit de connexion Infinity.Install\Interfaces\Event_v5.0.0.0\DetailEvents
[Infinity] Export Intervention.swd ».
Par contre, si une action devient obsolète, il faudra penser à la retirer manuellement de l'automate « [Infinity] Export ».
Il y a aussi possibilité d'importer tout l'automate (avec toutes les actions comprises).
Par exemple, je suis en 5.4.0.0 et je veux passer toutes les actions en version 5.0.0.0 ainsi que l'automate, j'importe les données de « …\Kit de connexion Infinity.Install\Interfaces\Event_v5.0.0.0\ DetailEvents
[Infinity] Export.swd ».
Au final, ceci revient à faire la même chose qu'un downgrade par import de la configuration.
Compatibilité ControlCenter
Tableau des compatibilités
Ce tableau est le résultat du cumul de la compatibilité des intersections des requêtes d'extraction du ControlCenter et la base de données Divalto infinity (cf. détail des compatibilités dans l'annexe 2).
Une version du kit est toujours liée à une version de Divalto weavy, donc le backend d'import sera toujours compatible.
Il permet de savoir s'il faut intervenir manuellement sur une requête d'extraction (modification ou activation/désactivation) et les différents tableaux « Compatibilité par fichier » de l’annexe 2 où il faut intervenir exactement.
| INFINITY | |||||||
WEAVY | 7.5e | X.2b | X.3 | X.4 | X.5 | X.6 | X.7 | X.8 |
4.8 - Winter' 19 | (2) | (2) | x | x | x | x | x | x |
5.1 - Summer' 19 | (2) | (2) | x | x | x | x | x | x |
5.2 - Summer' 20 | (2) | (2) | x | x | x | x | x | x |
5.3 - Winter' 20 | (1)(2) | (1)(2) | (1)(2) | (1)(2) | x | x | x | x |
5.4 - Summer' 21 | (2) | (2) | (2) | (2) | (2) | x | x | x |
5.5 - Winter' 21 | (2) | (2) | (2) | (2) | (2) | (2) | x | x |
5.6 - Summer' 22 | (2) | (2) | (2) | (2) | (2) | (2) | (2) | x |
x : compatible (1) : intervention manuelle avec modification de requête (ou désactivation selon besoin) (2) : intervention manuelle avec activation/désactivation d'export
Solutions
Au niveau du ControlCenter, nous ne proposons pas de corrections automatiques, mais il faut rester dans une certaine logique manuelle car il faut savoir de quelles données nous avons véritablement besoin dans Divalto weavy.
Downgrade par versioning
Si l'extraction dans le ControlCenter est versionnée (c'est-à-dire avec la version de Divalto infinity derrière le nom), il suffit de cocher la version désirée et de décocher la version en cours. Par défaut c'est toujours la version la plus récente qui est cochée.
Exemple pour l'extraction des opportunités/affaires :
Je suis en Divalto infinity 7.5e avec un kit en 5.4 : j'active « Deal v7.5 » et je désactive « Deal vX.1 ».
Exemple pour l'extraction des utilisateurs :
Je suis en Divalto infinity X.4 avec un kit en 5.4 : j'active « baseuser » et je désactive « baseuser vX.6 ».
Downgrade par désactivation
Si une extraction n'est pas utile dans votre projet Divalto weavy, il suffit de la désactiver.
Exemple pour le module « INFINITY - Affaires X.2 » :
Il a été mis en place pour être compatible à partir de la version Divalto infinity X.2.
Je suis en Divalto infinity 7.5e (ou toute version inférieure à la X.2) avec un kit en 5.4 : je désactive toutes les actions de ce module.
Exemple pour le module « INFINITY – IM » :
Il a été mis en place pour le vertical métier « Installation & Maintenance » et il est compatible à partir de la version Divalto infinity X.5.
Je suis en Divalto infinity X.4 (ou toute version inférieure) avec un kit en 5.4 : je désactive toutes les actions de ce module.
Downgrade par correction
Si une extraction est utile pour votre projet Divalto weavy et qu'elle ne fonctionne pas , il faudra apporter une correction manuelle à la requête.
A l'exécution, nous pouvons par exemple avoir ce genre d'erreurs avec des colonnes qui n'existent pas dans la version infinity.
Début du traitement de l'action Contrat
CultureInfo : fr-FR
GetDataReader() : ERROR [42S22] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Nom de colonne non valide : 'ELEMNNO'.
ERROR [42S22] [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Nom de colonne non valide : 'AFRINDICE'.
Erreur lors de la lecture des enregistrements.Contrat
Fin du traitement de l'action Contrat
Une bonne correction de la requête n'est pas de supprimer les colonnes en erreur dans l'extraction mais plutôt de laisser la colonne et de renvoyer la valeur NULL (ou chaîne vide).
Ceci évitera de modifier le mappage des colonnes dans le backend d'import.
Avant :
SELECT RTRIM(LTRIM(TIERSINDIVIDU))+'-'+CONVERT(VARCHAR,CONTRATNO) AS codecontract, /* (Varchar (255))*/ LIB80 AS label, /* (Varchar (255))*/ … CEACONTRAT.AFFAIRE AS deal_ID, /* (ForeignKey ())*/ CASE WHEN CEACONTRAT.ELEMNO <> 0 THEN RTRIM(LTRIM(CEACONTRAT.AFFAIRE))''+RTRIM(LTRIM(CEACONTRAT.AFRINDICE))''+CONVERT(VARCHAR,CEACONTRAT.ELEMNO) END AS dealelement_ID /* (ForeignKey ())*/ FROM CEACONTRAT …
Après :
SELECT RTRIM(LTRIM(TIERSINDIVIDU))+'-'+CONVERT(VARCHAR,CONTRATNO) AS codecontract, /* (Varchar (255))*/ LIB80 AS label, /* (Varchar (255))*/ … NULL AS deal_ID, /* (ForeignKey ())*/ NULL AS dealelement_ID /* (ForeignKey ())*/ FROM CEACONTRAT …
ANNEXE 1 – Détail compatibilité Event
ANNEXE 2 – Détail compatibilité ControlCenter
Annexe 2.1 - Compatibilité Divalto weavy 4.8 – Winter' 19 avec kit 4.1 vs Divalto infinity
Annexe 2.2 - Compatibilité Divalto weavy 5.1 – Summer' 19 avec kit 5.0 vs Divalto infinity
Annexe 2.3 - Compatibilité Divalto weavy 5.2 – Summer' 20 avec kit 5.2 vs Divalto infinity
Annexe 2.4 - Compatibilité Divalto weavy 5.3 – Winter' 20 avec kit 5.3 vs Divalto infinity
Annexe 2.5 - Compatibilité Divalto weavy 5.4 – Summer' 21 avec kit 5.4 vs Divalto infinity
Annexe 2.6 - Compatibilité Divalto weavy 5.5 – Winter' 21 avec kit 5.5 vs Divalto infinity
Le détail des annexes se trouve dans le fichier ci-dessous :