(備忘録) 「おてがる通販」(旧バージョン)
- (2013-11-12 09:02:35)
Win7では動作しない旧バージョン?
メーカーはWin7では旧バージョンは動作しないと公表している(一言だけの言い切り)。原因や不具合の内容は公開されていないので検証できない。 ちょっとテストした範囲なら動作している。使っていると不具合出るのかな?
2013/11/12
配送業者を指定しない場合の「配送業者」
配送業者を指定しない場合の「配送業者」 → おてがる通販 → 各種設定 → 環境設定 → その他設定 → 受注情報の初期情報
ここで指定する。
この指定はdbの「14環境マスタ」テーブルに保存される。
2012/06/17
10年目にわかった取込エラーの原因
昔からたまに発生するトラブルがあった。その場限りの対応が可能だったので直さないまま、持病のような感じで長年お付き合いしているトラブルだ。今日は土曜日で時間が取れたので、ついに徹底的にエラー再現テストをやってみた。10年ぶりのトラブルシューティング。
まれに発生する取込エラー
ごくまれに取込エラーを起こす。その原因は不明だったが、傾向としてコメントが長い場合に発生する。しかし、一律に発生するわけではない。
コメント欄のデータタイプを「メモ型」にすると文字数制限はないはずだが、それでも取込エラーを起こすことがある。
切り分け
今日、例のトラブルが発生した。今日はどこでエラーを起こしているか徹底的に調べてみた。その結果、コメント欄で起きていることはすぐに切り分けが付いた。
しかし、コメントの何が悪いのか、その後がわからない。
ある文字列でエラーを起こすバグか?
私の推測は:
・ある文字列または文字で、文字化けを起こし、それがたまたま項目を判定する文字列と同じコードになっている。
・ある文字列または文字で、このソフト自体にエラーが発生するバグが存在する。
押してダメなら初心に戻る
エラーを発生させる文字列が特定できない。どうしてもわからない。
こうなれば、初心に返って注文メールの本文がどのように取り込まれていくのか、そのメカニズムを最初から見直してみた。
メールの取込はいったん下記のテーブルに格納される:
・05受信メールデータ
・06受信メール明細データ
・07メール履歴データ
この中で「06受信メール明細データ」の中身を眺めていてふと感じた。
取込の中間テーブルで受ける制限
このテーブルはメール本文のデータが「改行までの複数文を1行として」切り分け、それぞれを「行内容」というフィールドに格納しているもののようだ。
テーブル名から商品明細を格納しているかのような印象を受けるが、商品明細も含め全内容がぶつ切りにされて、ここにぶっ込まれる感じだ。
このフィールドのデータイプは「テキスト型」で文字数制限は「255文字」である。
「01受信データ」に格納されるコメント欄はデータ型をメモ型に変更することで、たしかに字数制限を受けないが、この「行内容」のフィールドで字数制限を受けていることになる。
これはマニュアルにもドキュメントにも書かれていない制限である。
つまり、コメント欄は字数制限がなくとも、「1行」の文字数が255文字以上であれば、取込エラーとなることを意味する。このように判断すると今までの奇怪な現象も説明できる。
解除方法
「06受信メール明細データ」の「行内容」フィールドのデータ型を「テキスト型」 → 「メモ型」に変更。
「メモ型」にすることでデータベースの容易な肥大化が予想されるが、当社の場合、このテーブル内容は定期的に全削除しているので問題ない。
10年目の解決
これに気づくのに10年を要した。感無量だ。
<< なくしたサイトのhtml再現、Googleキャッシュ< | >リサイクルドラムの今回の寿命は8ヶ月 >>