TONAKAIについて

  1. CGIへの移行の変換率はどれくらいなのでしょうか?
    当社では非常に複雑なプログラムが多いので心配です。

    TONAKAI/2.0 で SPECIAL ファイルがサポートされて変換率は大幅に向上しました。
    ただし DSPF から HTML への変換は、お客様独自の記述によって弊社で予想できなかった
    ような場合は正しい HTML に変換されない場合が予想されますが、結果の HTML を
    HTMLデザイナー を使って簡単に編集することができます。

  2. TONAKAI/2.0 はDSPFをCGIでSPECIALファイルに置き換えると聞きましたが
    SPECIALファイルとはどのようなものでしょうか?

    TONAKAI/2.0 では RPG の DSPF は装置 WORKSTN から SPECIAL に変更されます。
    SPECIAL に変更することによって CGI で DSPF (SPECIAL) に対して READ/WRITE が
    実行されるとOS400 が EnterpriseServer が提供している「HTMLDVR」という名前の
    プログラムを呼び出して、DSPF の入出力バッファーを「HTMLDVR」に渡します。

    「HTMLDVR」は HTML とのインターフェースの役割を果たしていて、CGI は READ/WRITE を
    行うだけでHTML との入出力を行うことができるようになります。
    結果的に RPG開発者はこれまでの DSPF と同じような感覚で READ/WRITE によって HTML を
    やさしく扱うことができるようになりました。

  3. SPECIALファイルを採用するに至った背景とSPECIALファイルが
    優れている点について教えてください。

    米国の BBS (掲示板) で ユーザーが HTML という装置を IBM が提供して欲しいとあったことがきっかけでした。
    つまり 装置 WORKSTN を HTML と書き換えるだけの機能が欲しいというものです。
    これを実現できるのが SPECIAL ファイルです。

    さらに調べていくうちに SPECIAL ファイルでも外部記述を利用できることが判明致しました。
    これまでの CGI による Web開発ではユーザーはそのWeb化製品の独自のプロシージャーを学習する必要があり、
    しかもフィールド個別に入出力を記述することが必要なため CGI ソースはどうしても冗長になりがちでした。
    これに対して SPECIAL ファイルの (外部記述としての)利用は

    • フィールド個別の記述が必要なく、READ/WRITE だけで HTMLを制御することができる。

    • CGI の記述が非常に見やすくまとまったものとなる。

    • 独自のプロシージャーをほとんど学習する必要がない。

    • RPG III であっても CGI を作成することができる。

    などの優れた点があります。

  4. SPECIALファイルによってDSPFが、ファイル仕様書に残っているのであれば
    DSPFの24×80桁の制限を拡張することができるのでしょうか?

    できます。

    変換後はネイティブなHTMLになっていますので、24×80桁の制約はもはやありません。
    自由に情報を拡張する事が出来ます。

  5. SPECAILファイルの利用でDSPFがバッファーとして利用されていることは、
    24×80桁の制約があるのではないですか?

    いいえ。内部的なDSPFはバッファーとして利用されているだけですので24×80桁の制約はありません。

  6. 変換後の画面を修正する場合、元のDSPFを修正するのでしょうか?
    それとも変換後のHTMLを修正するのが正しいのでしょうか?

    変換後のHTMLを修正してください。

  7. DSPFを TONAKAI/2.0 を使ってHTMLに移行できることはわかりましたが、
    移行後のHTMLを編集する方法はあるのでしょうか?

    あります。

    TONAKAI/2.0 では 「HTMLデザイナー」 を使えば、HTMLのパーツとして構成している
    入力ボックス、テキスト、・・・・ などのオブジェクトをドラッグ&ドロップで移動することに始まって、
    コピーや削除、新規追加、プロパティなどの多くの機能があり、特に System i ユーザーのための
    独自の HTML編集ツールですのでフィールドに対応した処理を行うことができるという画期的な
    機能を持っています。

    市販の HTML編集ツールでは学習に時間がかかりますが 「HTMLデザイナー」 であれば、
    HTML に馴染みの無いSystem i ユーザーでもすぐに HTML の編集をビジュアルに
    やさしく行うことができます。

  8. サインオン画面やメニューのWeb化はどのようにすればよいのでしょうか?

    ログイン機能がありますので、サインオンのためにダイアログを作成する必要はありません。
    IPアドレスだけでアクセスすれば IE によるログイン・ダイアログが表示され、
    そこで System i で使用していたユーザーとパスワードを入れてログインすることができます。

    メニューに関しては移行することもできますが、Web上でわかりやすいのは左サイド・ペインの
    ツリー構造によるメニューが流行であり、お奨めできます。

    しかし残念ながら既存のメニューをこのようなツリー構造のメニューに移行する機能はまだありません。
    リリースアップをお待ちください。
    現在では手作りになってしまいますが弊社サイトの「ワークショップ」にメニューのサンプルが
    ありますのでご参照ください。

  9. TONAKAI/2.0 によってWeb移行すると何の考慮もなく、
    すべてをそのまま動作させることができるのでしょうか?

    すべてが 100 % というわけではありません。
    例えば POPUPウィンドウからの戻り値の更新などは JavaScript によって
    ( 「ワークショップ」 の契約照会を参照) 戻り値を親画面に直接、書き込むようにしたほうが
    パフォーマンスは圧倒的によくなります。

    このようにやはり Webには適した方法がありますので、それを考慮されることをお奨め致します。

  10. ライブラリー・リストやライブラリーQTEMPの処理なども継承することができるのでしょうか?
    当社の業務ではQTEMPに一時的なファイルを作成したりする業務もあります。
    また、開発時にはテスト用のファイルを入れたライブラリーを使用していて、
    本番時にはライブラリー・リストの入れ替えによって本番を実行するように
    しているのですが、このような仕組みを使用することができるのでしょうか?

    できます。

    ユーザー別のライブラリー・リストや CGI 個別のライブラリー・リストも設定することができます。
    また、TONAKAI/2.0 によって移行した CGI は常に同じ子スレッド上で動作しますので
    QTEMP も利用することができます。

  11. サブファイル(SFL)をWORKSTNファイルで多く使用していますが、
    SFLに対するREADC、CHAIN、UPDATEなども移行されるのでしょうか?

    移行することができます。

    SFL としての HTML にも READC, CHAIN, WRITE/UPDATE を行うことができます。 もちろん SFLCLR, SFLDLT, SFLINZ も同じ RPG標識で行うことができます。

  12. COMMIT/ROLLBKを使用することはできるのでしょうか?
    セッション管理と言ってもセッション維持用のファイルを利用しているのであれば
    RPG標識やフィールド値が維持されるだけでなく
    COMMIT/ROLLBKも必要であると思いますが?

    できます。

    TONAKAI/2.0 による仮想対話式環境は通常の EXFMT による待機と何ら変わることのない
    自然な入力待機であり、 CGI は次のユーザーからの入力をスタック上で待機しています。

    つまり見せかけではない本来の入力待機ですので COMMIT/ ROLLBK も何の問題もありません。

  13. レコード・ロックは利用することができるのでしょうか?
    当社では受注入力の在庫引き当てなどに意図的にレコード・ロックを
    利用している例がありますが独自のセッション・ファイル等による
    処理ではレコード・ロックは効かないと思うのですが。

    できます。

    ご指摘のとおりセッション・ファイル等による独自のセッション管理であれば、
    レコード・ロックを利用することはできませんが TONAKAI/2.0 で移行された
    仮想対話式環境であれば EXFMT による待ち状態と全く同じですので、
    レコード・ロックもそのまま利用することができます。

  14. セッション管理が行われているのであっても、やはりブラウザの「戻るボタン」や
    「Xボタン」を押すと画面遷移の不一致が発生するのでしょうか?

    いいえ。

    Webアプリケーションでは歴史的な難問とされているこの問題も EnterpriseServer では
    「仮想対話式環境」として解決されています。
    「戻るボタン」 や 「Xボタン」 はそこに存在している以上、「押すな」とは言うことはできません。

    TONAKAI/2.0 で移行したWebアプリケーションは 「戻るボタン」 は F12キーとして扱われ、
    「Xボタン」はF3= LR終了として扱われますので画面遷移の不一致は発生しません。

    これは Microsoft社の支援を得て約半年の歳月を要して弊社が独自に解決を見出したものです。
    System i にこれらの情報が伝わり、適切に処理されます。

    また PC の電源が落ちたような場合でも iSeriesサーバー側ではタイマーが起動して一定時間経過後の
    応答が無ければ自動的に CGI は終了される仕組みとなっています。
    さらに、これらの終結処理は強制キャンセルではなく、正常な LR 終了ですので LR 時の演算も
    適切に行われます。

  15. 装置名について質問します。RPGのSDSで装置名を取得してファイルに
    装置名を更新したり、印刷出力などの判断に利用していますが、
    WebアプリケーションであればPCクライアントのIPアドレスしか
    判断できないと思うのですが装置名は利用できないのでしょうか?

    できます。

    PCクライアントに固定 IPを割り振っておけば EnterpriseServer の「遠隔装置名の登録」に
    IPアドレスを登録することによって CGI の SDS情報には自動的に装置名が書き込まれますので、
    そのままのロジックを使用することができます。

  16. INFDSについて質問します。
    WORKSTN装置を記述しているRPGプログラムではINFDSでのSFLの入出力RRNや現在、
    表示されている先頭のRRNもロジック内で参照していますがHTMLでこのようなことは
    無理なのでしょうか?

    できます。

    INFDS のこれらの値も SPECIAL ファイルに用意された HTMLインターフェースのプログラムが
    自動的にこれらの値を更新しますので、これまで同様のロジックを生かすことができます。

  17. WORKSTNファイルのときはエラー標識でフィールドを反転させたりカーソルを
    位置づけたりしていましたが、このような処理も正しく移行されるのでしょうか?

    RPG 標識による反転イメージは入力ボックスの背景色として移行されます。
    カーソルの位置づけもサポートしています。

  18. WORKSTNファイルの入出力においてオーバーレイでWRITE命令を続けて
    記述していますが大丈夫でしょうか?

    大丈夫です。

    オーバーレイの WRITE 命令もそのまま使用することができます。

  19. /COPYによる包含ソースを含むRPGも正しく変換されるのでしょうか?
    当社では/COPYを多用しており、中には/COPYメンバーの中にEXFMT命令が含まれています。

    /COPY メンバーも変換対象として検索されます。

    /COPY に EXFMT が含まれていれば、これも正しく変換されます。

  20. DSPFにメッセージ・ファイルや他のデータベースの参照が記述されている
    場合でも正しく変換されますでしょうか?

    DSPF ソース中にメッセージ・ファイルや他のデータ・ベース参照があれば、
    それらはすべて漏れなく検索されて必要な情報が取り出されます。
    たとえテキストや見出しをメッセージ・ファイルとしていても問題ありません。

  21. メッセージの表示について教えてください。
    現在はDSPFにERRMSGキーワードによって、しかもメッセージ・ファイルを使って
    エラーを表示するようにしているのですが、このような場合も正しく変換されるのでしょうか?

    変換されます。

    エラーメッセージの表示は JavaScript の ALERT メッセージとして、
    Windows ダイアログのように非常にわかりやすいメッセージに変換されます。
    しかもメッセージ・ファイルを使用されていたのであればメッセージ・ファイルの
    検索はそのまま継承されます。

  22. SFLMSGKEYはサポートされていないと聞きましたが?
    当社はSFLMSGKEYによるエラーメッセージの使用を数多く使用しています。

    SFLMSGKEY もサポートしています。

  23. カーソルの位置の読み取りは TONAKAI/2.0 で移行後もサポートされているのでしょうか?
    当社ではカーソルを位置づけて機能キーを押して、POPUP照会などを行う適用業務が
    多くあるのですが。

    サポートしています。
    マウスポインターを項目に位置づけて左ボタンを押して項目をフォーカスしてから機能キーを押すと、
    その項目の位置が CGI の INFDS 情報として CGI に渡されますので、CGI 演算上では従来の
    カーソル位置として、ソースを全く変更することなくカーソル位置を読み取ることができます。

    このように TONAKAI/2.0 では SPECIAL ファイルとして DSPF も記述されていますので、
    従来DSPF で行なっていた多くの機能のサポートが可能となりました。

  24. HTMLの場合は数字でなければならない項目に対して、文字が入力されても
    そのままで受け入れられてしまいます。
    入力値の数字の妥当性検査は JavaScript でユーザーが行う必要があるのでしょうか?

    いいえ、その必要はありません。

    Javascript が数字フィールドに数字以外の文字が入力されたときは不正な数字として
    ALERT メッセージを出力して入力を受付けないようになっています。
    もちろん数字とは言っても 0-9, カンマ, 小数点, 符号, / などは正しい入力として扱われます。

    余談ですが CGI でこのような数値の妥当性検査を持っているプラットフォームは他にはありません。
    内部ではフィールドを取り出して途中でこのような不正が見つかるとエラーを出力するだけでは不十分です。
    内部スタックは直ちに元の入力待ちの状態に戻されます。
    これはあたかも入力されていない状態に戻るような処置が施されています。

  25. オープン・フィールドで漢字や半角文字が混在している場合は EBCDIC に内部で変換すると、
    漢字のシフト文字が挿入されますので、そこで初めて文字数のオーバーになる場合があると
    思います。
    このような場合に対する措置はあるのでしょうか?

    これも数字の妥当性検査と良く似ているのですが、Javascriptによって漢字の両端の
    シフト文字用のスペースが計算されます。

  26. 当社の適用業務の多くは CLP からの呼び出しを行っていて CLP で OVRDBF や OVRPRTF を
    指定していますが、このような指定を使用することはできるのでしょうか?

    できます。

    CGI は何も RPG-CGI を直接、呼び出す必要はありません。
    CLP を CGI として呼び出して、そこから OVRDBF, OVRPRTF を実行して RPG-CGI を
    CALL するようにすれば良いのです。
    TONAKAI/2.0 によって移行された適用業務は仮想対話式環境によって、必ず同じ子スレッド上で
    実行されますので OVRDBF, OVRPRTF などによる一時変更もそのまま維持されます。

  27. RPG IIIによる開発は可能でしょうか?
    当社の開発スタッフはILE-RPGの経験はまだ浅く、これまで使用していた
    RPG IIIプログラムが、ILE-RPGに変換されるのにまだ不安があります。
    また仮に RPG IIIが使えたとしても、やはりDSPFの拡張ができないなどの
    制約があるのでしょうか?

    RPGIIIによる開発は終了しました。

  28. CGIとHTMLへの移行はすべて単純な移行だけで完結すると考えてよいのでしょうか?

    多くの適用業務は、そのまま機械的な作業のよって移行することは可能ですが、
    構造的に5250エミュレータの世界と HTML の表示の違いがありますので単純に
    すべてが変換できると言えません。
    最も代表的であるのが POPUP-WINDOW の処理です。
    Web 化すると単純な CALL 命令をそのまま実行するのでは正しくPOPUP を表示することはできません。

    EnterpriseServer ではこのような POPUP を移行して単純に再現できる機能も持っていますが、
    やはりWeb には Webなりの適した POPUP表示の手法がありますので是非、それらに移行することを
    お奨め致します。

    これは若干の手作業による JavaScript の組み込みが必要になりますが、Web ならではの最適な
    パフォーマンスを得ることができるようになります。
    作業はそんなに難しいものではありませんので、ご心配するには足りません。

  29. 漢字のシフト文字の扱いはどのようになるのでしょうか?
    漢字半角混じりの項目は、どのような形でHTML上に表示されるのでしょうか?
    また逆に入力のときにシフト文字のスペース分を考慮して入力することはできません。

    System i のデータ・ベース内の漢字のシフト文字は HTML 上ではスペースとして表示されます。
    逆にブラウザから入力すると漢字の前後にはシフト文字が自動的に挿入されます。
    しかしスペースつきで表示されたフィールドを、そのまま SUBMIT すると前後に余計なスペースが
    さらに増えてしまうことはありません。
    これは漢字に変換したときに、前後にあるスペースは1桁ずつ除去されるような仕組みになっているからです。

    もちろん漢字半角混じりのデータを投入して、シフト文字を追加した結果、初めてフィールド長を
    オーバーするようであれば ALERT メッセージがブラウザへ戻されて入力は受け付けられません。
    このような処理方式によって、エミュレータと同じような 入力の妥当性検査 が行われており、
    漢字フィールドも適正なものに保つことができます。
    ユーザーはこのために JavaScript を用意する必要もありません。

  30. DBを参照するコンボボックス(プルダウンリスト)は作成できますか?

    TONAKAI/2.0 の変換で生成されるHTMLソースに、AjaxによるCGIへのリクエストの
    記述を加えることで、データベースからデータを取得することができます。
    (Ajax とは、Javascript とXML による非同期通信のことです。詳しくは こちら で。)

    あとは取得したデータを作成したコンボボックスの中に挿入することで、
    動的にコンボボックスを生成することができます。

    Ajax による動的なコンボボックスを生成する例をTechNetの
    Ajax サンプル 動的コンボボックスの作成」で紹介しております。

  31. サブファイルをスクロールバー付きの一覧に移行することはできるでしょうか?
    またスクロールバー付きの一覧に移行できた場合、最初から全一覧データを
    スクロールバーで見ることはできないでしょうか?

    はいできます。
    TONAKAI/2.0でサブファイルを変換した場合、スクロールバー付きのサブファイル
    として変換されます。
    また全一覧データをスクロールバーのみで閲覧するには、変換後のRPGのデータベース
    の読み取りを SFLSIZではなく、EOF(ファイルの最後)まで読み取るように変更すれば、
    スクロールバーが表示され機能キーを使用せずに閲覧することができます。

  32. 1本ずつの変換ではなく、まとめて変換できますか?

    はいできます。
    eStudio からの「既存業務のWEB移行」からの変換では1回の変換で1つのプログラムしか
    変換できませんが、PCOMM で [ASNET.COM/CVTWEBSRC + F4] コマンドにより表示される
    「CGIソースへの移行」画面で、プログラムに「*ALL」を指定するとライブラリー内のすべての
    プログラムを一度にまとめてCGI変換することができます。

  33. TONAKAI/2.0 で DSPF/RPG を HTML/CGI に移行できたとしても、実際の実行となると
    内部で QTEMP や *LDA も利用しているプログラムもたくさん、ありますので
    問題はありませんか ?

    QTEMP や *LDA, COMMIT & ROLLBK も、そのまま利用することができます。
    これは他社製品にはない TONAKAI/2.0 だけの機能です。
    TONAKAI/2.0 では通信は、すべて論理的に、あるいは物理的にサーバー( IBM System i )と
    接続が保持されていますので、一旦、接続を開始すると、ジョブ(セッション)が終了するまで
    同じジョブ(セッション)上での動作が継続されます。
    従って 5250 エミュレータと同じような処理を行ないますので、+LDA や QTEMP, CIMMIT & ROKKBK も
    5250 エミュレータと同じように処理することができます。

    これに対して他社製品ではセッション管理とは言ってもセッションによるデータ(変数値)が
    保持されるだけであり、セッションが実行されるジョブは、毎回のように異なりますので
    QTEMP, *LDA さらに COMMI & ROLLBK の処理は全くできません。
    また、製品によっては莫大なセッション・ファイルの残骸が残ってしまい、DISK 容量を圧迫する
    障害も報告されているようです。

  34. 弊社では、かなり独自のコーディングをしているのですが TONAKAI/2.0によって
    うまく変換できないような場合でも対応してもらえるのでしょうか ?

    TONAKAI/2.0 ではシンプルな変換であるため、相当、高い変換率を誇っていますが
    どのような記述にも 100% 対応済みであるとは言い切れません。
    お客様独自のコーディングがお客様社内では普通であっても
    TONAKAI/2.0 では想定されていない、という場合も考えられます。
    このためお買い上げ後、お問い合わせ頂ければ保守の範囲内として無償で対応させて頂くことが可能です。

  35. TONAKAI/2.0 は EndterpriseServer のオプションとして
    別途、購入する必要があるのですか ?

    いいえ、TONAKAI/2.0 は EnterpriseServer の主要機能の一部として無償でご利用頂くことができます。
    それゆえ、複数の機能を組み合わせて活用していただくことが可能となります。

  36. AutoWeb や TONAKAI/2.0 の機能等をはずして一部だけを販売して頂くことは
    可能でしょうか ?
    それによって価格も下がるのではないかと思いますが ?

    申し訳ありません。機能の分割をして販売することを行なっておりません。