Aller directement à la fin des métadonnées
Aller au début des métadonnées

Vous regardez une version antérieure (v. /wiki/spaces/PAI/pages/11265507329/Jointures+dynamiques+vX.11) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 2) afficher la version suivante »

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')

  • Aucune étiquette