職業プログラマの休日出勤

職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。

PCdesk(eLTAX)の「MCA061E」エラーと、その対応

eLTAXとは、地方税に関する申告とかをするためのシステムの名称です。このシステムを利用者の立場で操作するためのアプリケーションは色々あるのですが、紙で処理する場合や民間製のソフトウェアを有償で使う場合を除くと、多くの方々が謹製かつ無料の「PCdesk」を利用しているだろうと思います。
今回、毎年1月に実施している 給与支払報告書 の提出や 償却資産税 の申告をするためにPCdeskを使っていたところ、見慣れぬエラーが出て作業が停止した、ということがありました。
本来ならPCdeskの開発元に不具合報告するだけで済む話ですが、これらの提出書類は提出期限が迫っていることから、公開するに値する情報であると判断し、ここに公開します。筆者自身も後で不具合報告をします。

なお、他の記事(というか筆者の記事に限らず、世の中のブログの大半)と同様に、この記事に沿った結果として読者に損害が発生したとしても、筆者では責任を負うことはできません。何か試す際は自己責任で。真面目な話をすると、データのバックアップを取って、リストア手順も確認してから、ということで。

前提

この記事は、PCdesk(Web版) の話ではなくて、PCdesk(DL版) の話です。DL版のことを以下では単に「PCdesk」と言います。
OSはWindows10です。

作業手順と結果

恐らくこれは再現手順ですが、全く同じ手順を再度試すことは非常に面倒なため、再現確認は取れていません。

  • 2021年12月7日(火)時点の最新バージョンのPCdeskにて 給与支払報告書 および 償却資産税の申告書 を作成する(署名とかはしない)
  • (この間、作成した申告書を税理士の先生にレビューしてもらっている)
  • PCdesk2021年12月9日(木)18:05頃にビルドされたバージョン 6.57.2021.1213 にアップデート
    • 注1 : バージョン番号から、恐らく、リリースされたのは2021年12月13日なのではないかと推測できる。
    • 注2:公式のお知らせでは、リリースされたのは12月8日だということになっているが、これとは食い違っている。
  • アップデートされたバージョンで、作成中になっている書類で作業をしようとする。その結果…
    • 給与支払報告書 : 開くときに MCA061E のエラー システムエラーが発生しました。処理を終了します。(繰り返しこのメッセージが表示される場合はeLTAXホームページよりお問い合わせください) が表示され、閲覧することすらできない
    • 償却資産税の申告書 : 署名するときに(以下同文)

これだけのエラーメッセージでは原因が何であるのかさっぱりわかりませんでしたので、ネット上の情報をあたることにしました。

ググって得られる情報

筆者がググった時点では、一番上に出てきたのは「PCdesk(DL版)別冊エラーメッセージ集」のPDFファイルでした。

このPDFファイル内の MCA061E の情報を見ると、以下のような記述がありました。↓の画像は、上記のPDFの一部分です。

f:id:t_motooka:20220104211117p:plain
MCA061Eの説明

まあ要は「ログをみてね」ということです。ログを見ると…

償却資産税の申告書

この申告書に署名を付与しようとした際のログは、次のようなものでした。

WriteExceptionLog Error: 0 : 2022/01/04 18:45:33.997	6.57.2021.1213	GND01010	System.Xml.XmlException: ルート要素が見つかりません。
   場所 LtnMainUI.frmGND01010.CallGrantSingnature()
   場所 LtnMainUI.frmGND01010.BtnGrantSignature_Click_FunctionBtn(Object sender, EventArgs e)

このExceptionの命名は、 .NET 系のものでしょう。償却資産税の申告書をXMLで保存していて、それがPCdeskのバージョンアップの際に壊してしまったのだろうか?と最初は推測しましたが、PCdeskでは申告書そのものを開くことは可能だったので、どこか別のものが壊れていた可能性があります。
償却資産税の申告書は、以下の手順を踏むことで署名可能となり、送信することもできるようになりました。

  • 申告書のどこか1箇所を書き換えて元に戻す
  • 申告書を保存する

この挙動を見ると、やはりXMLで保存していた申告書データのXML構造が壊れていたのでは?と思ってしまいますが、なぜ開くことができるのかは謎です。もしかすると、申告書を開く時と署名を付与する時とでparserの実装が異なるとか、そういうことかもしれませんが、真相はわかりません。

給与支払報告書

この書類を開こうとしてエラーが出た際のログは、次のようなものでした。

WriteExceptionLog Error: 0 : 2022/01/04 18:46:53.824	6.57.2021.1213	GND02010	System.Xml.XmlException: ルート要素が見つかりません。
   場所 XmlCommon.XmlCommon.Load(String pfPath)
   場所 LtnMainUI.frmGND02010.ShinkokuDataFilePathList.GetCurrentShinkokuDataXc()
   場所 LtnMainUI.frmGND02010.SetInit(PE_INPUTMODE iMode, Boolean bNT_Flg)
   場所 LtnMainUI.frmGND02010.frmGND02010_Load(Object sender, EventArgs e)
WriteExceptionLog Error: 0 : 2022/01/04 18:46:55.412	6.57.2021.1213	GND02010	System.Exception: 様式リレーショナルマネージャが生成されていません
   場所 LtnMainUI.frmGND02010.GetIsUpdatedShinkokuDataXml()
   場所 LtnMainUI.frmGND02010.frmGND02010_Closing(Object sender, CancelEventArgs e)

エラーが2回出ています。エラーを知らせるダイアログも2回出ていました。「様式リレーショナルマネージャ」というのは一般的な技術用語ではないので、PCdeskの内部用語なのでしょう。名前から推測するに、ある様式(テンプレのこと)のバージョン同士の関係性を定義し管理するものではないかと思われますが、そんなもの利用者の立場では知ったことではありません。
償却資産税の申告書と同様の対処をしようにも、そもそも開くことができないので無理です。これは本当にXMLが壊れているのでしょう。

どうしようもないので、諦めて給与支払報告書をイチから作り直したのですが、そこでもう一つの落とし穴がありました。

重複作成の制限

PCdeskで給与支払報告書を作成する際、一つの年度・一つの提出先(自治体)宛て の報告書は、1つしか保存することができません。
後から作成した給与支払報告書で壊れたデータを上書きしようとすると、内部的には壊れたデータを開こうとしてしまうのか、途中でエラーになります。つまり、後から作成した給与支払報告書を保存することはできません😇

なので、初めに壊れたデータを削除してから、給与支払報告書の入力を開始することが必要です(筆者の手元の事例においては)。
というわけで、筆者は今日だけで2回も給与支払報告書をPCdesk上で作成したのでした。昨年12月に作成したのを含めると、3回です。トホホ…😓

まとめ

  • まずはログを見よう
  • 保存しなおすだけで上手く行くケースがある
  • あきらめてデータをイチから作るときは、給与支払報告書の重複作成の制限に注意