Aide à la migration X.11->X.12
A partir de la version : | Date | Auteur | Commentaire |
---|---|---|---|
X.12 | Novembre 2024 | BEL |
Utilisation de .ActivateCase
Une nouvelle instruction de RecordSql permet de traiter des jointures variables. Le principe est de remplacer l'écriture de plusieurs jointures par une seule, en permettant de mettre dans un ‘case’ à l’intérieur de la jointure les éléments différentiateurs qui ont donné plusieurs jointures à l’origine.
Exemple d'écriture en jointure classique
<LeftJoin NoActivate> ENT AS ENT_DV USING EntetePiece_PicodFullPiNo(1, MOUV.PrefDvNo, MOUV.DvNo) <LeftJoin NoActivate> ENT AS ENT_Cd USING EntetePiece_PicodFullPiNo(2, MOUV.PrefCdNo, MOUV.CdNo) <LeftJoin NoActivate> ENT AS ENT_Bl USING EntetePiece_PicodFullPiNo(3, MOUV.PrefBlNo, MOUV.BlNo) <LeftJoin NoActivate> ENT AS ENT_Fa USING EntetePiece_PicodFullPiNo(4, MOUV.PrefFaNo, MOUV.FaNo)
On voit ici 4 jointures qui ont pour différence les paramètres passés au dictionnaire de jointure.
Le code diva manipule dans ce cas
Exemple d'écriture pour utilisation du .ActivateCase
<Join NoActivate> GTFDD.dhsd ENT As ENT Case DEVIS USING EntetePiece_PicodFullPiNo(1, MOUV.PrefDvNo, MOUV.DvNo) Case COMMANDE USING EntetePiece_PicodFullPiNo(2, MOUV.PrefCdNo, MOUV.CdNo) Case BL USING EntetePiece_PicodFullPiNo(3, MOUV.PrefBlNo, MOUV.BlNo) Case FACTURE USING EntetePiece_PicodFullPiNo(4, MOUV.PrefFaNo, MOUV.FaNo)
Cela implique des adaptations dans le code diva appelant pour lequel, il faut remplacer l’instruction instance.join.activate('Ent') par instanceMouvement.join.activateCase('ENT','UseCase')