Je viens de passer à JMP 13 et de nombreux scripts personnalisés ont cessé de fonctionner. J'ai attribué le problème à un changement dans la façon dont les listes gèrent le résultat d'une requête loc. Le code ci-dessous renvoyait "pear" dans JMP 12, mais renvoie désormais {"pear"}.
mylist = {"apple","pear"};
mychoice = "pear";
showchoice = mylist[loc(mylist, mychoice)];J'utilisais la syntaxe list[loc()] pour créer des chaînes SQL séparées par des virgules pour exécuter des procédures stockées.
Le nouveau comportement est logique s'il est inattendu. Malheureusement, Loc() ne prendra toujours pas un argument de liste comme valeur de recherche - cela aurait été un résultat bénéfique. Comment recommanderiez-vous pour obtenir le résultat souhaité :
- convertir le résultat Loc() en nombre ?
- remplacer showchoice par showchoice[1] dans mon code ?
- autre?
Je pourrais convertir ma liste de choix en une chaîne et supprimer le { & } & \!". Cela ne fonctionnera pas toujours car la liste de textes que je montre à l'utilisateur n'est pas toujours la même que la liste dans laquelle la clé correspondante est choisie pour la requête SQL.
C'est un peu comme un surajustement avec des modèles prédictifs. Votre code est adapté au fonctionnement réel de JMP et non à la manière dont il devrait fonctionner. Ce qui est bien, jusqu'à la prochaine version 
je pense que Loc() est censé prendre une matrice et renvoyer l'emplacement des vrais éléments (non nuls).
Contient (liste, élément) fonctionne avec des listes et renvoie l'emplacement de l'élément cible.