過去の桐井戸端BBS (桐談義・その他)
8071 WEBとの連携での疑問 真太郎 2000/10/14-16:26
みなさんおひさしぶりです。
ようやく桐もWEBと連携ができるようになって、尚一層使いこなしていきたいと思っています。
まだ、セミナーには参加してないのですが、少し疑問点があったのでお伺いさせていただきます。

 1、WEB上のフォームはどうして作成するのでしょう?
 2、WEB上で取得したデータで桐のデータベースへのデータ追加、訂正、削除等もできるのでしょうか?

 10月27日にはいく予定にしていますが、気があせるばかりでこの掲示板に投稿させていただきました。

 よろしくお願いします。


8073 Re:WEBとの連携での疑問 Ogo 2000/10/14-18:36
記事番号8071へのコメント
html (特にフォーム関係)や CGI に関する知識(ノウハウ)というかスキルは充分に持っているのですか?
8074 Re:WEBとの連携での疑問 真太郎 2000/10/14-19:50
記事番号8073へのコメント
Ogoさんは No.8073「Re:WEBとの連携での疑問」で書きました。
>html (特にフォーム関係)や CGI に関する知識(ノウハウ)というか
>スキルは充分に持っているのですか?
>
業務でホームページをつくったぐらいの知識しかありません。
必要なら今から勉強したいとおもっています。

8077 Re:WEBとの連携での疑問 hidetake 2000/10/14-21:16
記事番号8074へのコメント
>1、WEB上のフォームはどうして作成するのでしょう?

これは自分で作ります。
作る方法としては、セミナーで使っている物は「印字」コマンドで作成していますし、場合によっては一覧表やレポートで
HTML 出力する方法もあると思いますが、「戻る」場所やリンク場所など、これをどう言う手法を用い埋めこむかなど、工夫が必要です。

>2、WEB上で取得したデータで桐のデータベースへのデータ追加、訂正、削除等も
>  できるのでしょうか?

出来ないことはありませんが、それらを整合性を保ちつつ実現するには工夫が必要だと思われます。

今回、桐と Web の連携で用意されたものは、基本的に KIRI-CGI.EXEと言う実行ファイルで、
これはフォーム上に指定されたアクションにより、その時のフォームに設定された変数と、Web 上の環境変数をまとめて、
テキストファイル(REQ.TXT)に書き出します。
また、これと同時に競合を防ぐための lock ファイルが作成されます。

> <form action="./scripts/kiri-cgi.exe" method="post">
> <input name="在庫照会" type=submit value=" ">在庫照会<br>
> <input name="仕切照会" type=submit value=" ">仕切照会<br>
>  Pass:<input name="パスワード" type="password" size="6"
maxlength="6">

KIRI-CGI.EXE は既に lock ファイルがあれば、他のユーザが使用中と言うことで、「サーバが込み合っている」と警告を出し、
処理を終了します。
lock ファイルが無ければ、REQ.TXT を作成し、桐の応答 (REPLY.HTML) を(永久に)待ち(続け)ます。

桐側は KIRI-CGI.EXE からの REQ.TXT を待ち続け、このファイルが作成されたら、
その中からフォームに設定された必要な変数を探し出し、それに応じた処理を行います。
そして、その結果を REPLY.HTMLとして作成します。
作成し終わったら、REQ.TXT を削除し、次のリクエストをループして待ち続けます。

KIRI-CGI.EXE 側は、REPLY.HTML が作成されるのを待ち、これが作成されたら、標準出力に出力し、
HTTPサーバがこれをクライアントに返します。
この後に lock ファイルを削除します。

と言ったような流れになると思います。

セミナーで用意されている物は、あくまでも素材であり、これを自分達のシステムに組み込んだりする場合は、
いろいろな工夫も必要になってくると思います。

例えば、KIRI-CGI.EXE を呼びだした後(応答が戻ってくる前に)で、クライアントユーザが処理を中止したり、
他のサイトへ移動した場合はどうなるか・・・ (lockファイルが残ったままになる)
例えば、桐側がダウンしていた場合はどうするか、KIRI-CGI.EXEがリクエストを出しても、応答はいつまで待っても帰ってこない!
そのまま処理を中断したら、lock ファイルが残ったままになり、次に KIRI-CGI.EXE を呼びだしても、
いつまでも「サーバが込み合っている」状態になる。

また。
単なる参照処理ならともかく、更新(追加・訂正・削除)処理まで行う場合は、それらを行うタイミングや、
その確認を行いながら処理するにしてもリクエストの競合(ズレなど)が発生した場合はどうするのか? などなど・・・

簡単に済まそうと思えば簡単でしょうし、それなりの処理まで行おうとすると、それなりの工夫や、
あるいは KIRI-CGI.EXE を捨てて、自分で Perl 等による CGI 等を作成して対応する必要も出てくるのかも知れません。



最期に、真太郎さんのところの大元のデータは MS SQL-Server 上にあるのですよね!
だとしたら、それを一々、桐上に持ってくるより、ODBC 経由でASP を使った方がデータ処理的には簡単だし、
いろいろな工夫も出来るとは思います。

8078 Re:WEBとの連携での疑問 hidetake 2000/10/14-21:55
記事番号8077へのコメント
おまけ!

iモードセミナーで配布される CD-ROM の中に入っていて桐を Web を連携するのに使われる KIRI-CGI.EXE ですが、
桐が完全なデフォルト状態でインストールされているとそのままで動くと思いますが、
桐が C:\K3\ 以外のディレクトリにインストールされている場合は、そのままでは動かないと思います。(タブン)

そのような場合は、レジストリに KIRI-CGI.EXE に必要な情報を設定して上げる必要があるようです。

例えば、桐のインストールディレクトリが C:\Program Files\KIRIだとした場合、REGEDIT.EXE を起動し、
HKEY_LOCAL_MACHINE\SOFTWARE\K3 に新しく KIRICGI のキーを作成し、その中に 0.1 のキーを作成します。
そして、そのキーの中に文字列として「LinkDir」「Encoding」「BusyFile」の3つを作成します。
値はそれぞれ、LinkDir は REQ.TXT & lock ファイルが作成される kiricgi ディレクトリの位置、Encoding は
HTML ファイルの charset パラメータ、BusyFile はロックファイル名で、実際には、

LinkDir : C:\Program Files\KIRI\\Data\kiricgi\
Encoding : Shift_JIS
BusyFile : lock

と言うようになります。
Encoding は K3 の設定にあわすと x-sjis でも構いません。

REG ファイルで書くと次のようになります。
-----------------------------------------------------
REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\K3\KIRICGI]

[HKEY_LOCAL_MACHINE\SOFTWARE\K3\KIRICGI\0.1]
"LinkDir"="C:\\Program Files\\KIRI\\Data\\kiricgi\\"
"Encoding"="Shift_JIS"
"BusyFile"="lock"
-----------------------------------------------------


8083 Re:WEBとの連携での疑問 真太郎 2000/10/15-10:18
記事番号8077へのコメント
hidetakeさんは No.8077「Re:WEBとの連携での疑問」で書きました。
>
>最期に、真太郎さんのところの大元のデータは MS SQL-Server
>上にあるのですよね!
>だとしたら、それを一々、桐上に持ってくるより、ODBC 経由で
>ASP を使った方がデータ処理的には簡単だし、いろいろな工夫も
>出来るとは思います。
>
>
hidetakeさんありがとうござます。

教えてくださった処理がうちの職場のシステム開発に必要なのです。
こちらの業者等に問い合わせても 桐 ですか?
なんて最初からできません っといった感じで一人でどうしていいものか悩んでいます。
今のシステムをクライアント側をWEBに変えなくてはアクセスのシステムに変更されてしまうのです。(業者外注で)
自分的には桐でもできるってことがわかれば強くでれるのですが、今のところ情報を満足にない状態です。
それともうひとつ、うちではSQLとオラクルを基幹業務のデータベースとして使用しており、
桐のシステムだと外部データベースとして認識させシステムに連携させてるのですが、
外部データベースへの読み込み、そして桐側の読み込みと非常に時間がかかります。
この問題だけでも桐だけの運用では処理しきれないものなのか?
外に方法はないのか などわからないことばかりです。
母校に遊びにくるつもりで機会があればこの手法を教えてください。
それに伴う経費についてもこちらの方で負担させていただきます。

8092 Re:WEBとの連携での疑問 hidetake 2000/10/16-09:08
記事番号8083へのコメント
桐が先とか、外注がダメだとかでは無く、何が必要なのか
良く検討されてはいかがでしょう?
それと、セミナーに参加されるようですから、そこで K3の方に相談されてみてはいかがでしょう?
フォーラムKと言うところもありますし・・・

その後で必要であれば連絡下さい。

8093 Re:WEBとの連携での疑問 真太郎 2000/10/16-09:39
記事番号8092へのコメント
>桐が先とか、外注がダメだとかでは無く、何が必要なのか
>良く検討されてはいかがでしょう?
>それと、セミナーに参加されるようですから、そこで K3
>の方に相談されてみてはいかがでしょう? フォーラムK
>と言うところもありますし・・・
>
>その後で必要であれば連絡下さい。

hidetakeさんいつもありがとうございます。
あれからASP とはなんぞやと思いいろいろと書店めぐりなどして、一応自分なりには今からの方向性をだせたような気がします。
(それが違う方向だったりして・・・)
いつかこちらにくる機会があれば是非天文館で一緒しましょう!
でわまた

8095 Re:WEBとの連携での疑問 hidetake 2000/10/16-11:10
記事番号8093へのコメント
>いつかこちらにくる機会があれば是非天文館で一緒しましょう!

盆と正月にはいつも帰っています (^_^)
8098 Re:WEBとの連携での疑問 hidetake 2000/10/16-16:58
記事番号8078へのコメント
おまけのおまけ!

>LinkDir : C:\Program Files\KIRI\\Data\kiricgi\

LinkDir に \\Server\D-Drive\DATA\iKIRI\kiricgi\
なんて、UNC も使えるようだ!

それに、このように設定すれば、Web サーバとは別の PC で ikiri.cmd を動かして使えるようです。

ただ、連携のための KIRI-CGI.EXE は EXE 形式のCGI だし、レジストリも読み込むため Web サーバとしては
Windows系に限られるのは当然ですけど!

8104 Re:WEBとの連携での疑問 真太郎 2000/10/17-08:34
記事番号8095へのコメント

>盆と正月にはいつも帰っています (^_^)

その時は メールください

8152 Re:WEBとの連携での疑問 hidetake 2000/10/19-22:27
記事番号8077へのコメント
ここに書いてある事で、その後の調査で一部間違いがあることがわかりました。
(^_^; 実際にやってみる方はご自分で調査し、確認してみて下さい。

戻る