AS400データ抽出ガイド|DSPPFM・QUERY・SQL・CPYTOIMPFで確認する前に見ること

AS400(IBM i)のデータ抽出は、コマンドを決める前に「何のために、どのデータを、誰へ渡すか」を決めます。対象ライブラリ、ファイル、期間、抽出条件、件数、出力形式、機密情報を先に整理すると、本番データの誤抽出や再作業を防げます。

販売管理の現場では、「この伝票番号のデータがおかしい」「対象期間をExcelで確認したい」「外部システムへ渡すCSVが必要」といった依頼があります。画面とDBを照合し、必要ならジャーナルで更新前後を時系列に追う調査と、一覧データを外へ出す作業は分けて考えます。

データ抽出前に決める7項目

項目確認例確認しない場合のリスク
利用目的障害調査、監査、移行、外部連携不要な項目まで出力する
対象環境本番、検証、退避ライブラリ別環境のデータを渡す
対象データファイル、メンバー、論理ファイル似た名前の別ファイルを参照する
抽出条件期間、会社、拠点、伝票番号、状態条件漏れで件数が膨らむ
必要項目コードのみ、名称を含む、金額を除外個人情報や機密情報を余分に出す
出力形式画面、スプール、CSV、固定長文字化けや受け渡し失敗が起きる
保管と削除受領者、保存先、保存期限、削除担当抽出後のファイルが残り続ける

ファイル名だけで判断せず、DSPFFDでフィールド定義を確認し、必要に応じて物理ファイルと論理ファイルの関係も確認します。

目的別にDSPPFM・Query・SQL・CPYTOIMPFを選ぶ

方法向いている場面注意点
DSPPFM少量のレコードを画面で確認する到着順表示。項目名や複雑な条件指定には向かない
Query/400既存の定型抽出や一覧条件を再利用する対象ファイル、選択条件、出力先が現行運用に合うか確認する
SQL必要な項目と条件を明示して確認するライブラリを明示し、参照用のSELECTと更新SQLを混同しない
CPYTOIMPFCSVや固定形式をIFSなどへ出力する上書き、区切り、文字コード、権限、機密情報を確認する
専用プログラム定期連携、複雑な編集、再実行制御が必要仕様、テスト、異常時の戻し方まで用意する

DSPPFMは中身を素早く見る入口

IBMの資料では、DSPPFMは物理ファイルメンバーのレコードを到着順で表示します。キー付きファイルでもキー順とは限りません。問題分析、デバッグ、レコード照会には便利ですが、「最新日付順」「特定得意先だけ」のような条件が必要ならQueryやSQLへ切り替えます。

Query・SQLは抽出条件と件数を先に検証する

  1. 対象ライブラリとファイルを完全修飾して確認する
  2. 伝票番号や短い期間など、小さい条件で結果を確認する
  3. 画面表示とDBの値を照合する
  4. 想定件数と実件数が合うか確認する
  5. 必要項目だけに絞り、マスキング要否を確認する
  6. 本番用条件で再実行し、提出前に別担当者が確認する

「この伝票番号がおかしい」という問い合わせなら、まず伝票番号でヘッダー・明細・関連画面を確認します。画面とDBだけで経緯が分からなければ、異常が起きたと思われる時刻の前後をジャーナルで追い、更新前と更新後の差を見ます。いきなり全件をCSVへ出す必要はありません。

QueryとSQLの事前確認はACS SQLとは?AS400 / IBM iで安全にデータ確認する基本に整理しています。

CPYTOIMPFでCSVを出す時の確認順

確認箇所見る内容
FROMFILEライブラリ、ファイル、メンバーが正しいか
TOSTMF / TOFILE出力先、既存ファイル、上書き・追加の扱い
形式区切り形式か固定形式か、区切り文字と囲み文字
文字CCSID、日本語、改行、先頭・末尾空白
データ型日付、時刻、小数、NULLが受け取り側で読めるか
権限出力先へ作成・置換できる権限があるか
検算抽出件数、先頭・末尾、合計値、欠損を確認したか

CSV作成の具体的な事前確認はCPYTOIMPFでCSV出力する前の確認ポイント、Excelで開いた時の文字化けはCCSID・UTF-8・Shift_JISの切り分けで確認できます。

どこまで確認するかは、立場によって変わる

データ抽出を頼まれた時、「何に使うのか」「その範囲は必要か」を確認すべきだ、とよく言われます。ただ現実には、それを聞ける立場かどうかで話が変わります

若手が依頼の業務目的を独断で変更する必要はありません。一方で、実行者も承認済みの対象範囲、機密情報、受渡先、負荷、実行権限を確認します。依頼内容が曖昧、社内ルールに反する、対象環境が違う場合は、実行せず責任者へ確認してください。依頼者の判断を尊重することと、確認を省略することは別です。

立場に関係なく確認するのは3つ

ただし、これだけは誰が作業しても確認します。

  • マシン名
  • ライブラリー
  • ファイル

理由ははっきりしています。責任は責任者にありますが、実行対象が正しいかどうかを確認できるのは、手を動かしている本人だけだからです。違うマシンの本番ファイルを抽出してしまった時、依頼者はその場にいません。止められる人がいないので、作業する人が見るしかありません。責任を肩代わりするという話ではなく、その位置にいる人にしかできない確認だということです。

確認すること判断するのは誰か誰が確認できるか
何に使うのか、その範囲は必要か依頼した側・責任者業務上の必要性を判断できるのは依頼者
機密情報を含むか、誰に渡すか依頼した側・責任者渡し先と取り扱いを決めるのは責任者
マシン名・ライブラリー・ファイル依頼した側・責任者実行する本人しか画面を見ていない

立場が上がって依頼を受ける側になったら、用途、範囲、渡し先の確認も自分の仕事になります。逆に言えば、若手のうちに身につけておくべきなのは、対象を取り違えない確認のほうです。この確認の順番はAS400本番作業チェックと同じです。

抽出から受け渡しまでの安全な流れ

工程実施内容証跡
受付目的、受領者、承認者、期限を確認依頼票、承認記録
設計対象、条件、項目、形式、マスキングを決定抽出条件表
試行小さい条件で画面・DB・件数を照合確認結果
本抽出承認済み条件で実行し、件数と内容を検算実行日時、件数
受け渡し決めた経路だけで受領者へ渡す受領確認
削除IFS・PC・共有領域の一時ファイルを期限どおり削除削除確認

メールへ無造作に添付したり、個人のPCへ長期間残したりしません。顧客名、住所、電話番号、メールアドレス、社員番号、単価、金額などは、利用目的に必要な範囲へ絞ります。

Codexへ抽出条件を整理させる時の注意

Codexには、実データではなく、抽出目的、項目の意味、匿名化した条件、期待件数、確認観点を渡します。パスワード、接続情報、顧客名、個人情報、実データ、ソース全文は入力しません。安全な扱いはAS400ソースやデータをAIへ渡す時の注意点を確認してください。

IBM公式資料

ファイルへ書き出す前に件数を数える理由は、AS400が遅い時の確認手順を読むと分かります。

DSPFFDで項目を確認する

抽出依頼では、まずDSPFFDで項目名、桁数、属性、説明を確認します。項目名だけでは意味が分からない場合は、実データや業務担当者への確認が必要です。請求締めや出荷確定のデータでは、状態区分や締め済みフラグを誤ると、意図しない範囲を出してしまいます。

CSV出力と文字化けに注意する

CPYTOIMPFやFTPでCSVを出す場合、日本語の文字化け、区切り文字、ゼロ埋め、日付形式に注意します。外部へ渡す場合は、個人情報や取引先情報が含まれていないかも確認します。

目的別のコマンドはAS400コマンド逆引き、文字化けはAS400の文字化け・CCSID確認ポイントも参考になります。

抽出依頼で事故を防ぐ確認表

データ抽出依頼は、単にCSVを出せば終わりではありません。抽出条件、項目定義、文字コード、個人情報、受け渡し方法を確認しないと、誤抽出、文字化け、余計な情報の持ち出し、取引先への誤送信につながります。

確認すること見るもの
抽出目的誰が何に使うデータかを確認する
対象ファイルDSPFFD、DSPPFM、キー項目、論理ファイルを確認する
抽出条件日付、締め状態、取引先、状態区分を確認する
出力形式CPYTOIMPF、CSV、固定長、Excel取込方法を決める
文字化けCCSID、区切り文字、ゼロ埋め、日付形式を見る
情報管理個人情報、取引先情報、送付先、保存期間を確認する

まとめ

AS400のデータ抽出は、目的、対象環境、ファイル、条件、必要項目、出力形式、保管期限を決めてから方法を選びます。少量の確認はDSPPFM、条件付き参照はQueryやSQL、CSV出力はCPYTOIMPFが候補です。抽出件数と内容を検算し、受け渡し後の削除までを一つの作業として管理してください。