RPGやQRY等で抜出したデータを任意のデータベースファイルに保存する。

(RPGやQRYについての説明は省きます。)

AS400内にcsvデータ(ストリームファイル)転送用ディレクトリを作成する。

(ルートディレクトリの直下にcsvデータを保存してもかまいませんが今後の使い勝手も踏まえて新しいディレクトリを作成したほうがいいと思いましたので今回は下準備として作成しました。)

csvデータ(ストリームファイル)転送用ディレクトリの作成方法

①コマンドWRKLNKにてAS内のルートディレクトリの表示、確認。

  WRKLNK OBJ('/')

  WRKLNKOBJ02

  OPT 5

  WRKLNKOBJ01

②コマンドCRTDIRにてディレクトリーの作成。

  CRTDIR{F4}
  CRTDIR01

  ディレクトリー名を入力(例)TESTDIR

③作成したディレクトリーを確認。

  {F5}にて更新しないと新規作成分が表示されません。

AS400のデータをPCへ転送する場合、p-commでデータ転送できるが、p-commがインストールされていないPCでデータ転送したい、もしくはRPG等で条件抜出してから自動にデータ転送したい時に使える方法です。

ちなみに私はASからの伝票発行等に利用しています。

(エミュレータ機能付プリンタは高価な上、細かい指定ができないので普通のレーザプリンタ等で印刷できるようにしています)

ASデータそのままではcsv形式でない、マイナスが後ろにつく、改行コードが違うなどPCでそのまま利用できないのでCPYTOIMPFコマンドを使い、ASデータをPC用csv形式に変換しストリームファイルとして保存しています。

(いろいろ方法があると思いますがこの方法が比較的容易にできると思います)

概要

①RPGやQRY等で抜出すデータを任意のデータベースファイルに保存する。(準備編)

②データ転送用ディレクトリーをAS内に作成する。(準備編)

③FTP転送用バッチプログラムを作成する。(FTP編)

④保存したデータベースファイルをAS上にストリームファイルにコピーする。(CL編)

⑤PC上のFTPバッチプログラムを起動して保存したストリームファイルをASからPCへデータ転送する。(CL編)

前回、JDBCでAS400にアクセスする際、AS400側でライブラリの指定はできるが、ファイルの指定はすべてのファイル自体にアクセス制限をかけないといけないので現実的でないのでできないとの見解でしたが、方法の1案を考えました。

アクセス可能にするファイルをその都度作成していかなければいけないのでユーザ数やファイル数が多くなると管理が大変になりますが、たいていユーザ毎にアクセスするファイルは決まっていると思われますのでできるだけ同じ物理ファイルに関係する論理ファイルを作成しないようにすればそれほど複雑にならないと思われます。

方法:

①JDBCで接続する専用ライブラリを作成。(例:JDBCLIB)

②先に作成したライブラリ(例:JDBCLIB)にアクセス可能にする論理ファイルを作成。

③JDBCで接続する専用ユーザを作成。(例:JDBCUSER)

④先に作成したユーザ(例:JDBCUSER)のユーザー・プロファイルのジョブ記述を変更し先に作成したライブラリ(例:JDBCLIB)のみアクセス可能にする。

*ユーザー・プロファイルのジョブ記述を変更については「OpenOfficeBaseからJDBCを使用したAS400への接続(追加事項)」を参照。

以前書きました「OpenOfficeBaseからJDBCを使用したAS400への接続」でライブラリーやオブジェクトを指定して表示できないの件ですが、わかったことがありました。

セキュリティレベルが20だとユーザ毎にライブラリーの表示を変更できないと思われていましたが、ユーザープロファイルにジョブ記述を指定すればライブラリーの表示を替えることができました。

方法:

通常使用しているユーザのライブラリーリストを変更すると問題が起きる可能性がありますので、できるだけOpenOfficeBaseから呼ぶ専用のユーザを作成してください。

①ジョブ記述を適当なライブラリーに適当な名前で新規作成する。

  コマンドラインにて「WRKJOBD *ALL」 OPT「1」作成

②先ほど作成したジョブ記述内の初期ライブラリー・リストの項目に表示させるライブラリーを入力する。

③ユーザー・プロファイルのジョブ記述を先ほど作成したジョブ記述に置き換える。

  コマンドラインにて「WRKUSRPRF *ALL」 OPT「2」変更


なお、表示ライブラリーはAS400側で制限できましたが、オブジェクトの表示制限はできませんでした。

一応、オブジェクト自体の権限でユーザ毎に指定すればアクセスできなくはなりますが、現在の状況ではすべてのオブジェクトにその指定をしなければならないので現実的ではありません。

どうも、JDBCでアクセスした時にライブラリーリストとその中のすべてのオブジェクト名のデータを渡してしまうようなのでJDBCでアクセスする側のソフト(OpenOfficeBase等)で制限するしかなさそうです。

キーエンスさんの無線バーコードハンディターミナルに搭載可能なAS400エミュレータがでたそうです。

弊社では基幹系でAS400を使っているのですが、事務処理はほとんど事務所で行っていますので、倉庫の入出庫管理、棚卸等はできるだけ現品を確認しながら作業場で行なえば、ミスの低減、作業効率化になると考えていました。

以前検討した際、AS400エミュレータ搭載可能な無線バーコードハンディターミナルで手ごろなサイズや防水機能のものがなく、そういったものにするといったんSQLサーバ等をはさむ方法しかなく金額的にも高いなど話が流れてしまいました。

以前より無線バーコードハンディターミナルも安くなり、このエミュレータも通常よりは安いようなのでまた再検討する予定でいます。

このバーコードで実績を作り、その次はQRコード、その次はICチップと進化させたいと考えています。


AS400エミュレータ搭載可能無線バーコードハンディターミナル(KEYENCE)

http://www.keyence.co.jp/barcode/handyterminal/bt_910/index.jsp

http://www.keyence.co.jp/barcode/handyterminal/bt_950/index.jsp

JETチャイナソリューション株式会社

http://www.jet-china.co.jp/index.html

内容:

無線LAN「corega CG-WLAPAGPOE」で電源投入時から1~2週間後、突然無線通信不能になる。

1日で不通になる時もあり。

同じ機器を使用して11aでLAN間通信、片方の機器の11g/bでアクセスポイントモード。

11g/bを使用している片方の機器を電源再投入で直る。

11aのLAN間通信(WDS)通信不安定が原因だと思われる。

対処:

コレガのHPからファームウェア1.01をダウンロード。更新。

http://www.corega.co.jp/prod/wlapagpoe/download.htm

備考:

2台とも行ない、正常完了した旨のメッセージが出たが、再起動後、1台だけ正常起動しない。

ブラウザで設定画面にアクセスすると英語でエラーメッセージが表示。

IPアドレスの設定の変更もしくはファームウェアの変更らしきメッセージ。

この画面からファームウェアを再更新。正常起動した。

内容:

OpenOfficeBaseからJDBC を使用してAS400へ接続する。

必須条件:

1)AS400とパソコンがTCP/IPで接続できる状況下にある。

2)AS400に「IBM Toolbox for Java 」がインストールされている。

  http://publib.boulder.ibm.com/html/as400/v5r1/ic2962/info/rzahh/page1.htm

3)パソコンに「OpenOffice2.0」がインストールされている。

  http://ja.openoffice.org/

設定方法:

1)AS400からJBDCドライバをコピーする。

  エクスプローラ等で"\\(AS400のIPアドレス)\qibm\ProdData\HTTP\Public\jt400\lib"を開く。

  "jt400.zip"をパソコンの任意の場所にコピー。(例)c:\jdbc\

2)Base以外でOpenOfficeを開く。

  *Baseで開くといきなりウィザードが開いてしまいます。Calc等で開いてください。

  ツール-オプション-OpenOffice.org-Javaを開く。*多少時間がかかります。

  クラスパス-アーカイブの追加

  先ほどコピーしたjt400.zipを指定する。(例)c:\jdbc\jt400.zip

3)OpenOfficeBaseからAS400へ接続する。

  OpenOfficeBaseのデータベースウィザードを開く。

  既存のデータベースに接続>JDBC

  URL>jdbc:as400://(AS400のIPアドレス)

  ドライバクラス>com.ibm.as400.access.AS400JDBCDriver

  ユーザ入力、必須パスワードチェック

  http://jeasy.fc2web.com/tips1-body-body.htm

  *ファイル数にもよるがテーブルを表示すると多少時間がかかります。

備考:  

通常、ユーザ毎にアクセスできるライブラリーが限られており、URLでアクセス可能ライブラリーまで指定すればそのライブラリのみテーブルに表示されると思われるのだが、AS400のセキュリティレベルによってそのとおりにはならない場合がある(セキュリティレベルはデフォルトで40)。ちなみに今回のテスト環境ではセキュリティレベルが20で常に通常のライブラリーしか表示できない。現在調査中。

内容:

Winサーバを長い間使用していると、初期設定のパーティションのサイズが小さくて容量不足になることがあります。(特にWinUpDateを繰返しパッチがどんどん増える。4~5年前のサーバだとCドライブ容量が数GBでパーティションを切ってある。)

そこでパーティションのサイズを変更したくなるのですが、これだけのためにパーティションを操作するソフトを買うのももったいないのでフリーのQTPartedを使用してパーティションサイズの変更を行なう。

ちなみにQTPartedはLinuxで動作する。

概略:

できるだけ万が一に備えてバックアップを取っておく。

CDブートのLinux「Knoppix」でパソコンを起動する。

rootシェルからQtpartedを起動する。

QTpartedでパーティションサイズ変更。

操作方法詳細:

http://www.thinkpad-lover.org/knoppix/QTParted.htm

備考:
Knoppix5.0.1で確認。

重森 大

KNOPPIXでLinuxを使いこなそう