暗号化によりカスタムマップ作成スクリプトが失敗する<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />私はJMP 10でプログラムを書いています。そこでは不可欠なコンポーネントは3つのファイル* -XY.jmp、* -Name.jmp、および* -Data.jmpの自動生成です。カスタムマップ作成者アドイン。* -Data.jmpファイルの "Shape Name Use" Mapロールは、* - Name.jmpファイルの絶対ファイルパスの場所を必要としているように思われるので、そのデータテーブルを "$ TEMP \"ディレクトリに保存してから* -Data.jmpファイルのMap Roleプロパティでその場所を参照してください。何週間も問題なく動作しています。
プログラムの残りの部分は最初のベータ版配布の準備が整ったので、テストグループのメンバーに配布するためにコードを暗号化しました。ただし、プログラムは暗号化されているため、保存した* -Name.jmpファイルを見つけることができず、空白の白いグラフビルダーウィンドウが多数表示され、"Map shapes not found:<すべての図形のリスト>"というメッセージが表示されます「それぞれの下に。ファイルが以前とまったく同じ場所に正しく作成されていること、および空のグラフのいずれかのデータテーブルを開いて[名前]列のmapロールプロパティを確認すると、一覧が表示されることを確認しました。そこにファイルの正しい場所。しかし、何らかの理由で、スクリプトファイルを復号化せずに実際に地図の形状を表示することはできません。
これがなぜ起こるのか、どうやって修正できるのか、絶対パスを使わずに* -Data.jmpファイルを* -Name.jmpファイルを指す他の方法があるのであれば、私に聞かせてください。知っている。
再:暗号化はカスタムマップ作成スクリプトを失敗させる?さて、私は正しい方向へのステップを見つけました。主なスクリプトは2つあります。1つはGUIで、カスタムマップを作成するメインの「もの作り」機能を呼び出します。2つのメインファイルを含むアドインを作成し、他のファイルがプログラムのアドインフォルダに作成されるようにコードを変更しました。GUIスクリプトファイルはうまく暗号化されていても、通常は他のファイルに対して読み書きできます。ただし、メイン関数スクリプトのコードは、元の記事に記載されている欠けているマップ形状の問題がなければ暗号化できません。
私が気付いたのは、暗号化されたスクリプトだけで、* - Name.jmpファイルが "Name"列に "map role"プロパティを割り当てていたが、"Shape Name Definition"として指定していなかったことです。それは空白です。それはなぜ説明するでしょうマップロールの "Shape Name Use"で正しいファイルパスが表示されていて、ファイルが正しい場所に生成されていても、場所を変更しても効果がないようです。暗号化されていないスクリプトは、ロールを正しく指定しています。これを機能させる方法について何かアイデアはありますか?プログラムはたくさんの地図を作るので、事後ではなく順番に行う必要があります。カスタム関数を作成するか、単にコード行を取り出して別の暗号化されていないファイルに貼り付けて適切な場所に含めることもできますか。復号化によってコードが変更されている場合、これは一種の奇妙なことです。
注意点として、 $ ADDIN_HOME JMP 9で指定可能?アドインはJMP 8で導入されたと思いますが、JMP 9 JSLインタプリタがそれを理解できるようにしたいと思います。
再:暗号化はカスタムマップ作成スクリプトを失敗させる?それがうまくいくかどうかわからないが、あなたはあなたのアプリケーションにアドインを使ってみましたか?データセットをアドインディレクトリに入れて、アドインの「論理」名でそれらを参照することができます。 たとえば、アドインが(com.abc.def.myapp)によって定義されている場合は、次のように使用できます。
dt = 開いた ( "$ ADDIN_HOME(com.abc.def.myapp)\ AAA-XY.jmp" ) ;