2.6.6 特定業務で扱う業務ルールを登録する

ドメインの業務ルールを業務ルール辞書に整備した後,継承関係の下位にあるデータ項目の業務ルールを登録します。特定のデータ項目に関する業務の規則,制度などを業務ルールとして登録します。

特定業務で扱う業務ルールも,ドメインの業務ルールと同様に,次の手順で登録します。

  1. データの値の妥当性をチェックする業務ルール
  2. データの値を導き出す業務ルール
<この項の構成>
(1) データの値の妥当性をチェックする業務ルールを登録する
(2) データの値を導き出す業務ルールを登録する

(1) データの値の妥当性をチェックする業務ルールを登録する

(a) 例題の概要

データ項目「氏名NO」は,データ分析の結果,次の制約条件が抽出されました。

例題では,「氏名NO」に対して,入力された値の妥当性をチェックする業務ルール「氏名NOチェック」を登録します。

[図データ]

(b) 業務ルールの定義

ここでは,例題業務ルールの定義情報を説明します。なお,リポジトリブラウザの定義手順は,ドメインの業務ルールを登録するときと同様です。「2.6.5 システムで共用する業務ルールを登録する」を参照してください。

  1. 業務ルール名,コメント
    • 業務ルール名に,「氏名NOチェック」
      コメントに,「入力された氏名NOのデータを,事業所コード,入社年,通番に分割し,通番が数字で入力されているかをチェックする。」
  2. 適用するデータ項目と業務ルールの関連
    「氏名NO」特有の制約条件を反映するため,データ項目の適用形態は「専用にする」を選びます。
    • 組み合わせるデータ項目に,「氏名NO」
      キーワードに,「@氏名NO」
      適用条件に,「入力」
  3. ルールスクリプトの記述

    [図データ]

    記述のポイントを次に示します。
    • データ項目の名称をキーワード「@氏名NO」で記述します。
    • 通番だけをチェックするため,業務ルール内部の作業領域を使って氏名NOのデータを分割します。作業領域の記述部分は,@@section文を使用してWORKING-STORAGE SECTIONへの分割展開を指定します。ここでは,あらかじめテンプレート作成者と決めておいたコード名「WORK」を指定しています。
    • エラーの記述に使うデータ項目や値は,あらかじめテンプレート作成者と決めておいたエラー処理の仕様に従います。ここでは,エラー状態'5001'を「R-CHECK-STAT」にセットしています。このデータ項目の定義は,テンプレート上に記述されることを前提としています。

(c) 業務ルールの適用例

業務ルール「氏名NOチェック」が,SEWB+/CONSTRUCTIONからアプリケーションに適用される例を示します。

[図データ]

  1. テンプレート記述
    エラー状態を格納するデータ項目「R-CHECK-STAT」は,ここに記述されます。また,データ分割に使用した作業領域の展開位置は,「@@merge @WORK」で指定されています。@@rule文では,次の指定をしています。
    • データ定義IN_FILEに含まれるデータ項目を使用している業務ルールを抽出する。このとき,データ項目の適用条件に「入力」が指定された業務ルールだけを対象にする。
    • データ項目の言語別の名前に接頭語「IN-」を付加する。
  2. プログラム定義
    プログラム定義で1.のテンプレートを選択し,IN_FILEに指定されたデータ定義のレコード定義にデータ項目「氏名NO」が含まれている場合,業務ルールの候補として「氏名NOチェック」が表示されます。
  3. 生成ソースプログラム
    @@rule文の位置にルールスクリプトが展開されます。

(2) データの値を導き出す業務ルールを登録する

(a) 例題の概要

例題業務では,従業員個人の識別に「氏名NO」を使用します。このデータを格納するデータ項目「氏名NO」は,データ項目「事業所コード」「入社コード」「通番」で構成されます。「氏名NO」の三つの構成項目それぞれについて,次のような作成規則があります。

例題では,それぞれ導出関係にあるデータ項目を組み合わせ,データの値を導き出す業務ルールを登録します。 SEWB+/CONSTRUCTIONから,この三つの業務ルールを適用することで,結合項目「氏名NO」の値を割り当てる処理を実現できます。

[図データ]

(b) 業務ルールの定義

ここでは,例題業務ルールの定義情報について説明します。リポジトリブラウザの定義手順は,ドメインの業務ルールを登録するときと同様です。「2.6.5 システムで共用する業務ルールを登録する」を参照してください。

事業所コード入力編集
  1. 業務ルール名,コメント
    • 業務ルール名に,「事業所コード入力編集」
      コメントに,「事業所名を事業所コードに変換する。変換処理は外部サブルーチン「CDHENKN1」を使う。」
  2. 適用するデータ項目と業務ルールの関連
    • 適用形態に,「専用にする」
      組み合わせるデータ項目に,「入社年」
      キーワードに,「@入社年」
      適用条件に,「入力」
    • 適用形態に,「専用にする」
      組み合わせるデータ項目に,「入社コード」
      キーワードに,「@入社コード」
      適用条件に,「出力」
  3. ルールスクリプトの記述

    [図データ]

入社コード入力編集
  1. 業務ルール名,コメント
    • 業務ルール名に,「入社コード入力編集」
      コメントに,「入社年を入社コードに変換する。変換処理は外部サブルーチン「CDHENKN2」を使う。」
  2. 適用するデータ項目と業務ルールの関連
    • 適用形態に,「専用にする」
      組み合わせるデータ項目に,「事業所名」
      キーワードに,「@事業所名」
      適用条件に,「入力」
    • 適用形態に,「専用にする」
      組み合わせるデータ項目に,「事業所コード」
      キーワードに,「@事業所コード」
      適用条件に,「出力」
  3. ルールスクリプトの記述

    [図データ]

通番入力編集
  1. 業務ルール名,コメント
    • 業務ルール名に,「通番入力編集」
      コメントに,「氏名を通番に変換する。変換処理は外部サブルーチン「CDHENKN3」を使う。」
  2. 適用するデータ項目と業務ルールの関連
    • 適用形態に,「専用にする」
      組み合わせるデータ項目に,「氏名」
      キーワードに,「@氏名」
      適用条件に,「入力」
    • 適用形態に,「専用にする」
      組み合わせるデータ項目に,「通番」
      キーワードに,「@通番」
      適用条件に,「出力」
  3. ルールスクリプトの記述

    [図データ]

(c) 業務ルールの適用例

業務ルール「事業所コード入力編集」「氏名コード入力編集」及び「通番入力編集」が,SEWB+/CONSTRUCTIONからアプリケーションに適用される例を示します。

[図データ]

  1. テンプレート記述
    @@rule文では,次の二つの条件を満たす業務ルールを抽出することが指定されています。
    • データ定義IN_FILEに含まれるデータ項目を使用している業務ルール。このとき,データ項目の適用条件に「入力」が指定された業務ルールだけを対象にする。
    • データ定義OUT_FILEに含まれるデータ項目を使用している業務ルール。このとき,データ項目の適用条件に「出力」が指定された業務ルールだけを対象にする。
  2. プログラム定義
    1.のテンプレートを利用したプログラム定義で,アプリケーションの入力となるデータ定義のレコード定義にデータ項目「事業所名」「入社年」「氏名」が含まれており,また,出力となるデータ定義のレコード定義にデータ項目「事業所コード」「入社コード」「氏名コード」が含まれているとき,業務ルールの候補として三つの業務ルールが表示されます。
  3. 生成ソースプログラム
    @@rule文の位置にルールスクリプトが展開されます。プログラマがこの三つの業務ルールを選んだ場合,例に示したようなソースプログラムが生成されます。