こんばんは。
少し疲れて。缶ビール1本で眠くなって、少し横になっていたのですが。
まだ終わっていませんでした。
【まだ終わっていませんでした】
帰宅してからも、SN次長から電話があり、
「提案した方法でも異常終了は解決しませんでした。」と。
でも、私は傍にいないので、出来る事も限られていて。
つい、先ほど(22時30分頃)にも電話をいただいて。
「原因が分かりました。」と言うことで。
本体の基幹システムは、元々は、F社の「汎用機(大型コンピュータ)」で開発されたシステムでした。これが『初代』です。
『2代目』は、メーカーがN社の大型サーバー機に変わり、「マイグレーション」と言う載せ替えが行われました。
これは、プログラムを作り替えず、「非互換」の部分の「代わり」を作成して、F社の「汎用機」と同じ動きをさせる。というもので。
この『2代目』に変わったことで、Webシステムの開発も可能になりました。
そこで出てきた話が、「人事考課」システムでした。
関連する人事・総務系のシステムを担当していたのが、うちの会社で。
うちの会社が請け負う事になりました。
N社のサポートも受けながら、作り上げたのですが。
基幹システムは、『2代目』になっても、『載せ替え』なので、見た目も操作性も「汎用機」と同じになるように作られています。
そのため、横80バイト(半角80文字、全角40文字)×縦24行という範囲でしか画面を作成できません。
「人事考課」システムは、基幹システムの土台を使いながら、新規のシステムで、縦横の制限は設計しだいで、パソコンの画面を縦横はみ出しても、「スクロールバー」が出てきて、マウスで移動できます。
さらに、画面上に多くの「ボタン」や「プルダウン」での選択など、「汎用機」の操作性とは異なる、今、みなさんが使われている、このgooブログの画面の様な操作感覚に近いものです。
開発には苦労しましたが。今では、「欠かせない」システムとなり。
ちょうど今は、「年末手当」の評価に使用されています。年2回の「賞与」の評価。「昇給」の評価。「昇格」の評価。で、年間を通して使用されています。
その後、「教育資格管理」システムを新に作成し。こちらも、日々使用されています。
今回、10月24日に『2代目』から『3代目』に切り替えられ、どちらもN社の大型サーバー機ではあるのですが。
コンピュータの「OS」(オペレーティングシステム)をはじめ、使用してきた様々なシステムが「バージョンアップ」されていて、『2代目』の頃とは「
非互換」の部分も。
そして、一番大きいのが、『端末』となる「パソコン」です。
『2代目』の時のパソコンは「Windows7」。『3代目』は「Windows10」です。
これで、パソコン側で動作する「アプリケーション」自体が、今はサポートされているものではないため、全く別のもので作り直し(移行してから個別に手を入れる)をしました。
先月末から、私が、お客様に戻り、対応しているのが。
この、「パソコン側で動作するアプリケーション」に関する『誤り』の修正のためです。
1か所おかしな部分が出て、その処理を修正したら、「同様の誤りがないか」全て見直しをします。
『もう、他に誤りはありません』を証明するため、調べ、動かし、その証拠(検証物)を残していく。
「人事考課」システムの関しては、期限が明日です。
話は長くなりましたが。
SN次長から連絡があった、今回の「異常終了」の原因ですが。
これはこれで、大変で。
こちらは、基幹システムの話で。
「異常終了」の連絡をいただいて、「異常を起こした」プログラムソース、そのコンパイルリスト。そして、異常の内容を示す「動作のログ」をメールで送っていただいたのですが。
送っていただいたプログラムソースと、手持ちの『2代目』の時のソースを比較ツールを使って比較すると、異なるのは、COBOLという言語のコンパイラの違い(非互換)のための修正だけでした。
プログラムは「親プログラム」と「サブプログラム(子)」で構成され、共通の処理を「サブクログラム」として、多くの「親」から共通で使用します。
『初代』『2代目』のCOBOLコンパイラとも、親子間で情報のやりとりをする「パラメータ」の数は不一致でも動きました。
それが、『3代目』で使用するCOBOLコンパイラでは、その「パラメータ」の数が一致していないと動作しません。そのための対応を行っていたのですが。
修正は、それに関するものが1か所対処されていただけだったので、その対処方法の誤りかと疑ったのですが。(それしか、想定できなかったので)
ところが、原因は別で。
どれだけ使用されているかは分かりませんが、元々『初代』のF社の「汎用機」でメーカーから提供されていた、「半角→全角変換」の「サブプログラム」があるのですが、それをN社が、N社用に作り替えていました。
今回の原因は。
その「サブプログラム」も、『本当はパラメータの数が違っていた』のが原因でした。
これは、『2代目』から『3代目』に変わる時の「非互換」の対象としてあがっていなかった。という問題と。
今回の「異常」を起こした「オンライン」画面のプログラムが、『テストが不十分だった』という問題があります。
残念ながら、今回の事象は、「異動処理」の中でも、一番基本的なもので、「転勤」と「昇格・昇給」の組み合わせの入力でした。
発覚していしまった以上、大問題になる可能性があります。
「非互換」を見逃した。
「テスト」が足りていなかった。
これでは、『他は大丈夫なのか』になる大問題に発展する可能性も。
私は、この「テスト」には参加していませんでした。
ただ、この「異動処理」や、I君が担当した「人事考課」「教育資格管理」システムなど、『操作を知っている』人が少ないんです。
なので、今回のお客様での「人事考課」「教育資格管理」の見直しでも、動かせる人がI君だけでは足りないので、私が(操作を知っている)「動かす」担当として参加しています。
今回の「異動処理」も、私は10年以上携わっていた部分ではあるのですが。
私は、お客様で新しい「システム改修」を担当していたため、『3代目』に参加する余裕もなく。
更には、同じN社のシステムということもあり、「費用面からも『テスト』を省略している部分もあり」。メーカーからの「非互換情報」をもとに、主に、それにかかわる部分の「テスト」は行っていたのですが。「操作を熟知、慣れている、知っている」人の参加ではなく。です。
今回の「異常終了」の原因が。
『個別の問題』として扱われるか。『3代目』全体の問題として扱われるかで、明日以降に大きな対応の差がでます。
お客様でも、「リモートワーク」が進められていますが。「リモート」で対応できる範囲で済むか。
もう、すでに「切替」は済んでいて、後戻りはできません。
まだまだ、問題は続くかも。
とりあえず、私は明日も「人事考課」「教育資格管理」システムの『間違い探し』です。
こんな時間になりました。
では、また。