3.3.3 変換フォーマットを検討する

ここでは,メッセージの変換フォーマットを定義するときに検討する内容について説明します。

<この項の構成>
(1) 基本フォーマット
(2) フィールド
(3) 変換フォーマット

(1) 基本フォーマット

変換対象のメッセージの変換内容を決めたら,変換の準備としてメッセージの基本フォーマットを定義します。基本フォーマットは1個のイベントソースに対して1個定義すれば,同じイベントソースのすべてのメッセージに対して適用されます。

図3-7 基本フォーマットを定義するイメージ

[図データ]

基本フォーマットの定義で分割できる種別を次の表に示します。

表3-5 基本フォーマットの種別

項番種別例・説明
1メッセージテキスト「システムエラーが発生しました」のようなメッセージ本文の情報
2メッセージID「KNAH0001-I」のようなメッセージIDの情報
3日時日付(年/月/日)と時刻(時/分/秒)を合わせた情報
4日付日付(年/月/日)だけの情報
5年だけの情報
6月だけの情報
7日だけの情報
8曜日曜日だけの情報
9時刻時刻(時/分/秒)だけの情報
10時だけの情報
11分だけの情報
12秒だけの情報
13情報フィールド
1~15
日付,メッセージID,メッセージテキスト以外の情報(15個まで定義できる)。
  • ホスト名
  • プロセスID
  • スレッドID
14ユーザー定義情報フィールド 1~15ユーザーが設定した任意のフィールド。
  • ホスト名
  • プロセスID
  • スレッドID
注※
09-10より前のバージョンのJP1/IM - MO Assistantを09-10以降のバージョンのJP1/IM - MOへ接続するとユーザー定義情報フィールドは空白で表示されます。

なお,日付の情報は,出力される形式が「YYYY/MM/DD」,「YY/MM/DD」など,さまざまです。この形式を統一するために種別と合わせて形式を定義します。元のメッセージの日付形式に合うものを次の中から選んで定義します。

表3-6 日付情報の形式

項番種別形式例・説明
1日時YYYY/MM/DD hh:mm:ss2006/02/08 13:41:00
2YYYY-MM-DD hh:mm:ss2006-02-08 13:41:00
31970/01/01からの経過秒数※1
4日付YYYY/MM/DD2006/02/08
5YYYY-MM-DD2006-02-08
6YY/MM/DD06/02/08
7DD/MMM/YYYY08/Feb/2008
8時刻hh:mm:ss13:41:00
9hh:mm:ss.sss13:41:00.000
10hh:mm:ss.ssssss13:41:00.000000
11曜日DDD (英字3文字)Mon/Tue/Wed/Thu/Fri/Sat/Sun
12漢字1文字月/火/水/木/金/土/日
13YYYY2006
14YY※2西暦下2けた
(例)06,6
15MM※2半角数字で表される月
(例)2,10
16MMM(英字3文字)Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Nov/Dec
17DD※2半角数字で表される日
(例)2,10
18hh※2半角数字で表される時
(例)5,11
19mm ※2半角数字で表される分
(例)5,30
20ss ※2半角数字で表される秒
(例)5,30
21ss.sss(例)00.000
22ss.ssssss(例)00.000000
注※1
フィールドで指定できる日付形式はこれだけです。
注※2
日付情報が1けたと2けたのどちらの場合もこの項目で指定できます。

基本フォーマットを要素ごとに分割する方法は,メッセージによって異なります。

基本フォーマットを分割する方法は推奨する順に次の三つです。

バイト単位で分割する場合の注意事項
バイト単位で分割する場合は,次のことに注意してください。
  • 日付情報が1けたと2けたの両方で出力される場合は,文字列で区切ってください。
    例えば,2009/1/11や2009/10/1のように,月または日が1けたで出力されるメッセージの場合,バイト単位で分割すると,バイト数にずれが生じます。このため,文字列で分割するようにしてください。
  • メッセージ中にマルチバイトコードの文字列がある場合,1バイトコードは1バイト,2バイトコードは2バイトでカウントしてください。
  • メッセージ中の空白(半角スペースおよび全角スペース),または0x00~0x1F,および0x7Fの制御コード(タブ文字,改行コードなど)もバイト数でカウントしてください。

(2) フィールド

基本フォーマットを定義したら,基本メッセージに埋め込みたい属性があるかを検討します。要素を追加するとメッセージのフォーマットが統一できる場合や,ビューアーでの監視に必要な情報をメッセージに埋め込みたい場合はこの項目を検討してください。基本メッセージに埋め込む属性とは,JP1イベントのメッセージ属性に含まれていない属性の中で,ビューアーでの監視の際にメッセージに出したい情報を含む属性です。これをフィールドと呼びます。

図3-8 フィールドを定義するイメージ

[図データ]

図の場合は,ビューアーのメッセージに「日時」情報を出すために,JP1イベントの「登録時刻」属性をフィールドに定義しています。このようにメッセージに必要な情報を埋め込むとビューアーでの監視がしやすくなります。

(3) 変換フォーマット

基本フォーマットを定義したら,次に変換フォーマットを定義します。

変換フォーマットは,基本フォーマットで定義した要素を並べ替えたり,可変値の長さを定義したりして見映えをそろえるために定義します。

変換フォーマットは,JP1/IM - Viewに出力する変換後のメッセージを統一するために定義するので,変換後にどう表示したいのかを考えて定義する必要があります。

図3-9 変換フォーマットを定義するイメージ

[図データ]

変換フォーマットは10個登録でき,必要に応じて切り替えられます。

変換フォーマットの定義で選択できる種別は基本フォーマットと同様です。

変換フォーマットの定義で選択できる種別については,「表 3-5 基本フォーマットの種別」を参照してください。

なお,日付の情報は,基本フォーマット同様さまざまです。この形式も統一するため,種別と合わせて形式も定義します。変換後のメッセージの日付形式に合うものを次の中から選択して定義します。

表3-7 変換フォーマットの日付情報の形式

項番種別形式例・説明
1日時YYYY/MM/DD hh:mm:ss2006/02/08 13:41:00
2YYYY-MM-DD hh:mm:ss2006-02-08 13:41:00
3日付YYYY/MM/DD2006/02/08
4YYYY-MM-DD2006-02-08
5YY/MM/DD06/02/08
6DD/MMM/YYYY08/Feb/2008
7時刻hh:mm:ss13:41:00
8hh:mm:ss.sss13:41:00.000
9hh:mm:ss.ssssss13:41:00.000000
10曜日DDD (英字3文字)Mon/Tue/Wed/Thu/Fri/Sat/Sun
11漢字1文字月/火/水/木/金/土/日
12YYYY2006
13YY西暦下2けた
(例)06
14和暦(英字)元号(半角英大文字1文字)+半角数字(前ゼロあり)
(例) H18,H08
15和暦(漢字)元号(漢字)+半角数字(前ゼロなし),各元号の1年は「元」年で出力する
(例) 平成18,平成元
16MM半角数字で表される月
(例)02,10
17MMM(英字3文字)Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Nov/Dec
18DD半角数字で表される日
(例)02,10
19hh半角数字で表される時
(例)05,11
20mm半角数字で表される分
(例)05,30
21ss半角数字で表される秒
(例)05,30
22ss.sss(例)00.000
23ss.ssssss(例)00.000000