La définition de l'ID de lien dans JSL ne semble pas fonctionner - qu'est-ce qui ne va pas ?J'essaie de définir un ID de lien dans JSL, mais lors de sa définition dans JSL, l'ID de lien semble être défini dans la table comme il se doit, mais la référence de lien dans l'autre table qui est censée le référencer ne fonctionne pas.
Si je supprime l'ID du lien et le définit en cliquant avec le bouton droit sur l'ID du lien, tout fonctionne correctement.
J'utilise ceci :
dfps:name( "Country" ) << Set Property( "Link ID", 1 );
Je ne vois pas ce qui ne va pas avec ça. Est-ce qu'il me manque une opération d'actualisation pour que cela fonctionne ? Aucune suggestion?
Personnalisation de masseRe : La définition de l'ID de lien dans JSL ne semble pas fonctionner - qu'est-ce qui ne va pas ?Merci Mandy,
parfois, vous ne voulez pas que les choses soient sauvegardées.
Mais merci d'avoir souligné que ce problème est résolu dans JMP 17. Je suis au 16.2. Il n'est pas toujours facile de mettre à jour vers une version logicielle plus récente dans une grande entreprise, mais je sais maintenant que cela en vaudrait la peine.
Re : La définition de l'ID de lien dans JSL ne semble pas fonctionner - qu'est-ce qui ne va pas ?Merci d'avoir partagé ces commentaires et idées.Il a été encouragé à plusieurs reprises à enregistrer les tables avant de créer ces identifiants de lien et ces références de lien pour les tables, afin de garantir une sauvegarde correcte. Cependant, un défaut nous a été signalé à ce sujet et il a été corrigé au cours du cycle JMP 17.0. Ce comportement de script n'échoue donc plus.
Installez le nouveau JMP 17.0 et ce comportement devrait être encore amélioré.Merci.
Re : La définition de l'ID de lien dans JSL ne semble pas fonctionner - qu'est-ce qui ne va pas ?@Robb Je viens d'envoyer une note à l'équipe de développement ; Je n'ai pas testé votre théorie, mais j'espère que vous avez identifié une cause de l'imprévisibilité. C'est crédible car il y a quelque chose de différent dans le répertoire actuel lorsqu'un script n'est pas enregistré, et les tables dépendent peut-être de quelque chose lié à cela.
Re : La définition de l'ID de lien dans JSL ne semble pas fonctionner - qu'est-ce qui ne va pas ?Comme Craige le mentionne, je pense qu'il s'agit d'un problème de "sauvegarde". J'ai déjà eu ce problème et, malheureusement, je ne l'ai eu que sur PC. Sur Mac, je n'ai pas eu besoin d'effectuer la sauvegarde.
En m'assurant que ma table a été enregistrée en premier, le problème a été résolu.
Brady
Re : La définition de l'ID de lien dans JSL ne semble pas fonctionner - qu'est-ce qui ne va pas ?J'ai découvert quelque chose de nouveau :
Si le script JSL que j'exécute n'est pas enregistré et n'a jamais été enregistré auparavant (donc si le code source a été écrit ou copié dans une toute nouvelle fenêtre de script ouverte), la liaison de deux tables de données non enregistrées fonctionne à merveille.
S'il est enregistré ou s'il s'agit d'un script existant qui vient d'être modifié et non enregistré, il ne fonctionne pas.
Re : La définition de l'ID de lien dans JSL ne semble pas fonctionner - qu'est-ce qui ne va pas ?Salut tout le monde,
J'ai le même problème avec la liaison de deux tables via un script.
Il se comporte exactement comme @ThomasZatValcon décrit.
Après l'avoir fait manuellement en cliquant, j'ai ensuite copié les deux lignes de code du journal.
Ensuite, cela dépend de l'endroit où ils sont insérés. Si je les insère dans une nouvelle fenêtre de script, le script fonctionne. Si je les insère dans mon script en cours de développement (à partir duquel les deux tables ont été ouvertes à l'origine), cela ne fonctionne pas.
Y a-t-il de nouvelles idées sur cette question ?
Acclamations
Robert
D'ailleurs. Entre-temps, j'ai trouvé un fil de discussion connexe. La solution de contournement consiste à enregistrer d'abord les tables de données, mais cela n'est pas toujours pratique.
https://community.jmp.com/t5/Discussions/Virtual-Join-via-JSL-does-not-work/td-p/360675
Re : La définition de l'ID de lien dans JSL ne semble pas fonctionner - qu'est-ce qui ne va pas ?Essayez de sauvegarder les tableaux avant de les lier et voyez si vos résultats deviennent cohérents. Je ne sais pas comment les liens fonctionnent en interne, mais cela peut dépendre de la disponibilité d'un nom de fichier.
Re : La définition de l'ID de lien dans JSL ne semble pas fonctionner - qu'est-ce qui ne va pas ?Ce sont deux tables différentes. Celui de gauche est le tableau avec l'ID, le tableau de gauche est le tableau avec la référence.
Oui, j'ai essayé le référencement column(dt...) et dt:name()....
J'ai également essayé de mettre le code qui fonctionne (lorsqu'il est exécuté à partir d'une fenêtre de script distincte) dans un fichier séparé et de l'inclure. Cela n'a pas fonctionné non plus. J'ai essayé de le mettre dans un expr() et de l'évaluer. Cela n’a pas non plus aidé.
Mais les deux lignes de code fonctionnent si je crée une fenêtre de script distincte et que je les exécute à partir de là, ce qui est inattendu.
Re : La définition de l'ID de lien dans JSL ne semble pas fonctionner - qu'est-ce qui ne va pas ?Sont-ils censés être les mêmes ? Parce que les deux tableaux ont un nombre de colonnes différent.
Avez-vous vérifié que « dfps » a raison ? Ou avez-vous essayé d'utiliser `Column(dt, "Country")` ?Re : La définition de l'ID de lien dans JSL ne semble pas fonctionner - qu'est-ce qui ne va pas ?Je ne l'ai toujours pas compris, mais j'obtiens ici un comportement vraiment étrange :
Avoir le même code dans deux fenêtres :

Lorsque j'exécute le code dans la fenêtre de gauche, remarquez que l'icône avec les deux touches est grise (ça ne marche pas) :

Lorsque j'exécute les deux mêmes lignes dans la fenêtre de droite, cela fonctionne :

Le code dans la fenêtre de gauche correspond à l'endroit où le jsl a été créé. Tout le code s'exécute simplement dans l'espace de noms global. J'ai même essayé avec les noms par défaut ici (1) et j'ai obtenu le même comportement qui m'a surpris, car je m'attendais à ne pas pouvoir référencer les variables de la table à partir d'une autre fenêtre de script.
Re : La définition de l'ID de lien dans JSL ne semble pas fonctionner - qu'est-ce qui ne va pas ?Merci. J'ai modifié votre code pour mieux représenter ce qui se passe (les tables sont uniquement en mémoire) pour représenter plus précisément ce qui se passe et je m'attendais à ce qu'il échoue, mais cela fonctionne réellement. Je n'ai toujours pas compris ce qui fait échouer mon autre code, mais je mettrai à jour ce fil si je le découvre.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// creating a unique ID
dt2 = dt << subset( all rows, all columns );
dt2 << New Column( "_Row", <<SET each="" value=""></SET>
Re : La définition de l'ID de lien dans JSL ne semble pas fonctionner - qu'est-ce qui ne va pas ?Êtes-vous en train de dire que vous définissez la référence avant l'ID ?Je ne sais pas comment vous feriez cela, mais cela fonctionne bien pour moi.
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
// creating a unique ID
dt << New Column("_Row", << Set Each Value(Row()));
// subsetting just so I have something to link
dt_sub = dt << Subset(
Selected Rows( 0 ),
Rows( [1, 2, 3, 4, 5] ),
columns( :_Row )
);
Column(dt, "_Row") << Set Property( "Link ID", 1 );
Column(dt_sub, "_Row") << Set Property( "Link Reference",
Reference Table( "$SAMPLE_DATA\Big Class.jmp" )
);