Ich habe eine benutzerdefinierte JSL-Funktion erstellt und in die globale Umgebung geladen. Anschließend habe ich in der Graph-Builder-Oberfläche die Funktion „Benutzerdefiniertes Skript“ verwendet, um diese Funktion in das Graph-Skript einzubinden. Danach habe ich das Graph-Builder-Skript in der Datentabelle (als Tabellenskript) gespeichert.
Wenn ich das Graph Builder-Skript manuell aus der Datentabelle ausführe (indem ich in der Tabelle auf die Skript-Schaltfläche klicke), funktioniert alles einwandfrei – die benutzerdefinierte Funktion wird erkannt und das Diagramm wird korrekt generiert.
Wenn ich jedoch dasselbe Tabellenskript programmatisch ausführe, Run Script() Funktion (z.B. dt << Run Script("Graph Builder")Das Skript schlägt fehl, weil es meine benutzerdefinierte Funktion nicht finden kann. Run Script() Das Skript wird in einem isolierten Kontext ausgeführt, der keinen Zugriff auf meine global definierte Funktion hat.
names default to here(1);
dt=current data table();
dt<
<RUN script=""></RUN>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="AggregateHare95_0-1781704169868.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/106823i91CFAE42C2887E25/AggregateHare95_0-1781704169868.png" role="button" title="AggregateHare95_0-1781704169868.png" alt="AggregateHare95_0-1781704169868.png" /></span></SPAN></SPAN></SPAN></P> <P class="ds-markdown-paragraph"><SPAN class="">Interessanterweise werden die integrierten JMP-Funktionen einwandfrei erkannt, meine benutzerdefinierte Funktion jedoch nicht.</SPAN></P> <P class="ds-markdown-paragraph"><SPAN class="">Ist dieses Verhalten schon einmal jemandem aufgefallen? Gibt es eine Möglichkeit, es zu beheben?<SPAN> </SPAN></SPAN><CODE>Run Script() Kann ich das Tabellenskript im selben globalen Namensraum ausführen, damit meine benutzerdefinierte Funktion sichtbar ist? Ich wäre für jegliche Lösungsansätze oder Erklärungen sehr dankbar.
Sie können Ihrem Funktionsaufruf innerhalb Ihres Tabellenskripts :: (oder global:) voranstellen, um aus dem globalen Namensraum darauf zuzugreifen. Alternativ können Sie für Ihre Funktion auch einen neuen benutzerdefinierten Funktionsnamensraum verwenden und das Tabellenskript entsprechend anpassen.
Danke, Mann! Du bist ein Genie – so eine einfache Lösung, und es hat perfekt funktioniert.