Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

折込み済みの設計なのか考慮不足の設計なのか~普通に起こりうる異常系の設計

プリンタ出力は原則的にスプーラ経由で印刷します。汎用機の時代からそうですね。Portsを突っついて直接印字のニーズは未だあるのかなぁ。DOS時代に経験しましたが....
純な機械物なので、ジャムったり、インク切れやインクリボン切断や紙切れによる打ちなど、異常系の発生しやすい出力デバイスです。
・データの出力で一度印刷したら、印刷済みマークや発行回数の欄を付けて、チェックしたりインクリメントしたりしています。
印刷済ならば、タイトルのみ右に"再発行"と印字する仕様です。
請求書印刷などで要望があったようです。印刷処理が走ると発行フラグを更新にする仕組みで設計/実装されてました。
ジャムッたら、"再発行"が印字されます。
 私は、プログラムで状況把握できない動作が処理に介入する場合は、自動化するのは良しとしません。なので、発行済み欄は自動更新項目にするのはイヤです。
それ以前に、発行済み欄が必要かどうかも疑問だったりします。必要なケースもあるのでしょうが。人的にチゥックしてました。

良しとする設計者の意見を聞くと。
「 正常に印刷されるのが正常系で、プリンタ不調は捜査員は認識できるので、印刷済マークを解除すれば良い。」
「"再発行"の文字が出ていても不都合でない」
「印刷トラブルの発生率は低いので考慮は不必要」
うーん。そんなレベルの設計でいいの?

普通に起こりうる異常系は設計でカバーしたほうがいいです。ネットワークプリンタが普及しているのでなおさらです。
プリンタ機種に依存しますが、A3,A4,B4 が印字可能でも A3のカセットがセットされていないとき、発行したPCにメッセージが戻らず、プリンターが A3のカセット交換のメッセージを出して、止まる機種があります。
ピーピー啼いて煩いです。中には処理キャンセルボタンを押して、クリアする人までいます。何度印刷を消されたか...,<-  違う!
違う事例ですが、DataBaseのテーブルには大概更新日時欄を設定しています。普通はサーバー日付をDefaultで設定するものですが、ベタにコーディングする人はプログラムで 更新日付= now  とクライアント日付で更新したりします。
設計基準で決めることでしょうが、考慮されていないことが過去にありました。クライアント日付は当てにならないという認識が薄い設計者もいますね。
過去日や未来日に設定しているクライアントも普通に存在し得る事です。
まぁ。どこまでが正常な異常系かの線引きは難しいのですが、......

投稿日時 : 2008年2月19日 14:49

Feedback

# re: 折込み済みの設計なのか考慮不足の設計なのか~普通に起こりうる異常系の設計 2008/02/20 0:13 裏口

>普通に起こりうる異常系は設計でカバーしたほうがいいです。

普通はそうします。

昔受託システム運用してた時は、打出制御のみ顧客先で出力指示しウチのプリンタで印字するケースがありました。
その際は、一旦スプールファイルに帳票イメージを出力して別の仕組みでプリントアウトしてました。
要するに1度しか印字できないケースでも全く同じ帳票を再印字可能な仕様。
# 出力した帳票を輸送する途中の事故にも対応可能にした
# のが幸いして、トラックの事故があった際でも問題なく
# 再印字帳票が1日遅れで届きました。

>どこまでが正常な異常系かの線引きは難しいのですが

同意www

# re: 折込み済みの設計なのか考慮不足の設計なのか~普通に起こりうる異常系の設計 2008/02/20 0:57 Ognac

コメント、ありがとうございます。
WindowsのSpoolerのイメージは癖が強いので、コメントのようにうまくいかないかも....それゆえに、PDFでの受け渡し文化が必要になったのかも知れません。
 しかし、この運用では、本文の業務要件である「一度のみ正規印字する」は満たせません。 この要望は実装不能と私は考えています。解決策ってあるのかしら。

タイトル
名前
Url
コメント