実は、お便りを頂き、これは、PC5250の共用フォルダーではないか、との連絡を頂きました。ありがとうございます。「共用フォルダー?」あれって、無くなったんじゃないのかなぁ。と思っていたら、
eNetwork パーソナル・コミュニケーションズ Version J4.2 - Windows 95、Windows NTより
3.4.3 AS/400 ネットワーク・ドライブ(共用フォルダー)
AS/400 システムは、フォルダーという構造を使用して文書、メール、その他の関連オブジェクトを保管し、編成します。パーソナル・コミュニケーションズにより、これらのフォルダーを共用し、AS/400 文書とワークステーション・ファイルを両方ともそれらのフォルダーに保管します。
ネットワーク・ドライブ機能を使用して、ワークステーションのドライブさながらに、AS/400 システムのフォルダーにアクセスできます。たとえば、AS/400 システムのフォルダーをワークステーションのドライブ E に割り当てて、ハード・ドライブのドライブ C にアクセスするのと同じようにドライブ E にアクセスできます。
3.4.3.1 AS/400 ネットワーク・ドライブの設定
AS/400 ネットワーク・ドライブを使用するには、AS/400 への SNA 接続(IEEE 802.2 を介する Twinax または LAN など)が必要です。ディスプレイまたはプリンター・セッション、SNA ノード構成を介して定義されている別個の APPC 接続でもかまいませ。TCP/IP または IPX 接続は使用できません。
複数の AS/400 が相互に接続されており、そのうち 1 つ以上の AS/400 システムでネットワーク・ドライブを使用したい場合、直接リンクはそのうち 1 つのシステムに対してのみ必要になります。すべての AS/400 は SNA ネットワーク・ノードなので、どれに接続しても他のシステムにアクセスできます。必要なのは、直接リンクの構成に AS/400 相互のパートナーLU 定義を追加することだけです。このことは、「SNA ノード構成」でできます。 |
ひええ、あるんだ。IEEE802.2でSNA接続したんで、出来てたんだ。知らなかった...共用フォルダーが出来ないから、わざわざWindows3.1+PC5250を残していたこともあったのに...そして、STRNFSSVRをしなくても、AS/400にアクセスできてしまいました。あれま。
申し訳有りませんでした。訂正してお詫びします。STRNFSSVRは別の機会にご報告します。
ここから下は、ネットワーク・ドライブ(共用フォルダー)のレポートと考えて下さい。
この下の画面までは良いのですが、うっかり、qsys.libを選ぶと、ずーっとガラガラガラガラとハードディスクがうるさく、時間がかかります。メモリ不足なんだろうか?64メガなんだけど。再表示で、若干早いので、キャッシュはしている見たいです。AS/400でライブラリー名を変更して、QSYSに「戻る」操作をしたら、ライブラリーは古い名前のままでした。リフレッシュすれば名前の表示も変わったのでしょうが、遅いので止めました。
QDLS (Document Library Services) が、AS/400のWRKFLRでアクセス出きるものらしい。これを使ってみます。
このフォルダーKakefudaに、PCのファイルをコピーしてみました。
よし、よし。このファイルをダブルクリックすると、アプリケーションが起動しました。MS-WORD,
MS-EXCELともに問題なし。しかしながら、ファイル名が漢字だとエラーになります。
ディスクはいっぱいではないし、ライトプロテクトもしていないし、使用中でもない。相手(AS/400)が受け入れを拒否しているので、きっと、考えられる原因を出したのだろうけど、全部ハズレー。
ここで、フォルダーを見てみましょう。WRKFLRで、KAKEFUDAを選択しました。あるある。文書記述がおかしいのは、半角カタカナだからですね。実は、どっかでおかしくなるだろうと思いつつ、わざと、半角カタカナのファイル名を入れたんです。やっぱ、ファイル名は、英語にして置いた方がいいですね。
それでは、PCの画面に戻って、CSVファイルの中身を確認しましょう。本物のデータで、テストしてはまずい(ここに出せない)ので、適当に書き換えました。
今度は、CPYFRMIMPFを使ってみましょう。これは、CSVから、AS/400の外部記述のファイルのフィールドに、マッピングしてくれます。そこで、DDSを作って、CRTPFしてみましょう。
RCDDLMは、*CRLFへ、STRDLM(ストリング区切り文字)は、*NONEにします。イメージ画面でQSYS/が付いてるのは、画面から「CPYFRM*」+実行キーでコマンドリストを出して利用したからです。
さて、おや?エラーが出ましたね。何でしょう。
兎に角19件はうまくいったみたいです。見てみましょう。おお、ちゃんとフィールド別にマッピングされていますね。おや?CSVの一行目が入っていない。エラーはそこに有るようですね。
「理由コード4によりコピーが完了していない」の行で、F1を押してみました。どうやら、例のA1の空白がスペースではなく、NULL扱いになるのが原因のようです。仕方ない。ファイルにALWNULLキーワードを付けましょう。
各フィールドにALWNULLを付けました。
今度はエラーが有りませんでした。でも、DSPDやSZAPは、ALWNULL付きファイルをサポートしてないので、ここでお見せできないのが残念です。まあ、QRYで見てみれば分かるでしょう。
もうひとつ注意です。
CSVよりも、AS/400のフィールドの方が多い場合、つまり、上の例だと、フィールドが5個以上の時、CPYFRMIMPFは、その余分なフィールドにNULLを入れようとします。上記の理由4がたくさん起きます。ALWNULLを付けておくと、エラーは出ません。ただ、今までアプリでこのNULLを扱った経験がほとんどないため、取り扱いに注意して下さい。 |