This Question and Answer Set includes the following topics:
  • その他
  • コマンドと構文
  • セッションとライセンス
  • トラブルシューティング
  • 構成

  • トラブルシューティング
    Question:
    なぜ、以下のコードはコンパイルしないのですか?
    <script language="Cache" runat="server">
        write "<script language=javascript>", !
        write "int x = 10; alert(x);", !
        write "</script>"
    </script>
    
    Answer:
    スクリプト・タグで runat="server" を使用して CSP ページをコンパイルするとき、コンパイラは Caché ObjectScript を実行し、それを適切な HTML に変換してページに表示します。しかし <script language="cache" runat="server"> タグを読み込んだ後は、次の </script> タグを検索します。このタグは Caché ObjectScript コードの最後を意味します。この方法でコードを記述する場合、簡単な解決法があります。</script> タグを、以下のように 2 つの Write 文に分割します。
    <script language="Cache" runat="server">
        write "<script language=javascript>", !
        write "int x = 10; alert(x);", !
        write "</script",">", !
    </script>
    
    Question:
    &js<alert(“Error!”);> を使用して警告ボックスをユーザに送信するとき、alert(“Error!”) の行がページに表示されます。なぜでしょうか?
    Answer:
    この行を runat=“server” コード・セクション、または runat=“server” ブロックから呼び出されるメソッド内に記述したことが原因である可能性があります。ページをロードするときに JavaScript を実行するには、前の回答で示されたように、<script language=“javascript”> タグを追加します。
    &js<alert(“Error!”)> コードは、ロードされたページから JavaScript イベントを経由して、サーバ側メソッド内部で動作します。
    Question:
    警告ボックスに Caché ObjectScript 変数を含むには、どのようにすればよいでしょうか?
    Answer:
    #()# 構文を使用します。ご使用の Caché ObjectScript メソッド内部から、以下を実行します。
     s error = "Bad password"
     &js<alert(#(..QuoteJS(error))#);>
    
    %CSP.Page クラスから提供されている QuoteJS は、適切に引用符が付いた JavaScript 文字列を返します。また、返された結果に含まれるすべての引用符を適切にエスケープします。
    Question:
    CSP ページをロードするとき、以下のエラーが表示されます。
    ERROR #5924: An error occurred and the specified error page could not be displayed - please inform the Web master.
    これはどういう意味で、どうすればいいのですか?
    Answer:
    このエラーは、異なる多くの問題から発生しています。エラー・ログから、実際のエラーに関する具体的な情報を入手してください。Caché ターミナル で、以下のコマンドを入力します。
     d ^%ER
    結果のエラー・ログを表示するには、[Caché コントロール・パネル][ログ] を開き、[アプリケーション・エラー] を選択し、適切なネームスペースを選択します。エラーは、日付ごとにフォルダ内に表示されています。
    カスタムのエラー・ページを設定している場合、このエラー・メッセージは、ご使用のカスタム・エラー・ページには呼び出しているページのエラーを処理する機能がないことを意味します。また、カスタム・エラー・ページ自体が、エラーを生成している可能性もあります。このエラーを追跡するには、カスタム・エラー・ページを一時的に停止して、CSP ページをロードしてみてください。
    CSP ページがローカルで正常に表示されても、他のコンピュータから呼び出されると正常に表示 できない 場合は、ユーザが Caché のシングル・ユーザ・バージョンを使用しているか、Caché のライセンスを持っていないかのどちらかが原因と考えられます。リモート・マシンから CSP ページを呼び出す場合は、Caché の完全なバージョンと有効なライセンスを持ったキーの両方が必要です。インターネットでダウンロードしたバージョンに、Caché キーを追加しても、すべての機能を使用することはできません。完全なバージョンを入手する必要があります。
    Question:
    以下のエラーが発生しました。
    HTTP Request failed.Unable to process hyperevent.
    これはどういう意味ですか?
    Answer:
    基本的にハイパーイベント・エラーは、ブラウザが CSP ブローカー・アプレットと通信する必要があるのに、通信できない場合に発生します。これは、コード、または構成の問題に関係します。原因がコードにあるかを迅速に判断するために、http://localhost:1972/csp/samples/zipcode.csp をロードしてみましょう。Caché がリモートでインストールされている場合、localhost に IP アドレス、またはマシン名を入れます。#server をクリックし、Zip ボックスに 02142 などの郵便番号を入力し、Tab を押します。ハイパーイベント・エラーが発生しない場合は、構成は適切に行われており、問題はコードにあると考えられます。
    問題がコードにあると考えられる場合、以下の 2 点が含まれていないか探すことが重要です。ページがロードされているときに、絶対に #server 呼び出しを使用しないでください。つまり、<body> タグの OnLoad イベントで直接的に、または OnLoad で呼び出される JavaScript メソッドから、#server を呼び出さないでください。また、runat="server" コード・ブロックの &js<> 行内部からの呼び出しも実行しないでください。ページをロードするときにメソッドを呼び出す必要がある場合は、runat="server" ブロック内部で Caché ObjectScript 構文を使用します。
    <script language="cache" runat="server">
        // if method is located in the page or in a class the page inherits from
        d ..mymethod()
        // if class cannot be called using dot syntax
        d ##class(User.MyClass).mymethod()
    </script>
    
    Question:
    ルーチンでの問題を指摘するエラー・メッセージを受け取りましたが、INT ルーチンを見つけることができません。どこにあるのでしょうか?
    Answer:
    既定では、CSP ページのコンパイル時にソース・コードは保存しません。CSP ページは、ユーザがそのページをブラウザにロードしようとしたとき、自動的にコンパイルされます。Caché でこのソース・コードを保存するようにするには、以下の 2 つのうち 1 つを実行します。
    CSP ページを一度コンパイルし、そのソース・コードを保存するように Caché に要求すると、以下の方法でそのルーチンを見つけることができます。
    Caché スタジオ を開き、適切なネームスペースにいることを確認します。[ファイル] メニューで、[開く] をクリックします。[開く] ダイアログ・ボックスの [ファイルの種類] の一覧から、[中間ルーチン (*.int)] を選択します。ファイルには、csp.<csp_page_name>.x.INT という名前が付けられています。x は、一連のこのルーチンの番号を示しています。容量の大きい CSP ページは、複数の INT ルーチンに分割されます。エラーを含むファイル数は、最初に受け取ったエラー・メッセージに表示されています。
    LoadPage コマンドに追加することのできるフラグのリストついては、フラグとは? の質問の回答を参照してください。
    Question:
    CSP ページを実行すると、ブラウザに #(variable)# のようなものが表示されます。なぜ、変数のデータと置換されないのでしょうか?
    Answer:
    これは、ご使用の CSP ページが Caché CSP コンパイラによって適切に解析されていないことを示しています。http://localhost/csp/<namespace>/page.csp にアクセスして、Web サーバを通してページを実行していることを確認してください。
    Dreamweaverプレビュー 機能、または Windows エクスプローラ でダブル・クリックしてそのページを表示しようとしている場合、CSP ページは CSP コンパイラによって解析されません。CSP はこの方法で見ることはできません。IIS や Apache などの Web サーバをご使用でない場合は、いずれか 1 つを導入する必要があります。Web サーバの設定に問題がある場合は、インターシステムズのサポート窓口 にお問い合わせください。
    Question:
    CSP ページをロードしようとすると、Invalid Character というエラー・メッセージが表示されます。なぜでしょうか?
    Answer:
    Web サーバを使用してページをロードしていない場合、ブラウザは CSP 構文を表す方法を知らないので、このエラーが発生しても不思議ではありません。ユーザの URL が C:/Cachesys/csp/user/mypage.csp などのような場合、Web サーバを使用してページをロードしていないことになります。
    URL は http://localhost:1972/csp/user/mypage.csp のようなものになるはずです。
    これらのメッセージは、#server()# 呼び出しが、適切に Caché ObjectScript メソッド呼び出しに変換されなかったために生じた可能性もあります。ご使用のブラウザで右クリックして、ページのソースを表示し、ソースに #server が含まれていれば、ユーザの構文に誤りがあります。#server(..methodname())# のように、適切な構文になるようにしてください。
    文字列をメソッドに渡している場合、文字列は二重引用符 (“”) に囲まれる必要があります。一旦 CSP ページが HTML にコンパイルされると、すべての #server()# 呼び出しは csprunservermethod() への呼び出しに変換されます。
    Question:
    なぜ私の CSP タグは解析されないのでしょうか?
    Answer:
    Web サーバが、CSP ページを解析用の CSP ゲートウェイに適切に渡していないためです。
    Question:
    CSP はエラーを記録しますか?ログを増大するにはどうすればよいでしょうか?また、ログはどこにあるのでしょうか?
    Answer:
    セッションとライセンス
    Question:
    CSP セッションを終了するには、どのようにすればいいでしょうか?
    Answer:
    CSP セッションは、Caché ObjectScript メソッドで %session.EndSession プロパティを 1 に設定すると終了できます。CSP アプリケーションがタイムアウトした場合、ご使用の CSP クラスが自動的にセッションを終了します。
    Question:
    CSP セッションをクローズしましたが、Caché は私がライセンスを使用している状態であることを報告してきます。なぜでしょうか?
    Answer:
    ユーザが単にブラウザを閉じただけなら、CSP セッションはユーザが指定したタイムアウトまで有効です。したがって、ライセンスはセッションが無効になるまで解放されません。タイムアウトに関する詳細は、次の "タイムアウトの変更" に対する回答を参照してください。
    また、ユーザが時間内に戻ってくることを想定して、同じライセンスを再度取得することができるように、CSP は猶予期間を設定しています。%session.EndSession が 1 に設定された後の猶予時間は 5 分です。しかし各ライセンスは、CSP アプリケーションに対して最低 10 分が割り当てられる必要があります。例えばユーザがログアウトをクリックした時など、%session.EndSession は、タイムアウトした後自動的に、またはアプリケーションによって手動で 1 に設定されます。
    例 :
    Question:
    アプリケーションのタイムアウトを変更するには、どのようにすればいいのでしょうか?
    Answer:
    アプリケーションの既定のタイムアウトは、各ネームスペースで 900 秒 (15 分) と設定されています。
    Question:
    ユーザ CSP セッションがタイムアウトになるとき、クリーンアップ、またはロギングを実行したいと思っています。どのようにすればいいのでしょうか?
    Answer:
    1. OnTimeout クラス・メソッドを持つイベント・クラスを作成します。
    2. 以下のうちの 1 つの方法で、アプリケーションに対するイベント・クラスとして、これを指定します。
    3. OnTimeout メソッドで、保存したいすべての情報を記録します。
      Note:
      ここで、ユーザは情報をブラウザに返送することはできません (警告が発生するか、戻されます)。
    Question:
    ページ間で情報を渡すには、どのようにすればよいでしょうか?
    Answer:
    情報を渡すには、多くの方法があります。
    Question:
    セッションがタイムアウトになったとき、他の Web ページをユーザに送信したいのですが、どのようにすればいいのでしょうか?
    Answer:
    一番簡単な方法は、タイムアウト後に発生するように metatag で転送の設定を行うことです。
    <html>
    <head>
    <META HTTP-EQUIV="REFRESH" CONTENT="910;
     URL=youhavetimedout.csp">
    </head>
    <body>
    <script language="cache" runat="server">
            %session.AppTimeout = 900
    </script>
    </body>
    </html>
    
    
    Question:
    ページを 60 秒ごとに自動的に更新したいのですが、どのようにすればいいのでしょうか?
    Answer:
    CSP ページの最初で、以下の metatag を使用します。
    META HTTP-EQUIV="REFRESH" CONTENT="60; URL=mypage.csp">
    コマンドと構文
    Question:
    Caché 変数や式を CSP ページで表示するには、どうすればいいのでしょうか?
    Answer:
    “#(var)#”“#(expression)#” を使用して、変数や式を実行時にページに組み込むことができます。以下はその例です。
    #(name)# : name は設定されています。
    #($G(%request.Get(“Username”)))# : URL から Username を取得します。
    #(2+7+3)# :Web ページ上で 12 を表示します。
    Question:
    “#(var)#”“##(var)##” の違いは何でしょうか?
    Answer:
    “#()#” は、括弧内の式をその実行時値と置換します。“##()##” はページがコンパイルされるときに、変数や式をその値と置換します。
    この違いを示すため、以下のコード・サンプルを CSP ページに配置してみましょう。
    Runtime: #($P($H,",",2))#
    Compile Time: ##($P($H,",",2))##
    
    ブラウザでページを開き、何度かこのページを更新します。ページが更新されるたびに、Runtime 値が変更することに注意してください。Compile Time 値はページがコンパイルされる時間を保持します。ページがリコンパイルされたときにのみ、変更されます。
    Question:
    #server(..method())##call(..method())# の違いは何でしょうか?
    Answer:
    #server 指示語と #call 指示語は、JavaScript イベント、またはコードを使用して呼び出される必要があります。
    #server 指示語は、CSP Event Broker によってサーバでメソッドを呼び出します。これは、この Java アプレットに依存するので、ブラウザ依存とも言えるでしょう。メソッドから CSP ページを終了することで、情報は CSP ページに返送されます。これは、同期メソッド呼び出しを提供します。#server メソッドが返されるまで、ユーザはページで何もできません。
    #call 指示語の文は、CSP ページ内の隠し iFrame を使用して実行されます。これは Java を基にしたものではないので、ブラウザ依存です。#call メカニズムは非同期メソッド呼び出しを提供し、メソッドが値を終了、または値を返すことを許可しません。バックグラウンドで #call 経由で呼び出されたメソッドが動作している間でも、ユーザは作業を継続することができ、CSP ページでフィールドの変更を行うこともできます。
    #call#server を両方使用する例は、http://localhost:1972/csp/samples/zipcode.csp を参照してください。詳細は、"Caché Server Pages (CSP) の使用法" の "CSP におけるタグを使用した開発" の章の "サーバ側のメソッド" を参照してください。
    Question:
    “#include”“CSP:Include” の違いは何でしょうか?
    Answer:
    #include 指示語を使用して、JavaScript、html や単純なテキストなどのテキストを CSP ページに含むことができます。
    <csp:include> タグには、ただしくフォーマットされた CSP ページが含まれます。このタグは ServerSideRedirect を使用してこのページを挿入し、元のページの処理に戻ります。
    Question:
    CSP ページをコンパイルするには、どうすればいいのでしょうか?
    Answer:
    既定で、CSP ページが変更された後 (タイムスタンプ比較から決定される)、ブラウザにロードされるときに自動的にコンパイルされるようになっています。また、Caché スタジオやCaché ターミナルを使用して、CSP ページを手動でコンパイルすることもできます。
    スタジオを使用して CSP ページをコンパイルする方法は、以下の通りです。
    1. [ツール] メニューで [オプション] を選択し、[クラス] タブをクリックします。
    2. [生成されたソース・コードを保存] チェック・ボックスにチェックを付け、[OK] をクリックします。
    3. [ビルド] メニューで [コンパイル] を選択して、CSP ページをコンパイルします。
    ターミナルを使用して CSP ページをコンパイルするには、コンパイラに “生成されたソース・コードを保存” するように伝える “k” フラグを使用します。
    1. ターミナルで、現在適切なネームスペースにいることを確認します。適切なネームスペースでない場合は、以下を入力してネームスペースを変更します。
      zn "<namespace>"
    2. do $System.CSP.LoadPage(“/csp/<namespace>/<pagename>.csp", "ck") と入力して、CSP ページをコンパイルします。
      以下はその例です。
      SAMPLES> do $System.CSP.LoadPage("/csp/samples/james.csp", "ck") 
    Question:
    フラグとは何ですか?
    Answer:
    フラグの最新で完全なリストを表示するには、ターミナルで以下のコマンドを実行します。
     Do $System.OBJ.ShowFlags()
    これは、以下を出力します。
        a - Include application classes. This flag is set by default.
        b - Include sub classes.
        c - Compile. Use this flag while loading a CDL file will cause the 
            classes loaded to be compiled as well.
        d - Display. This flag is set by default.
        e - Delete extent.
        f - Force. Force a compilation even when classes are in use.
        h - Generate help.
        i - Validate XML export format against schema on Load.
        k - Keep source.  When this flag is set, source code of
            generated routines will be kept.
        l - Use lock while compilation classes.  This flag is set by default.
        p - Include percent classes.
        q - SQL-only compilation.
        r - Recursive.  It means include all the classes that are
            dependency predecessors.
        s - Include system classes.
        u - Update only.  It means do not compile classes that are up-to-date.
        v - Keep valid.  When combined with "f" flag, also keeps the objects valid
            after the compilation of the new classes.
        y - Include classes that are related to the current class in the way that
            they either reference to or are referenced by the current class in 
            SQL usage.
        4 - Export CDL compatible with version 4 from later version.
        o1- Optimize ..Property to i%Property where possible.
        o2- Optimize calls within this class, no incremental compile support.
        o3- Optimize calls within this class and to system classes.
        o4- Optimize calls to all classes, only works from CompileAll entry point.
    
    Default flags for this namespace =adlo1
    You may change the default flags with the SetFlags(flags,system) call
    
    Note:
    “f” フラグを使用すると、既存のオブジェクトは、コンパイル後には無効になります。ユーザがクラスのコンパイル後もオブジェクトを有効にしたい場合は、“v” フラグを使用します。
    Question:
    頻繁に使用するユーティリティ・メソッドがいくつかあります。##class(Package.Class).method() を使用せずに呼び出すことはできますか?
    Answer:
    それらのメソッドを特定のクラスに配置すれば、CSP ページがそのクラスから継承することができます。そうすれば、ドット構文を使用してそのメソッドにアクセスできます。これを行うには、以下のように <csp:class> タグを使用します。
    <csp:class super="%CSP.Page,App.Utils">
    Question:
    プライベート・ページとは何ですか?
    Answer:
    プライベート・ページは、適切なトークンを使用して他の CSP ページから呼び出されたときに表示されます。プライベート・ページにブックマークを付けることはできず、ブラウザに URL を入力するだけでは表示することもできません。ページをプライベート・ページとして設定するには、以下のように <csp:class> タグを使用します。
    <csp:class private=1>
    Question:
    すべてのページで使用したい JavaScript 関数とヘッダがあります。これをページに含むには、どのようにすればいいのでしょうか?
    Answer:
    新しい #include 構文を使用します。
    <!--#include file="mystuff.inc"-->
    これはテキスト形式のインクルード・ファイルで、Caché 5 の新機能です。ファイルのテキストは、ページがコンパイルされる前に自動的にページに組み込まれます。したがって、#()# 変数や <csp:query> クエリの結果、runat="server" コードなど、コンパイルする必要があるコードを含むことができます。
    Question:
    <csp:search> タグを使用し、ユーザが ID 以外でもフィールドを検索できるようにもしたいのですが、これは可能でしょうか?
    Answer:
    <csp:search> タグには WHERE 属性があります。この属性を使用して、検索するフィールドをコンマ区切りのリストで指定することができます。
    <csp:search name=mySearch where="Name,Gender" CLASSNAME="Sample.Person">
    他にも、<csp:search> 機能をカスタマイズするために使用できる複数の属性があります。詳細は、CSP HTML タグ・リファレンス<CSP:SEARCH> エントリを参照してください。
    構成
    Question:
    サブディレクトリ内のページを供給する CSP アプリケーションは、どのように構成するのですか?
    Answer:
    Caché 構成マネージャを使用します。
    1. [CSP] タブをクリックします。
    2. [アプリケーション] をクリックします。
    3. アプリケーションのディレクトリがない場合は、[追加] をクリックし [新規 CSP アプリケーションを追加] ダイアログ・ボックスでディレクトリ・パスを入力します。
    4. アプリケーションの設定を展開したリストから、[繰り返し]“[はい]” に設定してください。
    5. [OK] をクリックし、構成マネージャを終了するときに [変更] をクリックします。
    Question:
    現在、Windows 用の Macromedia Dreamweaver MX を持っています。CSP との作業を行うためには、どのように構成すればいいのでしょうか?
    Answer:
    Dreamweaver を使用するには、Macromedia Extension Manager を使用して、CSP 拡張ファイル (C:\CacheSys\Dev\csp\dreamweaver\CacheServerPagesMX.mxp) をインストールします。この拡張ファイルのインストール方法、および使用方法に関する詳細は、"Caché Server Pages (CSP) の使用法" の "Macromedia Dreamweaver での CSP 使用法" を参照してください。
    Question:
    現在、Windows 用の Macromedia Dreamweaver バージョン 4.0 以降を持っています。CSP との作業を行うためには、どのように構成すればいいのでしょうか?
    Answer:
    Dreamweaver を使用するには、Macromedia Extension Manager を使用して、CSP 拡張ファイル (C:\CacheSys\Dev\csp\dreamweaver\CacheServerPages.mxp) をインストールします。この拡張ファイルのインストール方法、および使用方法に関する詳細は、"Caché Server Pages (CSP) の使用法" の "Macromedia Dreamweaver での CSP 使用法" を参照してください。
    Question:
    現在、Macromedia Dreamweaver 3.0 を持っています。CSP との作業を行うためには、どのように構成すればいいのでしょうか?
    Answer:
    http://www.macromedia.com/exchange/dreamweaver/ から Macromedia Extension Manager をダウンロードし、"Caché Server Pages (CSP) の使用法""Macromedia Dreamweaver での CSP 使用法" の手順に従って、CSP 拡張ファイルをインストールしてください。
    Question:
    ユーザのブラウザに /csp/ ではなく、http://mydomain.com/banking/login.csp と入力させ、CSP アプリケーションをロードしてほしいのですが、どのようにすればいいのでしょうか?
    Answer:
    Caché Configuration Manager を使用して、新規の CSP アプリケーション (例えば /myapp) を設定します。このプロセスは、"Caché Server Pages (CSP) の使用法""CSP 構成" の章の "CSP サーバの新規アプリケーションの定義"のセクションで詳細に説明しています。
    Question:
    Web ブラウザとは異なるマシンで Caché を起動しています。どのように構成すればいいのでしょうか?
    Answer:
    "リモート Web サーバでの Caché Server Pages の使用法"を参照してください。
    その他
    Question:
    CSP アプリケーションでフレームを使用することはできますか?
    Answer:
    はい。しかし、フレームセット・ページには、.csp 拡張子を持つ名前を付ける必要があります。index.html というページを作成し、CSP ページを左フレームと右フレームにロードする場合、2 つのセッションが使用することとなり、各 CSP ページに 1 つずつ、計 2 つの Caché ライセンスが必要となります。これは、情報を保存するためにセッション・オブジェクトを使用する場合に非常に混乱し、また、不必要なライセンスを使用する必要もあります。
    index.csp フレームセット・ページを呼び出すことで、セッションもそのアプリケーションのライセンスも 1 つで済みます。フレーム内の両方の CSP ページは、このセッションと、セッションに保存されているすべての情報を共有します。
    Question:
    CSP で文字セットを使用するには、どうすればいいのでしょうか?
    Answer:
    "文字セットと CSP" を参照してください。
    Question:
    どの HTTP ヘッダ情報がブラウザに送信されるのでしょうか?
    Answer:
    ヘッダ情報を表示するには、以下の 2 つの方法があります。
    Question:
    CSP に加え、.csp 拡張子を使用する Crystal Reports も使用しています。Caché Server Pages を使用するには、どのようにすればいいのでしょうか?
    Answer:
    CSPCrystal Reports は両方とも .csp ファイル拡張子を使用するので、Web サーバで両方を起動すると衝突が起きます。後にインストールされたアプリケーションは正常に起動しますが、先にインストールされたアプリケーションは正常に作動しません。このような衝突を回避するには、Web サーバ構成で CSP 用に 1 つの仮想ディレクトリを、Crystal Reports には別の仮想ディレクトリを作ります。
    インターネット・サービス・マネージャ を使用して仮想ディレクトリを構成する方法は、以下の通りです。
    1. 最初のノードを拡張し、[既定の Web サイト] を展開します。
    2. CSP が後にインストールされている場合、[Crystal] 仮想ディレクトリを右クリックし、[プロパティ] を選択します。
      Crystal Reports が後にインストールされている場合、[csp] 仮想ディレクトリを右クリックし、[プロパティ] を選択します。
    3. [プロパティ] ダイアログ・ボックスの [仮想ディレクトリ] タブで、右下にある [構成] ボタンをクリックします。
    4. [アプリケーションのマッピング] タブをクリックし、リストの下方にある .csp マッピングをスクロールして検索します。
    5. CSP を後にインストールした場合は、.csp 拡張子マッピングの [実行ファイル]Crystal Reports の DLL である WSCInSAPI.dll に変更します。この DLL は Crystal のインストール・ディレクトリの WCS ディレクトリにあります (例えば、C:\Program Files\Seagate Software\WCS)。
      Crystal Reports を後にインストールした場合は、.csp 拡張子マッピングの [実行ファイル] を Caché のインストール・ディレクトリの /csp/bin にある CSPms.dll の位置に変更します (例えば、C:\CacheSys\CSP\bin)。
    6. [OK] ボタンをクリックします。