こんにちはチーム!
私たちの内部コミュニティで共有したいと思っている私達の何人かの私達のハイテク顧客とのPythonおよびライセンス遵守(バッチ)問題に関する質問に遭遇しています。このスレッドが、私の質問に対する答えだけでなく、皆さんが遭遇したことのある追加のユースケース(Pythonとバッチ)を含むディスカッションに変わることを望みます。
注:私はPythonの専門家ではありません。
1)Pythonを使ってJMPを呼び出す(JMPを使ってPythonを呼び出すのに対して)。私達の顧客はこれをしたいと思います。私はいくつかの(JMP以外の)資料がオンラインで実現可能性を実証しているのを見ました。
A)PythonがJMPを呼び出す、受け入れ可能なユースケースはありますか?私にとってはバッチのような状況です。
B)これがバッチの状況である場合、誰かが私達が私達の顧客に提供できる缶詰の技術的対応を持っていますか?私は聞きました @Jeff_Perkinson 「JMPはこのユースケースに合わせて設計またはテストされていないため、この方法でJMPを使用して行われた作業を保証することはできません」と言います。
2)JMPはPandas Pythonライブラリをサポートしていますか?からの投稿を見ました @IkjuShin これについては2018年から、追加の資料がここで作成されたのか、他のSEがこの問題に遭遇したのか疑問に思います。
私はこれを見つけました例 JMPスクリプティングガイドの中で、これはJMP / Pythonインテグレータのための実行可能なユースケースであると信じています。
3)顧客は、継続実行のためのWhileループを含むJSLスクリプトを作成したいと考えています。スクリプトは、JMPの実行専用のコンピューターで実行されます。ユーザーはスクリプトの実行を開始します(そして理論的には終了します)。ユースケースについてはこれ以上詳しく説明しませんが、会話のコンテキストを考慮して、このスクリプトがデータベースに対して新しいデータをpingし、レポートを更新することを想像してください。
A)これは当社のデスクトップライセンス契約に準拠していますか?
B)これはテストされていますか?そして/または信頼できる方法でこれを実行することへの技術的なハードルは何ですか?
ロングポスト...調整してあなたの貢献のためにありがとう!
こんにちはジェフ、
A.
2009年以降、このPDFは非常に参考になると思います。 https://www.lexjansen.com/nesug/nesug09/ap/AP09.pdf 私も付けました。
いくつかのスクリプト言語とその呼び出しを参照しています。
COMPARE & CONTRAST
COM Syntax across scripting tools is more alike than different across: Tcl, Perl , Python, R, & VBScript. For example: Start up JMP, Open a Document, Launch a Platform, Run some JSL.
TCL:
package require tcom
set JMP [::tcom::ref createobject "JMP.Application"];
set JMPdoc [$JMP OpenDocument {C:\Big Class.JMP}]
set oneway [$JMPdoc CreateOneway]
$JMP RunCommand "Distribution(
Perl:
use OLE;
use Win32::OLE;
$jmp = Win32::OLE->new('JMP.Application')
my $doc = $jmp->OpenDocument("C:\\Big class.jmp");
$doc -> CreateOneway
$jmp->RunCommand("Distribution(…
Python:
from win32com.client import Dispatch
jmp = Dispatch("JMP.Application")
doc = jmp.OpenDocument("C:/Big class.jmp")
doc.CreateOneway
jmp.RunCommand("Distribution(…
R:
library(rcom)
jmp <- comCreateObject("JMP.Application")
bigclass <- comInvoke(jmp, "OpenDocument", "C:\\Big Class.jmp")
oneway <- comInvoke(bigclass, "CreateOneway")
comInvoke(jmp, "RunCommand",…
VBscript:
set jmp = Wscript.CreateObject("JMP.Application")
set jmpdoc = jmp.OpenDocument("C:/Big class.jmp")
Set Oneway = JMPDoc.CreateOneway
jmp.RunCommand("Distribution(…
B.
これも関連しているようです(Pythonのページから)。 https://stackoverflow.com/questions/17931476/how-to-call-a-jsl-script-from-python-script
Mac上でそれは言及しました:
import os
os.system('open /Applications/JMP\ Pro\ 13.app/Contents/MacOS/JMP /path/filename.jsl')
path / executableとpath / nameの間にスペースがあります。
あなたのJSLでは、最初の行が//だけであることを確認してください。これにより、スクリプトを開くと自動的に実行されます。また、quit()を使ってください。最後の行として、開かれているJMPのインスタンスは閉じられます。
また注意してください。コマンドラインに「jmp.exe」と入力するとjmpが起動するように、システム環境でjmp.exeが使用可能であることを確認してください。それからあなたの* .jslを準備してください。このコマンド "jmp.exe * .jsl"を実行するにはpythonのproceesを使用してください。そうすればjmpが開き* .jslスクリプトが実行され、jmpから生成したものはすべてpythonにインポートできます。
そして、Pythonから他のアプリケーションを呼び出すことについて話している別のPythonスレッドがあります。 https://stackoverflow.com/questions/247724/how-can-i-launch-an-instance-of-an-application-using-python
このコミュニティスレッドも興味深いかもしれません。 https://community.jmp.com/t5/Discussions/jsl-Script-call-from-Python/mp/206295#M41799
C.
最後に自動化リファレンス (http://www.jmp.com/support/downloads/pdf/jmp1001/automation_reference.pdf) OLEオートメーションの使い方を示します。または http://www.jmp.com/support/downloads/pdf/vb_automation_reference.pdf
私はまだ試したことがないし、私の顧客ベースの誰かを見たこともない。これまでに見たことは、JMPでモデルを構築し、最後のモデルをpythonスクリプトに変換し、それをpythonベースのWebインターフェースで使用するというユースケースです。ユースケースは、新しいプロジェクトのための自動車環境でのリソース計画でした。このモデルは、プロジェクトリーダーの推奨よりもはるかに優れていました。しかし他の人がビルドモデルに頼ることができれば、これはまたJMP Proを持っている必要があるユーザーの量を減らすかもしれません。しかし、分析グループを持つ顧客がいる場合、これは常に可能です。
ありがとう、マーティン。ここには多くの優れたコンテンツがあり、そのうちのいくつかは私の頭上にあります!何度か読み直さなければなりません。