What should you do when things go awry with your scripting?What should you do when things go awry with your scripting?What should you do when things go awry with your scripting?What should you do when things go awry with your scripting?スクリプトで問題が発生した場合はどうすればよいでしょうか?おかえり!
私たちに参加したばかりの場合は、JMP スクリプト言語の使用を開始することを目的としたシリーズの途中に参加したことになります。 以前のエントリとは異なり、シリーズおそらく、このエントリを理解するために他のエントリを読む必要はありませんが、一緒に遊んで他のエントリから宿題をしたい場合は、ここにリンクがあります
また、Christian Stopp にも多大な感謝を申し上げます ( @christianstopp ) シリーズのこのエントリーを提案していただきました。
シリーズのこの部分は、ほとんど独立したエントリです。 しかし、物事の流れとしては、これがおそらくコードをいじり始めた時点であり、1 つや 2 つのエラー メッセージを目にしたことがあるかもしれません。 したがって、本格的なコードの議論を始める前に、物事が横道に逸れた場合にどうすればよいかを説明しましょう。
JSL で最もよくある間違い
ジャスティン・チルトン( @ジャスティン・チルトン) とウェンディ・マーフリー ( @ウェンディ・マーフリー) は、最高のスクリプターの 1 つです。 JMP 。 2020 Americas JMP Discovery Summit で、彼らは「最も一般的な JSL の間違いとその回避方法」というタイトルの論文を (事実上) 発表しました。そのプレゼンテーションの PowerPoint ファイルが見つかります。ここコミュニティで。
新しいスクリプト作成者にとって、これは 14 ページの純金です。 このシリーズで行っていることの文脈では、その一部は少し範囲外ですが、スクリプト作成の次のステップでは非常に貴重です。 しっかりと作成し、PDF をダウンロードして忘れない場所に置き、コミュニティ ページでその論文に高く評価してください。
マイクの最もよくある JSL の間違い
ジャスティンとウェンディの仕事についてのちょっとした言及として、彼らのリストにいくつかのことを追加したいと思います。 これらは非常に基本的なものであり、通常、スクリプトが実行される前にクラッシュする原因になります (これが、Discovery Summit の論文には掲載されない理由です)。
のり
Glue 演算子の欠落は、おそらく最も一般的な JSL の間違いです。 前に述べたように、Glue 演算子は、JSL のすべての命令の最後にあるセミコロン (「;」) です。 赤い三角ボタンのメニューを使用してスクリプト ウィンドウにスクリプトを保存している場合 (「前の投稿)、JMP は必要な場所に接着剤を追加します。 コードを手動で作成している場合、コードをどこかに忘れていないことを確認するために使用できるトリックがあります。 スクリプト エディターで右クリックし、次を選択します。再フォーマットスクリプト。

このトリックは実際に、スクリプト内の基本的な構文関連のエラーを多数検出します。 スクリプト エディターを使用しているときのキーボード ショートカットもあります (ただし、「スクリプト エディター ボックス」では機能しません)。 私自身はキーボード ショートカットの方が好きです。 Windowsの場合は、 CTRL+M 。 MacOSの場合は、 CMD+M 。
さて、エラーが発生したときに再フォーマット スクリプトが通知する内容を解凍する方法を説明する前に、私をイライラさせるもう 1 つのエラーを説明しましょう。 どちらも同様のデバッグ ワークフローを使用しているため、これはすぐに理解できるでしょう。
括弧
括弧 (角括弧、中括弧など) が所定の位置にない (または欠落している) ことは、おそらく追跡する必要がある最も潜伏性のバグです。 そして私が言いたいのは、それは特別なんだかイライラする。 JMP には、一致しない括弧のペアを追跡するのに役立つツールが 1 つあります。 カーソルを括弧の外側に置くと、スクリプト エディターはその括弧 (および一致すると判断したもの) を青色で強調表示します。

スクリプト エディターが混乱している場合、または一致するものが見つからない場合は、括弧が赤で強調表示されます。

したがって、括弧の青色の一致が期待した場所にない場合、または括弧が赤色で強調表示されている場合は、おそらく問題が発生していると考えられます。
括弧が欠落しているというエラーが発生した場合、エラーがなくなるまで括弧を末尾に追加し続けたくなるかもしれません。 それは悪い考えだとだけ言って、この問題と接着剤の不足の問題に対するより良い戦略に移りましょう。 どちらも JMP のスクリプト エディターのセットアップを中心に展開します。
スクリプト エディターをセットアップ (および使用) して成功させる
JMP スクリプト エディタ (これについては、前の投稿) には、コードの操作とデバッグを容易にする多くの機能があります。 私は環境設定でこれらをデフォルトでオンにしているので、あなたにも同じようにすることをお勧めします。 JMP 設定ダイアログにアクセスするには、次の項目を選択します。環境設定JMP メニュー (MacOS) またはファイル メニュー (PC) から。

スクリーンショットでは、本当に便利だと思われるオプションを強調表示しました。 コードの折りたたみは、大規模なスクリプトの場合に便利です。 行番号とオートコンプリート オプションは、現在の議論にとってより重要です。
ログの使い方
スクリプト エディターのセットアップが完了したので、ログの使用方法を学びましょう。 まず、ログを開くには、次の場所に移動します。表示 > ログ(ウィンドウ > ログMac の場合)。 これにより、スクリプト エディターに似たウィンドウが開きます。 スクリプト エディタとは異なります。出力およびスクリプト エディターで実行されたコマンドの結果。 入力と出力を同じウィンドウ内に維持したい場合は、スクリプト エディターで右クリックし、[埋め込みログ] を選択して、スクリプト エディターで埋め込みログをオンにできます。埋め込みログを表示。

このスクリプトを使用してそれがどのように機能するかを見てみましょう。

スクリプトは非常にシンプルです。 2行目とコメント以外は以下を使用して作成されています。スクリプトを保存…スクリプト ウィンドウへ。 走ったら再フォーマットスクリプト(スクリプト ウィンドウを右クリックしても表示されます)、次のエラー メッセージが表示されます。

ログには次のような内容が記録されます。

灰色の領域では、入力された内容が表示されます。 その下には、予期せぬ事態に関するメッセージと、問題の可能性についての提案が表示されます。 この場合、JMP は接着剤 (;) が不足していると考えます。 また、予期しない入力がスクリプト内のどこにあったかを行番号とともに示します。 JSL は順番に (上から下に) 実行されるため、これはエラーが 5 行目より上のどこかにあることを意味します。 行番号がオンになっているので、行 2 に Glue 演算子がないことがわかります。これは、JMP が新しいコマンドが行 5 から始まることを予期しておらず、不意を突かれたことを意味します。 2行目の末尾にセミコロンを追加した後、実行します再フォーマットスクリプトエラーを返さないはずです。
同様に、括弧ペアの一部 (括弧など) が欠落している場合は、次のようになります (7 行目に注目してください)。

次のエラー メッセージが表示されます。

ログメッセージ付き:

JMP からのこれらのメッセージは少し明確ではありませんが、メッセージを解釈する方法を次に示します。 まず、エラー メッセージから、ディストリビューションに問題があることがわかります。 ログとエラー メッセージの間のどこかに括弧が抜けている可能性が高くなります。 ログには、11 行目で予期せぬことが起こったと記載されています (「列…」は役立つ場合もありますが、使用するには文字数をカウントする必要があります)。 括弧内を強調表示する色は、最初の括弧のペアが欠落していることを示しています (カーソルを左側に置いた後、5 行目の Distribution の横にある括弧の赤色に注目してください)。

強調表示を使用して作業を進め、欠落しているものをどこに移動すべきかを見つけます (この場合は 7 行目)。 ほとんどの場合、ログは、JMP が何が起こっていると考えているかを知るための非常に役立つ窓です。 ただし、JSL のエラーをチェックしたり、コードを段階的に処理したりする場合は、そのための別のツールがあります。
JSLデバッガの使用方法
JSL デバッガは少し変わったものです。 誤ってデバッガー ボタンを押した場合は、次のようになります。

おそらく、実行中に JMP のメイン インターフェイスがロックされることはすでにご存じでしょう。 スクリプトを書き始めたときは、実際にはあまり使用しませんでした。 開発チームとそれについて何度か話し合ったので、そのことに近づきつつあると言えます。 それについて、そしてそれが何ができるかについて少し話しましょう。
まず、JMP をロックするという点についてです。 少し混乱しますが、実際に行っていることは、デバッグを実行するための JMP の 2 番目のインスタンスを作成することです。 JMP のメイン インスタンスは、JSL デバッガがアクティブである限り応答しません。 JSL デバッガーを閉じると、制御が戻ります。
JSL デバッガを起動すると、JMP の別のインスタンスに加えて、JSL デバッガ ウィンドウが表示されます。 このウィンドウには、コード、さまざまな変数のリスト、ログ、その他の情報が含まれています。 次のようになります。

デバッグ中は、このウィンドウが JMP でのスクリプトの動作を目と耳として認識します。 2 つ目の画面がある場合は、そこに移動して、いつでも表示できるようにします (他のウィンドウの後ろに埋もれてしまう場合もあります)。
ここで、JSL デバッガでできることをすべて説明すると気が狂ってしまうかもしれませんが、ドキュメントには素晴らしい章 (例付き!) があります。ここ。
良いこともありますメラニー・ドレイクによるブログ投稿( @Melanie_J_Drake ) ここでは、JSL デバッガーで実行できるいくつかの優れた機能について説明します。 したがって、雑草について少し詳しく知りたい場合は、これらを見てください。 私たちの目的のために、次のボタンに注目してください。

最初の 2 つはスクリプトを実行します。 最初の方法では、スクリプトを最後まで実行するか、ブレークポイント (スクリプト全体を実行したくない場合に評価を停止するポイント) に到達するまで実行します。 JSL デバッガーの行番号の横を右クリックして、コードにブレークポイントを設定できます。 その行の横に赤い点が表示されます (ブレークポイントはコメントではなくコード行にある必要があります)。

最初のスクリプトを使用してこのスクリプトを実行すると、走るボタンを押すと、10 行目まで実行され、その後停止します。 2回目のプレス走るボタンをクリックするとスクリプトが終了します。 二番目走るボタンは、ブレークポイントに注意を払わずにスクリプト全体を実行します。 赤い停止ボタンデバッガーを終了します。これは、誤ってデバッガーを開いた場合、またはデバッグ セッションを終了した場合に便利です。 の繰り返すボタンをクリックすると、すべてがリセットされ、スクリプトが再度実行されます (たとえば、ブレークポイントの場所を変更してからコードを再実行する場合)。
宿題
今週の宿題はかなり軽いです。 スクリプト エディターをセットアップし、ログを見つけて、ドキュメントにあるいくつかのサンプル スクリプトを使用して JSL デバッガーを操作してみてください。 デバッガー ウィンドウの左下のタブにどの変数がポップアップ表示されるかを確認してください。 また、ログ右下のタブをクリックします (場所が分かります)。
来週は、これから取り上げる「コーディング」の最後の部分に入る予定です。このシリーズ。
デバッガーを起動しようとすると、JMP が即座にデスクトップにクラッシュします。 2021 年に Windows 10 に JMP 14 pro を新規インストールします。 これは企業システムなので、おそらくポートの問題があると思います...しかし、私のpycharm IDEにはこの問題がないので、JMPにイライラしています