「FAQ」カテゴリーアーカイブ

Curlに関するFAQのページです

一部の端末で部品が正しく参照できない

◆ご質問◆

 1.
 Curlコントロールパネルの「全般」タブ、
 「強制再同期設定」のラジオボタンを、
 「全てのアプレットの再同期を強制する。」を選択しております。
 resync-as-ofを使用しない場合、クライアントの強制再同期設定だけでは不完全とういことでしょうか?

 2.
 独立型アプレットで発生しているのですが、
 ブラウザを使用したresync-as-ofの指定がないアプレットでは発生報告はありません。
 ブラウザを使用した場合はブラウザの再同期設定に依存する可能性が あるということでしょうか?

◆回答◆

1. について
 「全てのアプレットの再同期を強制する。」を選択した場合は、
アクセスする全てのパッケージファイルにおいて、まず、
HEADリクエストでWebサーバ上のパッケージファイルの最終更新日時を
確認し、ローカルのパッケージキャッシュよりも新しければGETリクエストで
新しいパッケージファイルを取得します。
(そうでない場合はローカルのパッケージキャッシュを使います。)

ただ、これはクライアントのCurlの挙動であり、Curlより”外の”環境については
影響を及ぼすことは出来ません。
つまり、例えばWebサーバとの間にプロキシサーバが存在し、プロキシサーバに
もキャッシュがある場合、CurlがWebサーバから新しいパッケージファイルを
取得しようとしてもプロキシサーバが古いパッケージファイルを返してしまう事が
考えられます。これはCurlの設定では回避できません。プロキシサーバ内に存在する
古いキャッシュを削除したり、そのファイルのみキャッシュに残さないように設定しなければなりません。

また、ブラウザのキャッシュの存在も考えられます。
CurlがWebサーバから新しいパッケージファイルを取得しようとしても
ブラウザのキャッシュから古いパッケージファイルが返されるということも考えられます。
この場合は、パッケージファイルをブラウザにキャッシュさせない様にWebサーバの設定を行わなければなりません。

実際にどこのデータを取得しているのかを追及するためには、
パケットのログを取得し、解析しなければ断定することは出来ません。

2. について
ブラウザを使用したアプレットでも、独立型アプレットでも使用する
通信モジュール(WinInet.dll)は同じであるため、同様の現象が
発生する可能性はあります。
独立型アプレットだけにこのような問題が発生するわけではありません。

request-browser-resident-httpプロシージャのメリットについて

【ご質問】
IEの使用を前提とした場合、CurlとIE間でのcookie共有が可能とありますが、
IE使用時において、request-browser-resident-httpプロシージャを使用する
メリットにはどのようなものがありますでしょうか。

【回答】
request-browser-resident-httpプロシージャを使用することで、
Curlが表示されているIEと同じCookie・認証情報を使用することが可能となります。

詳細は、Curl開発者ガイドの
[外部リソースとの対話]-[Webサイトとの対話]-[ブラウザ常駐 HTTP]
の項をご参照ください。 

Cookieの共有について

【ご質問】
開発者ガイド内のブラウザ常駐 HTTPの項にて、
「インターネット・エクスプローラ以外のブラウザで実行されているアプレットは、
パッケージのインポートやファイルやイメージのインクルードのような
アプレットが実行する全てのHTTPトランザクションのヘッダ内に
Webサイトが格納して送るcookieにだけアクセスすることが出来ます。」
とありますが、上記説明が指しているCookie情報とは具体的にどのような情報でしょうか。

【回答】
IE以外のブラウザで表示されているCurlアプレットは、
Curl独自のCookie(セッションCookie、有効期限付きCookie)のみアクセスすることができます。
表示しているブラウザが保持しているCookieにCurlアプレットからアクセスすることはできません

クッキーの共有方法について、以下のページもご参照ください。

Cookieを引き継ぐ方法

HttpCookieのsecure?オプションについて

◆ご質問◆
 通常のWebアプリケーションにおいては、通信プロトコルの指定やsecure属性の付与は
 APサーバ側の設定で行い、アプリ側ではあまり意識するのもではないかと思いますが、
 CurlではCookieの取得・設定・クリアにおいて通信がセキュアであるか否かによって
 メソッドを使い分けるようになっているかと思います。

 通常のWebアプリケーションと同様に、アプリケーション(アプレット)側で通信プロトコルを
 意識しない実装を行う方法はありますでしょうか。

◆回答◆
標準のAPIでは、アプレット側で通信プロトコルを意識しない実装方法はありません。

しかし、アプレット側で意識しないような実装を行うには、
HttpCookieオブジェクト生成する処理をラップしたプロシージャ等を作成し、
その中で通信プロトコルに応じて動的にsecure?を変更することで可能となります

ListBoxで値とラベル名が別の内容の場合において、ラベル名(label)を取得する方法

【ご質問】
ListBoxで複数の行を定義しているとき、値とラベル名が別の内容で
設定されていた場合、選択された行の値(value)ではなく、
ラベル名(label)を取得する方法を教えてください。

例えば、valueが「aa」、captionが「AA」と設定しているとき、
AAを取得したい場合です。

【回答】
以下のサンプルをご参照ください。

{curl 6.0,7.0,8.0 applet}

{VBox
    {italic Select at most one of the following pets:},
    {ListBox
        selection-policy = “single”,
        height = 1.0in,
        “Aardvark”, “Cat”, “Dog”, “Elephant”, “Gnu”, “Zebra”,
        {ListValueItem
            “This is value.”,
            label = “This is label.”
        },
        {on ValueFinished at lb:ListBox do
            {for x:any in lb.selected-items do
                {dump x}
                {popup-message {x.label.get-text}}
            }
            {for y:any in lb.value do
                {dump y}
            }
        }
    }
}

また、以下のFAQをご参照ください。
http://developers.curlap.com/faq/48-faq-specification/323-listbox.html

サポートフェーズについて

◆ご質問◆

 1. Curlにおけるセキュリティパッチとは何ですか?

 2. 各サポートフェーズの修正について

◆回答◆

1. について

セキュリティパッチとは、セキュリティの項目に該当するバグフィックスを含む
マイナーバージョンのアップデート(サービスパック)のことを指します。
また、同様にOS/ブラウザパッチとは新しいOSやブラウザに関する問題を
フィックスしたマイナーバージョンのアップデートのことを指します。

“~パッチ”と名付けられていますが上記のバグフィックスを含むマイナーバージョンのアップデートのことを指します。
ニュースリリースにマイナーバージョンのリリースが告知されますが、
そのマイナーバージョンのリリースで修正されるバグフィックス一覧
(例 : Ver7.0のバグフィクス一覧
http://www.curlap.com/download/tech/bugfix-7.pdf)で
セキュリティ項目に該当するバグフィックスが存在すれば、セキュリティパッチ
(セキュリティ項目のバグを修正したマイナーバージョンのアップデート)となり、
新しいOS/ブラウザに対応するためのリリースであれば、OS/ブラウザパッチとなります。

2. について

 例えば、サポートフェーズ 1 が終了した後に RTE レベルでの不具合が
 発見された場合は、それがセキュリティの観点から修正の必要有りと
 判断されれば「セキュリティパッチ」での対応となり、OS/ブラウザの更新に
 よるものと判断されれば「OS・ブラウザパッチ」の対応となります。

セキュリティの問題でもなく、OS/ブラウザの問題でもない場合は、
通常Curl RTEの問題となることが予想されます。
発生頻度が高く、影響が広範囲に及ぶ(クリティカルな問題)場合は、
サポートフェーズ2, 3の場合でも基本的に修正されます。
ただし、それがクリティカルな問題であるかどうかは、その問題が発生した
段階で弊社で発生頻度、予想される影響範囲、深刻度等を鑑みて判断されます。

 

 

オフライン実行(OCC)時にエラーが発生する

【ご質問】
Curlプログラムをオフライン実行(OCC)できるように設定しようとしておりま
すが、エラーとなってしまいます。

 【構成】
 Directry_1
 │ File_1.scurl (←マニュフェストには含まれていません)
 │
 └─Directry_2
     manifest.mcurl
     StartUpFile_1.curl
     File_2.scurl
     curl-archive.car
     curl-timestamp.txt

 【起動ファイル】
 StartUpFile_1.curl
 《指定方法》
 curl://occ/http://・・・/StartUpFile_1.curl

 【起動ファイル内容】
 {curl 7.0 applet}
 {curl-file-attributes character-encoding = “shift-jis”} {applet manifest = manifest.mcurl”,
     curl-root = “.”
 }
 {do {occ-install-or-update occ-root-installer}}

 {include “../File_1.scurl”}

    ↓↓↓
 【エラー内容】
 《StartUpFile_1.curl の時》
 「<エラー> – このアプレットをロード中にエラーが発生しました。
 SyntaxError: file:///c:/・・・
 /Directry_1/Directry_2/StartUpFile_1.curl:29[1]: ‘MissingFileException: モー
 ド ‘r’ でファイル ‘c:\・・・\Directry_1\File_1.scurl’ を開くことに失敗しまし
 た: 指定されたファイルが見つかりません。 (2)’ が原因で、’../File_1.scurl’を
 読み取ることができません」

【回答】
OCCはクライアントにダウンロードさたファイルを使うことになりますが、
今回の現象は、クライアントにFile_1.scurlファイルが存在しないために
発生しているものでございます。

OCCのデプロイの仕様として、外部フォルダ(親フォルダや兄弟フォルダ)を
対象にすることができません。
File_1.scurlは外部フォルダ上にございますので、対象に含めることができません。
そのため、クライアントにも配置されず、今回の現象が発生しております。

同じ階層にある、もしくはサブフォルダであればデプロイ対象となりますので、
回避する方法として、
 File_1.scurlファイルをDirectry2フォルダに配置する、もしくは
 Directry2フォルダ以下にサブフォルダDirectry1を配置し、
 該当のファイルをマニフェストファイルに追加する必要がございます。

尚、File_1.scurlファイルがどうしても親フォルダに存在している
必要があるのであれば、
クライアント端末にFile_1.scurlファイルを配置していただければ稼動致しますので
こちらも併せてご検討頂ければと思います。
 

SCC設定中にIDEがフリーズする現象

【ご質問】
SCC設定中にIDEがフリーズする現象が発生します。

 [フリーズするタイミング]
 『SCC』-『設定』-『ソースコード管理タブ』
 1. 『ソースコード管理を有効にする』をチェック
 2. 『プロバイダー』を”Microsoft Visual SourceSafe”へ選択
 3. OKボタンを押下

【回答】
2、3実行時の Curl IDEの挙動について説明します。

・2のタイミングで押下不可となる現象について
 『プロバイダー』を選択したタイミングで、
 Curlより Microsoft Visual SourceSafe(以下、VSS)に通信を試みます。
 この通信の際、VSSより応答があった場合に
 Curlにてボタンを押下可能になるよう制御しております。
 (応答がない場合は押下可能にしません)

 押下不可能となるとのことですので、VSSより応答がなかったことが
 原因であると考えられます。

・3のタイミングでフリーズする現象について
 OKボタン押下により、Curlより、VSSに対し通信を行い処理をパスします。
 Curlとしてはその段階でVSSに処理が移管されるため、
 VSS側の制御となりCurlは処理が完了するのを待ちます。

今回の事象に関しては、Curlに閉じた問題ではなく、
複数のツールが関連している複雑な問題です。

VSS側の情報として以下のような情報もありますので参考にして下さい。
 http://support.microsoft.com/kb/932874/ja

シャットダウン時のエラーについて

◆ご質問◆

アプレットのロードが完了する前にブラウザを閉じると”一時停止中”のまま
フリーズする場合があります。

 

◆回答◆

“終了中”とはCurlを終了しようとしている状態のことを指します。
通常は一瞬しか表示されません。
推測ではありますが、今回のように表示時間が長い場合は、
「OSがCurl終了プロセスをロックしている」ことや
「CPU使用率が異常に高いためCurl終了処理に時間を要している」ことが考えられます。

アプレットのロード完了の確認についてですが、
確認はアプレットマネージャーで行うことができます。
ロードが完了すると状態欄が”アクティブ”に変化しますので、
状態欄に表示される内容で判断をしてください。

デバッグ可能なAPIバージョンについて

◆ご質問◆
デバッグ可能なAPIバージョンについて教えてください。

バージョン4,6のIDE,RTEがインストールされていましたが、バージョン4のRTEをアンインストールしました。
その後バージョン4のRTEをインストールしたのですが、
バージョン4のデバッグが出来ません。(ブレイクポイントが効きません。)
コントロールパネルの”Curlについて”タブの
デバッグ可能なAPIバージョンにも6.0しかありません。
以前は4.0もありました。
・デバッグ可能なAPIバージョンに再び4.0も入れようとするには、
バージョン6をアンインストールして
バージョン4のIDEからインストールし直さないといけないのでしょうか?
・それとも、他に簡単な方法はあるのでしょうか?
・RTEをアンインストールすると同バージョンのIDEも消されるのでしょうか?

◆回答◆
デバッグを行うためにはそのAPIバージョンに対応したCurl IDEがインストール
されている事が必要になります。
Curl RTE 4.0をアンインストールするとCurl IDE 4.0も同時にアンインストール
されてしまいますので、これが原因でデバッグ不可能になってしまったと
考えられます。

再度4.0のAPIバージョンでデバッグできるようにするためには
Curl IDE 4.0を再インストールする必要があります。
※Curl RTE 4.0をインストールしてもCurl IDE 4.0がインストールされていなければ
4.0のAPIバージョンのデバッグはできません。

NumberFormatterクラスのロケール

【ご質問】
NumberFormatterクラスのcreate-currency-formatterコンストラクタでキーワード引数”locale”で、”ja-JP”を指定した場合、通貨記号として円マークが使用されますが、このコンストラクタを使用せずに直接文字列として結合した”¥”と異なるフォント及びサイズの円マークが使用されるようです。このフォント指定はどこかで設定できるものなのでしょうか?
 
【回答】
こちらはOSの設定に影響を受けます。
具体的には、Windowsのコントロールパネルより地域と言語のオプションにある通貨の設定の円マークを表示します。
こちらの円マークが”¥”と違いますので、Curlを使用した際も違った表示になります。

アプレットのバージョンアップに関して

【ご質問】
最新メジャーバージョンのCurl RTEで動作できるように、Curlアプレットをアップグレードしたいのですが、どの様にすればよいのでしょうか。

【回答】
以下のサイトより Curl RTE 又はCurl CDE・IDEをダウンロードしてください。
 Curl RTE:        http://www.curlap.com/download/rte/
 Curl CDE・IDE:  http://www.curlap.com/download/ide/
まずCurl IDE の開発者ドキュメントを確認頂き、現行アプレットのRTEバージョンとアップグレード後のRTEバージョン間の差異を確認頂き、必要に応じて、APIの修正を行って頂き、バージョンアップ後のアプレットのテスト実施し、問題なければ、新しいRTEでのアプレットの稼働ができるようになります。

ソースコード修正時に、CDEのご利用をお勧めします。
CDEを使用することで、静的なエラーチェックが行え、
大部分の修正箇所を特定することが可能となります。
それぞれのインストール方法についてはインストールガイドをご参照ください。

その後、アプレット及びマニフェストのヘラルドを新しいバージョンに変更してください。
自動的に変更するツールはありませんが、Curl CDE・IDEを使用すれば
 Curl CDE: プロジェクトを選択して「リファクタリング」→「APIバージョンの変更」
  Curl IDE: プロジェクトを選択して「プロジェクト」→「APIバージョンの変更」
上記操作により簡単にヘラルド変更を行うことができます。

※メジャーバージョン間ではパッケージやクラス構成が変更される場合があります。
 バージョンアップを行う際には事前に十分な動作確認を行ってください。

尚、以下の方法で、インストールされたRTEバージョンで一つ前のRTEバージョンと見なしてアプレットをテスト実行することができます。 とりあえず新しいバージョンで稼働できるか、軽く確認する場合に、この方法をご活用いただければ幸いです。
例: PCに RTE 7.0と8.0両方インストールした環境で、次のリンクにある手順で、7.0で実行するアプレット(アプレットのヘラルドは{curl 7.0 applet})は、8.0のアプレットと見なしてそのアプレットをテスト実行することが可能です。

7.0アプリをRTE8.0でテスト実行する方法

同じアプレットを、異なるバージョンのWindowsで表示させると微妙に表示が異なります

【ご質問】
同じアプレットを、異なるバージョンのWindowsで表示させると微妙に表示が異なります。
 
【回答】
同じフォントでもWindowsによって描画APIが異なる場合は、CurlもWindowsに依存する為、画面表示が異なります。
アプレットを作成する場合には、このような微妙な差異を考慮に入れたレイアウトを作成して下さい。

2006年4月度の「InternetExplorer用の累積的なセキュリティ更新プログラム」

【ご質問】
2006年4月度の「InternetExplorer用の累積的なセキュリティ更新プログラム」には、InternetExplorer上におけるActiveXコントロールの仕様が一部変更になる修正が含まれておりますが、Curlを使用する上でどの様な影響があるのでしょうか。 
 
【回答】

ActiveXの読み込み部分にEMBED、OBJECT、APPLET要素が使用されるWebページ、つまりCurlにつきましては、Embedを使用しHTMLからCurlのアプレットを呼び出す場合のみ影響があります。
「このコントロールをアクティブ化して使用するにはクリックして下さい。」との表示がされ、ユーザーのアクションにクリックが一回追加されるようになります。
Microsoft社のサイトにも掲載されておりますが、ユーザー入力にすぐに応答する非アクティブなコントロールを読み込むWeb ページを作成するには、Microsoft JScriptを使用して、外部スクリプトファイルからコントロールを読込むようにして下さい。

Microsoft社からの情報は以下のページを参照して下さい。
http://www.microsoft.com/windows/ie_intl/ja/using/techinfo/activexupdate.mspx

http://www.microsoft.com/japan/msdn/workshop/author/dhtml/overview/
activating_activex.aspx

 

サンプルは

こちらをご覧ください。
http://www.curlap.com/guide/activex.txt

他言語からの移植性について

【ご質問】
他言語からの移植性について教えて下さい。

【回答】
VBシステムに関しては、VBで構築されたC/S型システムの自動変換ツールを
ベースにしたマイグレーションサービスを提供しております。
自動変換ツールを用いることで、画面やロジックをCurlのコードにコンバージョンします。

詳細は以下のページをご参照ください。
http://www.curlap.com/solution/vb/

導入実績の紹介とその規模を教えて下さい

【ご質問】
導入実績の紹介とその規模を教えて下さい。 また、大規模システムにも対応できますか?
 
【回答】
2003年7月にCurlの日本語版を提供して以来、2007年10月時点で国内大手企業を中心に460社様への導入実績があります。数万人規模の基幹システムやグローバルな拠点での採用事例も多数あります。お客様から同意を頂戴した事例については随時弊社Webサイトの「導入事例」に掲載してあります。

Curl技術者育成手段について教えて下さい

【ご質問】
Curl技術者育成手段について教えて下さい。
 
【回答】     弊社では、Curlのトレーニングをオンラインまたは、インストラクターによるトレーニングでご提供しています。オンライントレーニングはWBT(Web Based Training)を利用し、いつでも、どこでも、好きなときにCurlを学習することができます。また、インストラクターによるトレーニングでは、Curl IDEを使いながら講義を受けて頂きますので、より実践に近い形で学習することができます。トレーニングコースと詳細は こちら をご覧ください。
http://www.curlap.com/traning/index.html