AS400 / IBM i は、取引先とのEDI、FTP、CSV、外部システム連携で使われることが多くあります。連携トラブルは、AS400側の処理、ファイル転送、文字コード、取引先側の取込、業務締め処理が絡むため、原因を一つに決めつけると時間がかかります。
外部連携で見る順番
| 確認 | 見るもの | 判断 |
|---|---|---|
| 作成 | AS400上の出力ジョブ、スプール、ログ | 送信前ファイルが作られたか |
| 配置 | IFS、送信フォルダ、更新時刻 | 正しい場所にあるか |
| 転送 | FTPログ、送信時刻、リターンコード | 取引先へ届いたか |
| 形式 | CSV、固定長、文字コード、改行 | 取込できる形式か |
| 取込 | 取引先結果、外部システムログ | AS400後の失敗か |
AS400側で作成済みでも完了ではない
連携では、AS400側でファイルが作成されていても、FTPで送れていない、文字コードで弾かれた、取引先側で取込エラーになった、ということがあります。作成、配置、送信、受信、取込を分けて確認します。
締め処理との関係を見る
請求締めや出荷確定と外部連携がつながっている場合、再送や再取込の判断を誤ると二重計上や未送信につながります。送信済みデータ、取込済みデータ、締め済み状態を確認してから対応します。
外部連携の関連手順は、目的別に次から確認してください。
- IFS(統合ファイルシステム)・FTP・CSV: AS400 IFS・FTP・CSV連携トラブル
- データ抽出: AS400データ抽出依頼の確認手順
- 二重送信・未送信: AS400出荷データ二重送信・未送信の調べ方
- 再送判断: AS400外部連携データを再送する前のチェックリスト
Codexで連携フローを整理する
Codexには、匿名化した連携フロー、ファイル形式、発生時刻、確認済みログだけを渡すと、どこで止まったかを整理しやすくなります。取引先名や実データは入れず、再送判断は人が行います。
EDIは相手先が絡むため、技術確認と業務影響を分ける
EDI障害は、AS400側のジョブが正常終了しているだけでは完了と言えません。相手先が受信したか、取込できたか、出荷・納品・請求締めに影響するかを同時に見ます。ここを分けずに再送すると、二重送信、未送信、相手先処理の停止につながります。
- AS400側でファイルが作成済みかを見る
- 送信先、送信日時、件数、キー項目を残す
- 相手先が未受信、受信済み、取込エラーのどれかを分ける
- 再送してよいデータか、締め後に触るデータかを業務担当者と確認する
- 本番データを直す場合は、更新前データと承認を残す
再送前に確認する判断表
| 確認すること | 見る理由 | 次の判断 |
|---|---|---|
| AS400側の出力 | ファイル作成前で止まったのか、送信後の問題かを分ける | ジョブログ、MSGW、出力先を確認する |
| 相手先の受信状態 | 再送してよいか、二重送信になるかを判断する | 未受信、受信済み、取込エラーを分ける |
| データ種別 | 受注、出荷、請求で影響範囲が変わる | 業務担当者と締め・納品影響を確認する |
| 再送キー | 対象範囲を曖昧にすると別データまで流れる | 相手先コード、伝票番号、件数を控える |
| 更新前後の証跡 | 戻しやリランの判断材料になる | 必要に応じてDSPJRNやバックアップを確認する |
取引先へ確認する前にそろえる情報
EDI障害では、相手先へ問い合わせる前にAS400側で分かる情報をそろえておくと、再送してよいか、相手先側で止まっているかを早く切り分けられます。
| 情報 | 見る場所 | 目的 |
|---|---|---|
| 送信日時・件数 | ジョブログ、送信ログ、出力ファイル | 相手先の受信件数と照合する |
| キー項目 | 伝票番号、相手先コード、ファイル名 | 対象データを絞る |
| 処理状態 | 未作成、作成済み、送信済み、取込済み | 再送か取込確認かを分ける |
| 業務影響 | 出荷、請求、締め、納品 | 急ぐべきか、止めるべきか判断する |
EDI障害で先に読む記事
障害の入口がどこかで、次に見る記事を変えます。テストデータ、本番再送、相手先連絡、MSGW(メッセージ応答待ち)、ジョブログ、更新前後の確認を分けて読むと、復旧判断がぶれにくくなります。
- EDIでテストデータを本番送信しないチェックリスト
- EDI再送判断チェックリスト
- AS400販売管理システム保守ガイド|受注・出荷・在庫・売上・請求で見るポイント
- AS400 MSGWの確認手順
- ジョブログを読む順番
- DSPJRNで更新履歴を確認する
現場メモ:相手が悪くても、まず基幹側が疑われる
EDIのトラブルでよくあるのが、相手先が原因でも基幹側が疑われるという構図です。これは誰かが意地悪をしているわけではありません。手元にあって、すぐ見に行けるのが基幹だからです。相手先のシステムは見られないので、消去法でこちらから調べることになります。
だから、疑われること自体は避けられません。大事なのは「こちらは正しく送っている」を短時間で示せる状態にしておくことです。ここで手間取ると、原因の切り分けが始まる前に時間だけが過ぎます。
何を出すかは、そのシステムの作りによります。FTPで転送しているならFTPのログ、HULFTのような転送製品を使っているならその製品の転送履歴、あるいは転送を実行したジョブのジョブログを提示します。
「こちらは送っている」を示すために出すもの
疑われた時に出す材料は、システムの作りで変わります。自分の環境ではどれが残るのかを、平常時に確認しておいてください。
| 転送の方式 | 見るもの | 確認する内容 |
|---|---|---|
| FTP | FTPのセッション出力 | 接続できたか、転送が成功で終わったか |
| HULFTなどの転送製品 | 製品側の転送履歴 | 配信・集信の結果と時刻 |
| いずれの場合も | 転送を実行したジョブのジョブログ | 正常終了か、エラーで抜けていないか |
相手先に「そちらで確認してほしい」と言うためには、最低限これが揃っている必要があります。
- いつ送ったか(日時。相手先の受信時刻と突き合わせる)
- 何を送ったか(ファイル名、対象の範囲)
- どこへ送ったか(接続先。宛先違いはここで分かる)
- 何件送ったか(件数。届いた件数と比べられる)
- 結果はどうだったか(正常終了しているか)
送信100件・相手側取込98件という差は、調べる区間を絞る材料です。ただし、件数だけで相手側の責任とは決められません。同一の送信ファイルか、業務キーが一致するか、重複排除・エラー除外・部分受領・再送がないかを双方の記録で照合します。こちらの送信が98件の場合も、抽出条件だけでなく元データ、生成処理、送信結果まで追います。
FTPで転送している場合、ログはどこに残っているか
バッチでFTPを流している場合、IBM公式のサンプルは次の形になっています。
PGM OVRDBF FILE(INPUT) TOFILE(ITSOLIB1/QCLSRC) MBR(FTPCMDS) OVRDBF FILE(OUTPUT) TOFILE(ITSOLIB1/QCLSRC) MBR(OUT) FTP RMTSYS(SYSxxx) ENDPGM
INPUT にFTPのコマンドを並べたメンバーを割り当て、OUTPUT にFTPのメッセージが書き出されます。つまり、この OUTPUT に指定されたメンバーが転送の記録そのものです。自分の環境でどこに割り当てられているかは、転送を動かしているCLソースを見れば分かります。
ここに落とし穴があります。毎回同じメンバーに上書きしている場合、次の転送が走った時点で前回の記録は消えます。問い合わせが来るのは翌日以降であることが多いので、見に行った時にはもう残っていない、ということが起こります。
日付を付けて残す、一定期間分を保持する、といった作りになっているかを平常時に確認しておいてください。障害の日に確認することではありません。
なお、ILE CLで書く場合は OVRDBF に OVRSCOPE(*CALLLVL) を付ける必要がある点が、IBMのサンプルにも注記されています。活動化グループの扱いで上書き指定の有効範囲が変わるためです。
相手先が原因だった時に多いパターン
- 相手先のフォーマットが変わっていて、こちらには連絡が来ていなかった
- こちらは送信できているが、相手先の取り込み処理で落ちている
- 相手先の受信フォルダーは合っているが、その先の処理が動いていない
- 相手先の締め時刻を過ぎていて、次回扱いになっていた
いずれの場合も、こちらの転送記録が出せれば切り分けは早く終わります。逆に出せないと、原因が相手先にあっても、こちらの調査から始まります。記録を残す作りにしておくこと自体が、障害対応の時間を決めています。
取引先にデータが届かない時の想定例
取引先から未着連絡があった場合、すぐ再送せず、AS400側の作成、転送、相手側受領のどこまで進んだかを確認します。
| 確認点 | 確認内容 | 判断 |
|---|---|---|
| 作成 | 対象伝票、送信ファイル、作成時刻、件数、ステータスを確認する | 送信対象外と作成失敗を分ける |
| 転送 | FTPや連携ジョブのログ、ファイル名、送信結果、応答を確認する | 接続成功だけでファイル受領済みと判断しない |
| 相手側 | 受領確認、取込結果、重複判定キー、再送可否を確認する | 相手と合意せず同じデータを再送しない |
再送する場合は、対象キー、前回送信時刻、相手側状態、二重計上防止策を記録します。AS400側の再送完了だけでなく、相手の取込結果まで確認します。
境界の話は、最後まで誰の担当か決まらないまま流れることがあります
相手先のベンダーと自社側で、どちらの担当か決まらないまま止まる案件があります。調べれば相手側の問題だと分かっていても、押し付け合いをしている間に業務は止まったままです。
私が関わった案件では、最終的に基幹側でなんとか対応しました。本来の担当ではありませんが、止めておくよりは早いという判断です。結果としてお客様には恩を売る形になりました。
きれいな話ではありません。ただ、境界が曖昧なまま放置される案件は実際にあり、動ける側が動いた方が、後々の関係も含めて得になる場面があるのは事実です。その代わり、どこまでを引き取ったのかは記録に残しておかないと、次から当然のように回ってきます。
