kaichosanの日記

97~07年まで元Zaurusユーザーだった、フリーランスで流浪してる映像編集マンの雑多な日記です

 整合性不具合発見 17:20

 作者の柔王丸さんに確認しつつ、その挙動を注意していた「貧乏人の手帖」だけど、やっぱりデータ管理画面の“旧データの取り込み→切り離し”で問題が起きた。2003年分の家計簿データなどをMI系の「お金持ち倶楽部」から移行させて使っているユーザのみ、2005年現在の残高合計が狂ってしまうというものだ。
 そもそも、これは大量のテキストデータをPerlApacheで処理するには限界があるため、前年度分を一括データにまとめて保存できる機能なのだが、2年分以上を表示〜切り離しするのは、今回が初めての経験となる。
 今日、今年初めて「貧乏人〜」を動作させ、2003年分を取り込み、2003年と2004年分を切り離したところ、2004年末の残高より現金(財布)の残高が40万円ほど増えてしまった。一瞬、「お?ラッキ〜(*^ー^*)」などと思ったが、もらってないものが増えている訳がない。どこかで要らないモノを合算している・・・ということは、すぐに予想できた。
 過去に開発途上で、何度もトラブルに遭遇した経験がココで活きた。思いつく箇所を調べてみたら、案の定、二重帳簿になっていた。それを削除するだけで、元どおり、整合性の取れた残高になったので、その方法を記しておく。


1.各口座に「2005年1月1日以降」にデータを作成
  →適当な項目に出納内容を登録すればいい
2.口座設定や項目設定で「表示しない」にしてある
  「口座・項目」を「表示する」に変更
3.データ管理画面でバックアップしたのち、
  最下部の「旧データ取り込み」で全データをいったん取得する
4.a.この時点で、2003年分のデータがないユーザには
   問題は起きないはず。このまま、再度切り離して下さい。
   お付合い、御苦労様m(_ _)m(笑)
 b.2003年分のデータがあったユーザは、残高か狂っている・・・
   これを解消した後で「データ切り離し」を行えば、
   データ量*1が2005年分だけになる。



 で、残高不整合の原因は、2004年1月頭にある自動繰越し、もしくは前年繰越しが二重になっていることです。かつてのお金持ち倶楽部は、各月で個別決算をしていたのですが、貧乏人〜は、登録開始日から現在までをすべて計算しているので、繰越し処理は自動で行われます。このため、旧データを取り込んだ時に2003年→2004年に繰越した金額が二重になるものと思われます。もし、ひとつでも二重繰越しが存在すれば、すべての口座について存在してますので、それらを全部削除して下さい。そうすれば、すべての口座について、残高の整合性が元に戻るはずです。
 この件は、まだ作者さんには報告していないので、万が一、このトラブルに見舞われた方は参考にして下さいm(_ _)m まあ、たぶん近いうちにこの記事を読んで対応してくれるんじゃないかと思うけど・・・・・え? 知らせろって?(^-^;
 ちなみに、今年最初の登録は、「健康保健任意継続料」と「缶コーヒー」でした(笑)

*1:僕の環境では、1ページ20行表示状態で、2003年で55ページ、2004年で52ページの現金出入りがあったため、sizeが“14万”という桁を越えていた