DESCRIPTIF DES CORRECTIONS
LDETLFB pour Windows Version 1.20 - Corrections 1 à 21


MISE A DISPOSITION DE LDETLFB Correction N° 1 du 30/01/18

Mise à disposition de LDETLFB 
MISE A DISPOSITION DE LDETLFB POUR LDCLLAJ Correction N° 2 du 30/01/18

Mise à disposition de LDETLFB pour LDCLLAJ
LICENCE COPYMINDER - REINITIALISATION DE LICENCE SANS POUVOIR SAISIR LES INFORMATIONS DE LICENCE Correction N° 3 du 30/01/18

La réinitialisation de la licence ne proposait pas de saisir de nouveau les informations de licence.
LDETLFB EN LIGNE DE COMMANDE - PLANTAGE INTEMPESTIF DE L'APPLICATION Correction N° 4 du 31/01/18

Lorsqu'on lance l'application en mode ligne de commande via une autre application, le dialogue avec cette application pouvait provoquer des plantages.
Désormais, on utilise un canal dédié à chaque lancement que l'on indique avec le paramètre /Z=nom où nom est le nom de la zone mémoire partagée entre les deux applications.

Technique : 
- Désormais, on ouvre une zone mémoire différente par lancement de LDETLFB
- On protège la lecture / écriture via un sémaphore (SEM_ + <Nom zone mémoire>)
- Si on n'arrive pas à écrire sur le sémaphore au bout de 10 centièmes de seconde, on saute le message.


RECUPERATION DE LA LIGNE DE COMMANDE D'EXECUTION D'UN MODELE OU D'UN SCENARIO Correction N° 5 du 31/01/18

Dans la liste des modèles ou des scénarios, un clic droit permet de copier le chemin d'exécution du modèle ou du scénario sélectionné dans le presse-papier.
ACTIVATION OU DESACTIVATION DES COLONNES VIA LA FONCTION DE RENOMMAGE Correction N° 6 du 19/02/18

Il est désormais possible de renvoyer une valeur booléenne dans la fonction de renommage pour indiquer si le champ doit être actif ou non.
Il suffit simplement d'utiliser la syntaxe de retour multiple de WinDev.

Par exemple :
NomChamp est une chaine = "Nouveau nom"
Renvoyer (NomChamp, Vrai)

Si l'on ne précise pas de booléen, le champ est forcément actif. On peut mettre le booléen avant ou après le nom du champ. Le nouveau nom lui reste obligatoire.


GESTION DES DONNEES RGPD DE LDPAYE ET LDNEGOCE Correction N° 7 du 27/06/18

LDETLFB autorise désormais l'accès aux données protégées par chiffrement (données personnelles) de LDPaye et LDNégoce dans le cadre du RGPD.


PROBLEME MEMO TEXTE AVEC BASE MARIADB Correction N° 8 du 22/10/18

Dans le cas d'un entrepôt géré sous MariaDB, on avait un souci avec les champs déclarés en HyperFile en tant que Mémo Texte. On tentait de créer ces champs dans MariaDB avec le type BLOB SUB-TYPE TEXT. Or, cette syntaxe, comprise par une base Firebird, n'est pas compatible MySQL. Désormais, ces champs sont créés avec le type LONGTEXT si l'entrepôt est sous MariaDB


CREATION TABLE DANS L'ENTREPOT AVEC NOM RUBRIQUE CIBLE = NOM RUBRIQUE SOURCE Correction N° 9 du 22/10/18

Quand on définit un modèle, lors de la sélection des rubriques à traiter, le nom cible de chaque rubrique est par défaut constitué à partir du libellé de la rubrique dans la table HyperFile d'origine.
On a désormais la possibilité d'utiliser le nom de la rubrique dans HyperFile en lieu et place du libellé. Pour cela, il faut tenir enfoncée la touche Control lors de la sélection de la rubrique (lors du clic dans la première colonne de la table des rubriques) ou lors du clic sur le bouton Tout sélectionner.
De plus, le nom de la rubrique n'était initialisé que la première fois où celle-ci était sélectionnée. Car si ensuite elle était dé-sélectionnée, le nom cible de la rubrique était quand même conservé en mémoire du modèle. Pour contourner cela, on peut désormais forcer la ré-initialisation du nom d'une ou de toutes les rubriques lors de la sélection en tenant la touche Majuscule enfoncée.
On peut ainsi facilement créer une table dans l'entrepôt ayant la même structure (mêmes noms de rubriques) que la table originelle dans HyperFile.

ATTENTE ACQUISITION LICENCE EN MODE EXECUTION AUTOMATIQUE Correction N° 10 du 02/05/19

En mode Exécution automatique d'un modèle ou d'un scénario, on attend désormais systématiquement 5 secondes avant d'exécuter le modèle ou scénario demandé, afin de s'assurer que la licence de LDETLFB a été acquise (l'acquisition de cette licence se faisant en mode silencieux dans un thread en parallèle). Sans cela, on avait parfois une erreur sur le premier modèle d'un scénario La licence ne permet pas d'exécuter ce modèle.
FORMAT DES RUBRIQUES EN HEURE PAS OK SI ENTREPOT MARIADB Correction N° 11 du 12/05/20

Quand on chargeait par LDETLFB dans un entrepôt sous MariaDB des rubriques de type Time ou DateTime, l'initialisation ne se faisait pas correctement.
Par exemple, pour les rubriques de type Time, la valeur passée était au format HHMMSSMMM qui n'est pas reconnu par MariaDB.
Les formats reconnus sont :
  - entre apostrophes : 'D HH:MM:SS', 'HH:MM:SS, 'D HH:MM', 'HH:MM', 'D HH', 'SS', 'HHMMSS'
  - en numérique : HHMMSS, MMSS, SS
C'est le format numérique HHMMSS que l'on utilise désormais.

De plus, les heures non renseignées dans la base HyperFile arrivaient dans MariaDB à la valeur 00:00:00. Désormais, on trouve la valeur Null, comme c'était déjà le cas pour les dates non renseignées.


UTILISATION DE FICHIERS HORS ANALYSE COTE CONNEXION SOURCE Correction N° 12 du 27/04/21

Au travers d'une connexion source HyperFile, Classic ou Client/serveur, on peut désormais accéder à tous les fichiers .FIC présents dans le répertoire des données de la connexion source (connexion HF Classic) ou dans la base de données (HF Client/Serveur), et pas seulement à ceux qui sont décrits dans l'analyse référencée par la connexion source.
Seule limitation : pour ces fichiers hors analyse, on ne dispose d'aucun libellé, ni pour les fichiers eux-mêmes, ni pour les rubriques qui les composent.

PROBLÈME CONNEXION SOURCE LDCOMPTA V11 Correction N° 13 du 20/07/21

LDETLFB ne détectait pas correctement les connexions sources LDCompta V11 pointant vers l'environnement, celles qui permettent d'avoir une liste des dossiers pouvant être ouverts au travers de la connexion. L'option ListeCompta=OUI n'était pas enregistrée dans le fichier Connexion.cnx lors de la création/modifcation d'une telle connexion.
Cela était dû au fait que le fichier CPTSOC dont on teste l'accessibilité pour savoir si on est sur une connexion de type « Environnement » est crypté à partir de la version 11.

AMELIORATION CREATION TABLE CIBLE EN HFCS POUR TAILLE SUPERIEURE A 2 GO Correction N° 14 du 19/04/22

Lors de la création d'une table cible en base HFCS (essentiellement pour les CLLAJ, car en dehors de ce cas d'utilisation, l'entrepôt de données est géré sous Firebird ou MariaDB), la table cible est désormais créée au travers d'une description de fichier dynamique Windev, et non plus par une commande SQL Create Table. Ainsi, le fichier est créé systématiquement avec l'attribut ..GrosFichier (alors que c'est impossible par un Create Table), ce qui permet de gérer une taille de fichier allant au-delà de 2 Go.

De plus, la taille maximale des rubriques de type Constante ou Champ compilé dynamiquement peut désormais être définie globalement via un paramètre TailleRubDyn à placer dans le fichier d'initialisation, section Données. En effet, pour ces rubriques, contrairement aux autres où la taille est reprise de la rubrique d'origine dans la requête source HFCS, LDETLFB ne sait pas déterminer la longueur optimale. Et celle-ci ne peut pas être définie rubrique par rubrique. Auparavant, elle était donc figée à 200 caractères. Cela ne pose pas de problème pour des tables Firebird ou MariaDB, les rubriques Texte étant créées en type VarChar. Mais pour une table HFCS, on ne dispose pas du type VarChar. On crée donc les rubriques texte avec une longueur fixe, et cette place est occupée systématiquement sur disque, même si la longueur effective de la rubrique est toujours plus faible. On peut donc désormais opter pour une longueur plus faible, 100 caractères par exemple, ce qui suffit amplement la plupart du temps, et peut diminuer significativement la place occupée sur disque.

Les modifications décrites plus haut ont porté principalement sur la méthode CreateTable de la classe MoteurHFSQL.
Mais au passage, de nombreuses autres modifications et simplifications ont été faites dans la classe TableCible :
 - on a retiré le préfixe fbt des noms de méthodes et champs de cette classe. Il était là pour des raisons historiques,
   mais prêtait à confusion aujourd'hui, la table cible n'étant pas toujours de type Firebird.
 - on a enlevé la gestion des clés primaires et des clés uniques, qui n'était nulle part utilisée.
   Seule demeure la gestion des clés secondaires, qui donnent lieu à des commandes Create Index.
Du coup, on a enlevé toute mention de « clé unique » sur la clé principale (sur l'écran de définition de celle-ci, et message de confirmation de cette clé principale) : depuis la version 2 des modèles, la clé principale est toujours gérée comme une clé secondaire, avec donc doublons autorisés.


GESTION DU NULL DANS LES TABLES HF (SUITE CORRECTION 14) Correction N° 15 du 19/04/22

Suite à la correction 14, les valeurs nulles n'étaient plus supportées dans les fichiers cibles gérés en base HF, fichiers qui sont désormais créés au travers d'une description de fichier. Pour que ces valeurs nulles soient autorisées, il faut ajouter la propriété NullSupporté dans la description de fichier et la propriété NullAutorisé dans les descriptions de rubriques.


AMELIORATION SUIVI TRAITEMENT EN COURS Correction N° 16 du 20/04/22

Durant l'exécution d'un modèle, le suivi du traitement en cours a été amélioré :
 - Dès le lancement du traitement, la fenêtre de suivi du traitement s'affiche, avec un libellé indiquant le modèle
   d'exécution.
 - Durant les premières phases du traitement, et notamment l'exécution de la requête source, qui peut prendre pas mal de temps,
   on voit défiler des messages qui décrivent l'étape en cours.
 - Durant la phase de chargement de la table cible proprement dite, si la requête source comporte plus de 10000 enregs,
   le nombre d'enregistrements déjà traités s'affiche tous les 100 enregistrements, avec le nombre d'enregistrements total à traiter.
 - Sur la jauge elle-même, le pourcentage d'avancement est affiché.
Par ailleurs, la gestion de l'interruption du traitement (par un clic sur le bouton Annuler) a été améliorée : le clic est désormais
détecté quasi instantanément, alors qu'auparavant il fallait attendre plusieurs secondes sans qu'on sache bien si la demande
d'annulation avait été prise en compte.

MODIFICATION FORMAT ENREGISTREMENT MODELES Correction N° 17 du 20/04/22

Des modifications ont été apportées dans la façon d'enregistrer les modèles, et ce afin de mieux gérer le cas où un code source de fonction inclue un point-virgule ou un retour ligne. Auparavant, cela n'était bien géré que dans le cas d'un champ de type Dynamique. Mais pas pour le code source des champs de type Source et Liaison.
Désormais, tout point-virgule contenu dans le code source d'une fonction associé à un champ, quel que soit le type de ce champ (Source, Liaison, Dynamique), est encodé sous la forme <PV>. Il en est de même si la valeur d'une constante contient un point-virgule.
De plus, le code source des fonctions associées à un champ de type Source est lui-aussi encodé entre accolades, comme cela était déjà le cas des codes sources des champs de type Liaison et Dynamique.
A savoir : malgré ces modifications, il n'y a pas de phase de migration des modèles. La nouvelle version 1.20 N17 de LDETLFB sait lire et interpréter correctement les modèles enregistrés avant cette correction 17. Mais ce ne sera pas le cas en sens inverse : un modèle enregistré au niveau 17 ne peut être relu et interprété correctement avec un niveau inférieur à 17.

PROBLEME REQUETE EPURATION FICHIER CIBLE SI BASE HF Correction N° 18 du 03/05/22

Lorsque la connexion cible était en base HF Classique (pour les CLLAJ essentiellement), il était impossible d'avoir une requête d'épuration sélective : on rencontrait une erreur lors de la validation de l'écran où l'on saisit cette requête d'épuration.
ACCES AUX FICHIERS CHIFFRES DE LDPLANNING ET LDCOMPTA V11 Correction N° 19 du 20/05/22

Des modifications ont été faites pour gérer l'accès aux fichiers chiffrés de LDPlanning et LDCompta V11. En effet, cela n'avait encore pas été fait. Seuls les fichiers chiffrés de LDPaye et LDNégoce étaient gérés.
Par ailleurs, dans le cas d'une connexion HF Classic ou Client/Serveur, on peut aussi désormais accéder aux fichiers présents dans le répertoire ou la base HFCS même s'ils ne sont pas décrits dans l'analyse. Ces fichiers n'apparaissent pas dans la la liste des fichiers lors de la création d'un modèle, mais si on les référence dans une requête SQL, cela fonctionne bien.
C'est le cas par exemple des fichiers HRS_PLANNING et HRS_TACHE de LDPlanning : ils sont présents dans la base HF, mais pas dans l'analyse. Il s'agit en fait de « copies » des fichiers PLANNING et TACHE de l'analyse, utilisés pour afficher la vue « Présence » en liaison avec LDTemps. 

CONNEXION SÉCURISÉE À UNE BASE MARIADB, OPTIONS COMPLÉMENTAIRES Correction N° 20 du 25/10/22

Il s’agit essentiellement de permettre la connexion sécurisée par TLS à une base MariaDB pour répondre à plusieurs problématiques :

Lorsque l’on décrit la connexion MariaDB de destination, pour l’accès à l'entrepôt de données donc, il est possible de saisir des options complémentaires dans le champ Options. Il s’agit des options et de la syntaxe proposées par la bibliothèque cliente MariaDB, additionnées de quelques options proposées par le connecteur natif WinDev.

Exemple 1 : on demande de chiffrer les échanges avec un protocole particulier
SSL CIPHER = DHE-RSA-AES256-SHA:AES128-SHA;
TLS VERSION = TLSv1.2;
SSL MODE = require;

Exemple 2 : on demande de vérifier le certificat du serveur par rapport à une autorité fournie
SSL CA = C:\Ldsystem\Decisionnel\Certificats\ca-cert.pem;
SSL CAPATH = C:\Ldsystem\Decisionnel\Certificats\;
TLS VERSION = TLSv1.2;
SSL MODE = require;

Exemple 3 : on fournit un certificat et une clé client pour une authentification forte dans les deux sens
SSL KEY = C:\Ldsystem\Decisionnel\Certificats\ldetlfb.key;
SSL CERT = C:\Ldsystem\Decisionnel\Certificats\ldetlfb.pem;
SSL CA = C:\Ldsystem\Decisionnel\Certificats\ca-cert.pem;
SSL CAPATH = C:\Ldsystem\Decisionnel\Certificats\;
TLS VERSION = TLSv1.2;
SSL MODE = require;

Exemple 4 : on veut spécifier des options particulières
Server Port = 13306;
WD Cache Size = 10000;
WD Unicode Support = 0;
Client Flag = CLIENT_COMPRESS;


CONNEXION SÉCURISÉE À UNE BASE MARIADB, BIBLIOTHEQUE LIBMARIADB CONNECTOR/C Correction N° 21 du 07/11/22

Pour pouvoir répondre à certaines exigences, notamment en termes de protocoles de chiffrement, il est nécessaire d’utiliser une bibliothèque cliente MariaDB plus moderne : version 3.1.15 compilée en 32 bits issue de MariaDB 10.3.32 (novembre 2021), liée dynamiquement à SChannel.

Mise à jour des analyses livrées (LDClajV41, LDCPTV11, LDNegV61, LdpayV10).