1 Reply Latest reply: Oct 13, 2016 4:30 AM by Cyrielle Letteron RSS

    Subfield(Applymap(...)) ne fonctionne pas lorsque certaines lignes sont chargées

    Cyrielle Letteron

      Bonjour,

       

      Dans la cadre d'une application professionnelle nous devons appliquer un double mapping pour trouver un champ que nous appellerons M:

      • les valeurs de 8 colonnes implique la valeur de M
      • Chaque règle est associée à un niveau qui indique la priorité de celle-ci
      • Si la valeur dans une colonne est *All*, la règle fonctionne pour n'importe quelle valeur
      • Si la valeur dans une colonne est de la forme ?valeur? alors on applique un second mapping :
        • celui-ci liste les valeur possibles correspondant à ?valeur?

       

      Ayant bcp de lignes à mapper, mon algo pour trouver M est le suivant (en simplifié) :

      • Charger la table de mapping principale
      • Charger la table de mapping secondaire en MAPPING en contacténant toutes les valeurs possibles
      • Pour chaque valeur de niveau (classé en ordre croissant) :
        • Charger les données non mappées
        • Charger l'ensemble des règles de ce niveau en produit cartésien
        • Si une colonne contient une valeur de la forme ?valeur?
          • remplacer par l'ensemble des valeurs possibles grace à un Subfield(ApplyMap(?valeur?))
        • Si les 8 colonnes matchent entre les données et le mapping : garder la valeur de M

       

      Mon problème est le suivant :

      Lors du remplacement des mes ?valeur? par la liste des valeurs correspondantes (qui génère donc plusieurs lignes) il arrive qu'une seule valeur soit retournée ou bien aucune (null). Cependant en supprimant certaines lignes cela fonctionne.

      Pour un niveau donné j'ai donc un certain nombre de lignes qui font que d'autre règles n'appliquent pas correctement le second mapping. Si je retire ces lignes les mêmes règles appliquent correctement le second mapping.

       

      Avez vous déjà rencontré ce problème ? Avez vous une idée de la cause et de la solution ?

      Merci par avance