「日付は、和暦で!」
日本において「年の表記」は複雑だ。つまり、行政や学校では「2016年」とは言わない。あくまでも今年は「平成28年」なのだ。『住民票』であれ『戸籍謄本』であれ、ハタマタ『卒業証書』であれ、、、少しでも重みある書類には「和暦」が記入される。
しかし、現実、、、「ことしは平成28年!」と即答できる日本人は少ない。。。
とは言え、この「数十年に一度、元年(1年)にリセットするという仕組み」は、もう1400年以上も続いている。時の政府の一存で止めてしまえるものでもないのだ。。。(そして、現在の天皇が亡くなった日には、また新しい『元号』が発表されるハズだ)
以下のワークフローは『在職証明書』の発行フローだ。
上流工程で在職者の「氏名」や「生年月日」が入力され、フロー途中の[自動工程]で証明書 PDF が自動生成される仕組みとなっている。特筆すべきは「生年月日」や「証明書発行日」などの日付データが自動的に和暦に変換される点だ。たとえば『卒業証明書』や『保護者だより』のなどの発行フロー等にも転用できるだろう。
[証明書発行フロー]
「データを管理する視点」と「和暦で表記する視点」の相性は悪い。
この例でも、「生年月日」の入力にはカレンダー入力となるが、入力時点での表示は西暦で表示されている。もし、社員データベースなどと連携させるとしても、生年月日は西暦で格納されている。日本中の事務作業の現場には、西暦と和暦を変換するための「早見表」があり、人手で変換されているのが実情だ。しかし、非常に手間がかかる上に、ミスも多発する。
この[スクリプト工程]を配置すれば、和暦変換早見表が要らなくなる。
ちなみに、1989-01-07 というデータは「昭和64年1月7日」と表示され、1989-01-08 というデータは「平成元年1月8日」と表示される。つまり「改元」の日も自動判別される。(1月7日までは「昭和64年」だが、同じ年の1月8日以降は「平成元年」になる)。同様に「昭和」や「大正」も日付をもとに自動変換される。(「平成生まれ」が多くなってきた昨今においては「どうでも良い話」ではあるが…)
- 1900-01-01: 明治33年1月1日
- 1912-07-29: 明治45年7月29日
- 1912-07-30: 大正元年7月30日
- 1926-12-24: 大正15年12月24日
- 1926-12-25: 昭和元年12月25日
- 1989-01-07: 昭和64年1月7日
- 1989-01-08: 平成元年1月8日
ところで、クラウド型ワークフロー『Questetra BPM Suite』においては、「1900年1月1日以前の日付データ」は日付型としては処理できない(システム制約)。つまり、「明治元年の頃」を指す西暦データは管理できないし、和暦への変換もできない。
もっとも、、、日本においては1872年(明治5年)まで「太陰太陽暦」(旧暦)が採用されていたため、すでに「西暦」(グレゴリオ暦)でのデータ管理が通用しない。たとえば、江戸城の無血開城直後に発布された「明治政府の基本方針」(政体書)は「慶応4年の閏4月21日」(うるう月)に発布されているが、それを「1868年6月11日」として管理する意味はない。
[証明書発行フロー:「1.証明内容の入力」画面]
▼スクリプト工程『和暦変換』の設定 (サーバサイド JavaScript)
//// == ワークフローデータの参照 / Retrieving == var birthDate = data.get( "4" ); var hireDate = data.get( "7" ); var issueDate = data.get( "12" ); //// == 演算 / Calculating == var locale = new java.util.Locale( "ja", "JP", "JP" ); // 言語コード、国コード、バリアントコード // バリアント "JP" で明治以降の日付は元号表記になる var japanFormat = new java.text.SimpleDateFormat( "GGGGyyyy年M月d日", locale ); // 「G」が1~3個の場合:「H」「S」のようにアルファベットで表示 // 「G」が4個の場合:「平成」「昭和」のように漢字で表示 // 「y」が4個の場合:「1年」を「元年」で表記 birthDateJa = japanFormat.format( birthDate.getTime() ); hireDateJa = japanFormat.format( hireDate.getTime() ); issueDateJa = japanFormat.format( issueDate.getTime() ); //// == ワークフローデータへの代入 / Updating == retVal.put( "5", birthDateJa ); retVal.put( "8", hireDateJa ); retVal.put( "13", issueDateJa );
<データ項目一覧画面>
[雛形ダウンロード (無料)]
- 業務テンプレート:証明書発行フロー
- 採用プロセスの標準化、注意すべきポイント (2014-04-28)
- マイナンバー制度をワークフロー化する(5) (2015-07-13)
- 「就活の倫理憲章」の廃止にあわせた採用業務プロセス改革 (2013-07-08)
- M230 自動工程: 業務データの複雑なデータ加工が自動実行されるように設定する(ECMAスクリプト) (使い方)
- M228 自動工程: 業務データを挿し込んだPDF帳票が自動生成されるように設定する (使い方)
- M401 業務の流れ: 申請と差戻対応の工程を分け “手戻り” をモニタリングしやすいように設定する (使い方)
[英文記事 (English Entry) ]
0 件のコメント :
コメントを投稿