データ転送
データ転送とは IBM i 物理ファイルや論理ファイルのデータを PC クライアントに
ダウンロードおよびアップロードすることを言います。
ここでは PC オーガナイザーによって行うデータ転送を対象としています。
AutoWeb が行うデータ転送には大きく分けて次の 2つの種類 があります。
クライアント型データ転送
旧来より PCOMM や CA/400 のクライアント・モジュールによるデータ転送です。
既存の IBM i 適用業務として組み込まれているのはこの分類になります。
AutoWeb では特別な設定もせずにそのままこの形式のデータ転送は動作します。
追加オプションを契約する必要もありません。
サーバー・サイドのデータ転送
PCOMM や CA/400 の転送記述 (.TTOファイル) をクライアントではなく
IBM i の IFS や他の PC サーバーの共有フォルダーに移して実行する方式を言います。
PCOMM や CA/400 他の他社製品も含めてサーバー・サイドのデータ転送が
可能であるのは AutoWeb だけです。
この場合は 追加オプションをご契約していただく必要があります。
サーバー・サイドのデータ転送には次の利点があります。
クライアント・モジュールの配布や保守の必要がない。
クライアントにはブラウザだけあればよいので何も導入する必要がありません。
このため新たなクライアント PC の導入や変更があっても
再導入や保守の手間が要りません。
Windowsのバージョン・アップに追随する必要がない。
IBM は CA/400 は Windows に追随サポートの打ち切りを宣言しました。
このため多くのユーザーが新しいエミュレータの必要に迫られることになりました。
しかしクライアントにまた導入したのではまたいつかは同じような可能性が発生します。
時代はエミュレータでも、もはやクライアント/サーバー・モデルは
終焉を迎えておりサーバー集中管理の時代になっています。
サーバー・サイドのデータ転送に移行するには
基本的には次の2つの移行作業が必要となります。
- 転送記述 (.TTO) ファイルを IBM i の IFS または
PCサーバーの共有フォルダーに移す - PCSFT5 や RTOPCB で起動している PC オーガナイザー (STRPCCMD) の
転送記述 (.TTO) の指定を新しい場所に変更する。
...AutoWeb は STRPCCMD で PCSFT5 または RTOPCB が転送記述を指定する場所が
文字「\」を使って C:\temp\ ... のように指定されている場合は
クライアント・モジュールの PCSFT5 または RTOPCB を起動すると解釈しますが
文字「/」を使って /QNTC/DIR/ ... のように転送記述が指定されていると
これはサーバー・サイドのデータ転送であると見なし、
AutoWeb の PCSFT5.PGM または RTOPCB.PGM を起動します。
サーバー型転送
サーバー型転送とは
サーバー型転送とは従来では PCOMM や CA400 ( iAccess ) の Windows に保管していた
転送記述をサーバー・サイド ( IBM i )に配置して実行する転送記述を言います。
この章ではサーバー型転送がどのような仕組みで動作しているのかをくわしく説明します。
開発者はサーバー型転送に関する開発を行うときの知識としてご覧ください。
サーバー型転送は「データ転送」として AutoWeb の追加オプションとしての契約が必要です。
なぜサーバー型転送が必要なのか
サーバー型転送が必要とされる理由は主に次の3つの理由が挙げられます。
-
クライアントの 5250 エミュレータを廃止したい
「 Windows10 問題」と言われるように IBM は Windows10 以降の
iAccess ( CA400 ) のサポートを打ち切ることを明言しました。
後継として IBM ACS ( = Access Client Solutions: 旧 Host on Demand ) を
推薦しましたが IBM ACS はバグが多い
5250 エミュレータとしてのバグが多く中でも印刷エミュレータは
初めは動作しなかった。JVM のバージョンによっては漢字の入力に問題がある。動作が重い
Java ベースであるので操作がどうしても遅くなってしまいます。
参照などを要求するととても時間がかかって快適な操作には
なりません。転送記述が移行できない
データ転送の記述( .TTO, .TFR など)の移行ツールにバグがあって
移行することができない。 [注]この章で紹介する AutoWeb のデータ転送では移行処理は必要ありません。
データ転送の記述をそのまま IFS に配置するだけで従来どおりのデータ転送を
実行することができます。
ASC への転送要求が移行できないということが AutoWeb によるデータ転送が
開発された理由でもあります。さらに Java の提供元である Oracle は
2019年 1月より Java の使用を 有償化 する
と発表しました。
さらに Java の旧バージョンのサポートを打ち切ると発表しましたので
Java 製品を使う限りつねに JVM のバージョン管理が必要となってしまいました。
この理由で企業では Java 製品からの移行する法人が数多くなるものと
予想されます。 -
サーバー・サイドで一括集中管理を行いたい
多数のクライアント PC にソフトウェア製品を導入している場合は
情報システム室の管理のコストと手間が莫大なものとなります。
元々分散型になっていた理由はサーバーに比べてクライアント PC 、つまり
Windows が GUI 化が速かったために GUI 化のために分散型となっただけです。
今ではサーバーの Web 化が進んでいますのでサーバーだけで容易に GUI 化する
ことができますので分散型にする理由は既にありません。
やはり管理コストの少ない集中型にすべきです。 -
サーバー側からの配布を行いたい
多くの情報システム室では IBM i から各クライアントへデータを配布したいと
希望しています。
これはクライアント PC 上で利用するデータをサーバー主体で作成でき次第に
順次、配布していきたいとの考えからです。
従来のようにデータ転送プログラムが PC クライアント上にある場合は
それができません。
しかしサーバー側にデータ転送記述があればサーバー側主体で
配布する業務が可能となります。
サーバー型転送の仕組み
転送の種類
サーバー型転送とは次のような種類に分類されます。
従来の Windows 転送記述から移管された転送記述およびフィールド記述
種類 | ダウンロード拡張子 | アップロード拡張子 | CCSID |
---|---|---|---|
PCOMM 転送記述 | .TTO | .TFR | 943 |
〃 フィールド記述 | .FDF | .FDF | 〃 |
CA400 転送記述 | .DTF | .DTT | 1202 |
〃 フィールド記述 | .FDF | .FDF | 〃 |
ACS 転送記述 | .DTFX | .DTTX | 1208 |
〃 フィールド記述 | .FDFX | .FDFX | 〃 |
※PCOMM と CA400 のフィールド記述の拡張子は全く同じ .FDF ですが内容・書式は
全く異なっていますので代用することはできません。
AutoWeb 上で新しく作成された転送記述
AutoWeb 上での新規作成の転送記述は上記の「 PCOMM 転送記述」と同じ形式で
作成されて指定した IFS 上に保管されます。
どちらの場合も転送記述は IFS に配置保管されます。
使用可能なPCファイル形式
サーバー型転送では下記のPCファイル形式に転送可能です。
PCOMM 転送記述の場合
ファイル形式 | 拡張子 | 備考 |
---|---|---|
ASCIIテキスト | .TXT | |
コンマ区切り可変長 (CSV) | .CSV | PCOMM転送記述では本来は使用不可能であるが AutoWebではファイル拡張子を .CSV とすることで コンマ区切り可変長として転送可能。 |
Excel BIFF形式 | .XLS | |
Excel XLSX形式 | .XLSX | PCOMM転送記述では本来は使用不可能であるが AutoWebではファイル拡張子を .XLSX とすることで XLSX形式として転送可能。 |
CA400 転送記述の場合
ファイル形式 | 拡張子 | 備考 |
---|---|---|
ASCIIテキスト | .TXT | |
コンマ区切り可変長 (CSV) | .CSV | |
タブ区切りテキスト | .TXT | |
Excel BIFF形式 | .XLS | |
Excel XLSX形式 | .XLSX |
ACS 転送記述の場合
ファイル形式 | 拡張子 | 備考 |
---|---|---|
ASCIIテキスト | .TXT | |
コンマ区切り可変長 (CSV) | .CSV | |
タブ区切りテキスト | .TXT | |
Excel BIFF形式 | .XLS | |
Excel XLSX形式 | .XLSX |
サーバー型転送の基本
サーバー型転送の開始
サーバー型転送は PC オーガナイザーで転送プログラムと転送記述を指定することに
よって開始されます。
転送プログラム
サーバー型の転送記述を処理するために AutoWeb が用意したプログラムのことです。
転送プログラム | 処理の対象となる転送記述 | 拡張子 |
---|---|---|
PCSFT5 | PCOMM ダウンロード / アップロード転送記述 | .TTO および .TFR |
RTOPCB | CA400 ダウンロード転送記述 | .DTF |
RFROMPCB | CA400 アップロード転送記述 | .DTT |
RTOPCB | ACS ダウンロード転送記述 | .DTFX |
RFROMPCB | ACS アップロード転送記述 | .DTTX |
転送記述
種類 | ダウンロード拡張子 | アップロード拡張子 | CCSID |
---|---|---|---|
PCOMM 転送記述 | .TTO | .TFR | 943 |
CA400 転送記述 | .DTF | .DTT | 1202 |
ACS 転送記述 | .DTFX | .DTTX | 1208 |
※Windows 上で使用されていた転送記述を IFS に Ftp などでアップロードして保管する場合、
転送記述の内容は一切、変える必要はありませんし、変更しないでください。
フィールド記述
種類 | 拡張子 | CCSID |
---|---|---|
PCOMM フィールド記述 | .FDF | 943 |
CA400 フィールド記述 | .FDF | 1202 |
ACS フィールド記述 | .FDFX | 1208 |
※フィールド記述は PCOMM も CA400 も同じ .FDF ですが
中身も CCSID も全く異なるものです。
これらの互換性は全くありませんので代用や流用はできません。
サーバー型転送の開始(バッチ)
IFS に保管されている既存の転送記述に従ってデータ転送を行うには
PC オーガナイザーを使って次のように「転送プログラム」と「転送記述」を指定して
起動します。
次の例のような記述を CLP に組み込んでください。
[例1] STRPCCMD('PCSFT5 /MYDIR/SHOHIN.TTO')
IFS の /MYDIR というディレクトリーにある SHOHIN.TTO という
PCOMM で作成されたダウンロード記述を PCSFT5 という転送
プログラムを使って起動します。
[例2] STRPCCMD('PCSFT5 /MYDIR/UPDHIN.TFR')
IFSの /MYDIR というディレクトリーにある UPDHIN.TFR という
PCOMM で作成されたアップロード記述を PCSFT5 という転送
プログラムを使って起動します。
[例3] STRPCCMD('RFROMPCB /MYDIR/UPDHIN.DTT')
IFS の /MYDIR というディレクトリーにある UPDHIN.DTT という
CA400 で作成されたアップロード記述を RFROMPCB という転送
プログラムを使って起動します。
サーバー型転送の開始(対話式)
対話式で手動操作によって AutoWeb のデータ転送を実行するには
実行中の AutoWeb 画面の最上部のコントロール・バーのアイコンをクリックします。
次のような PCOMM のような転送ダイアログが表示されます。
[ ファイル ] - [ 開く ]で既存の設定を探して開くことができます。
「ファィル参照」ボタンを押すとライブラリーの中から
目的のファイルを探し出すことができます。
サーバー型転送の動作と仕組み
AutoWeb は 5250 ストリーム中の PC オーガナイザーのコマンド( STRPCCMD )の先頭に
転送プログラム( PCSFT5, RTOPCB および RFROMPCB )を見つけると
そのまま PC オーガナイザーを実行するのではなく 以下に記述する AutoWeb 独自の
転送処理を行います。
STRPCCMD の内容は表示されていませんが 5250 ストリームの中に埋め込まれています。
ダウンロード
STRPCCMD の内容はダウンロード転送プログラムに渡されて実行されます。
AutoWeb は次の 3つの MS-PowerShell によるバッチ処理記述を作成します。
PowerShell とは Microsoft が開発したスクリプト言語です。
.Net Framework を基盤としたオブジェクト指向の言語であり Windows7 以降では
標準で搭載されています。
-
❸ダウンロードの詳細 データ・ベースをダウンロードするために転送プログラム( PCSFT5 または RTOPCB )
は AutoWeb 付属の ODBC ドライバーを起動します。
ODBC ドライバーは指示されたとおりに所定の場所にデータ・ベースを
ダウンロードします。 -
ODBC ドライバー
ODBC ドライバーとはストアド・プロシージャーと呼ばれる SQL を保管した
SQL パッケージを使ってクライアント PC から IBM i のデータ・ベースを
アクセスしてダウンロードする仕組みのことで AutoWeb にも
ODBCDVR コマンドとして提供されています。
POI
POI とは株式会社オフィスクアトロが開発した MS-Excel ブックに読み書きするための
サービス・プログラム( *SRVPGM )です。
ODBC ドライバーは Excel ブックへの出力が要求されると POI を使って
Excel ブックを作成してそれを PC へダウンロードします。
POI は Jakarta-Project と呼ばれる世界的なプロジェクトの中のひとつの
プロジェクトです。POI は Java コードによって書かれたものですが
パフォーマンスが低いため株式会社オフィスクアトロが C言語で書き直したものです。
アップロード
STRPCCMD の内容はダウンロード転送プログラムに渡されて実行されます。
AutoWeb は次の3つの MS-PowerShell によるバッチ処理記述を作成します。
PowerShell とは Microsoft が開発したスクリプト言語です。
.Net Framework を基盤としたオブジェクト指向の言語であり Windows7 以降では
標準で搭載されています。
❶アップロードの詳細
アップロードを処理する転送プログラム( PCSFT5 および RFROMPCB )は
IFS にアップロードされたデータを AutoWeb 付属の CVTFRMIMPF コマンド
を使って既存のデータ・ベースに更新します。
CVTFRMIMPF は IBM の CPYFRMIMPF を機能拡張したコマンドです。
CPYFRMIMPF コマンドは CCSID を変換することはできませんが
CVTFRMIMPF は IFS 上にアップロードされたファイルの CCSID を変換して
既存のデータ・ベースに正しい文字コードで更新することができます。
また漢字が含まれている場合も桁ずれを補正しています。
Excel ファイルのアップロードでは CPYFRMEXCL コマンドが利用されます。
CPYFRMEXCL コマンドは *BIFF ( .XLS ) および *XLSX ( .XLSX ) の Excel ブックを
IBM i のデータ・ベース( DB2/400 )にコピーします。
この技術は Jakarta Project の POI というプロジェクトをベースに
株式会社オフィスクアトロが開発した技術です。
このようにデータ転送は最先端の高度な技術によって支えられています。
CVTFRMIMPF コマンド
CVTFRMIMPF とは IBM 提供の CPYFRMIMPF コマンドの改良版のような
機能を拡張したコマンドで IFS のストリーム・ファイルから
ライブラリー・システムのデータ・ベースへデータをコピーします。
このとき問題になるのが
・IFS ストリーム・ファイルとデータ・ベースの CCSID のちがい
・レコード・レイアウトのちがい
です。
IBM CPYFRMIMPF には CCSID 変換のためのパラメータは用意されていますが
機能していません。
このため CVTFRMIMPF では独自に CCSID 変換を行っています。
また CPYFRMIMPF コマンドはレコード様式を指定するために
フィールド定義ファイル( FLDDFNFILE )の指定が必要ですが
データ転送のフィールド定義ファイル( .FDF )とは全く互換性のない形式です。
このため CPYFRMIMPF コマンドを使用するためには手動でフィールド定義ファイル
( FLDDFNFILE )を新たに作成する必要があります。
CPYFRMIMPF を使うに当たって COPY コマンドを使えば IFS ストリーム・ファイルの
CCSID を変換することができますが IFS ストリーム・ファイルの中に漢字が含まれて
いると桁ずれを起こしてしまう障害があります。
このように CPYFRMIMPF コマンドでは容易にストリーム・ファイルをデータ・ベースに
変換することはできません。
CVTFRMSPMF はこのような問題を解決した実用レベルでお使い頂けるコマンドとして
提供されています。
CPYFRMEXCL コマンド
CPYFRMEXCL とは MS-Excel ファイルを IBM i のデータ・ベースにコピーする
株式会社オフィスクアトロが開発したコマンドです。
CPYFRMEXCL は *BIFF ファイル( Excel97-2003 )の形式の Excel ブックを
IBM i のデータ・ベースに変換するのと
*XLSX( Exel2007- ) の形式の Excel ブックを IBM i の DB2 データ・ベースに
コピーするコマンドです。
Jakarta Project に POI というプロジェクトがあり、これは
Excel ブックへのアクセスを Java で記述したサービス・プログラムを
提供しているプロジェクトです。
株式会社オフィスクアトロでは POI の Java ソースをC言語に書き直した独自の POI を
開発して XLS や XLSX ブックを解析するサービス・プログラムを古くから
開発しています。
この POI によって開発された CPYFRMEXCL コマンドによって
MS-Excel のデータと IBM i のデータの互換性を提供しています。
POI について
株式会社オフィスクアトロでは POI を有償でお客様に提供しています。
POI をご利用になると RPG プログラムより POI を利用でき、
RPG プログラムによって Excel ブックへの読み書きが可能になります。
POI にご興味のある方は株式会社オフィスクアトロのヘルプ・デスクまで
お問合せください。