リポジトリから外部設計書を出力するツールの使い方を説明します。 R7.1.1

アプリケーションのリポジトリ(設計情報)を Excel 形式のファイルで出力する機能です。印刷してお使いいただくことを意図しています。

本ツールが出力するExcelファイルの例を図1〜図4に示します。

図1 モデル名一覧
図2 モデル項目一覧(モデル毎に用意される)
図3 メニュー一覧
図4 画面定義一覧(モデル毎に用意される)

ここでは Windows OS での利用方法を説明します。Linux/Mac OS Xで操作される場合はコンソールをお使いください。

「スタートメニュー>プログラムとファイルの検索」欄に、"cmd" と入力して実行します。(図5,図6)

図5 スタートメニュー
図6 "cmd" を実行する

図7に示すような、コマンドプロンプトが表示されます。

図7 コマンドプロンプト
スタートメニューを経由せず、直接「コマンドプロンプト」を実行することもできます。

コマンドプロンプトが起動したら、cd コマンドでカレントフォルダを移動します。移動先は Wagbyインストールフォルダ\wagbydesigner\bin です。(インストール先フォルダは適切に読み替えてください。)

図8 カレントフォルダを変える

同フォルダに含まれる Spec.jar を java コマンドで実行します。

java -jar Spec.jar
図9 Spec.jar を実行する

設計書が出力されます。(図10, 図11)

図10 設計書の出力 (1)
図11 設計書の出力 (2)

wagbydesigner\bin\spec フォルダ内に、ファイルが生成されます。(図12)

図12 生成ファイル一式

次のドキュメントが自動生成されます。

  • 表紙
  • 変更履歴
  • システム情報
  • モデル名一覧
  • 各モデル項目毎の定義
  • メニュー一覧
  • 帳票一覧
  • 各モデル毎の画面定義
  • カスタマイズファイル一覧
画面キャプチャの自動実行は行いません。生成された「画面定義書」に、スクリーンショットを貼り付けて完成させてください。

すべてのドキュメントは Excel 形式で出力されます。テンプレートとなるファイルを修正することで、レイアウトをカスタマイズすることができます。

テンプレートファイルはwagbydesigner\bin\spec\templateフォルダ以下に用意されています。

例 モデル項目の出力欄を追加する

Wagby出荷時は、モデル項目の出力は100項目までとなっています。次の手順でこれを増やすことができます。

  1. wagbydesigner\bin\spec\templateにあるmodelitem_list.xlsをExcelで開きます。
  2. 標準では、100項目までのテンプレートを用意しています。必要な数だけ、この欄を増やしてください。

例 自動計算式を出力する

modelitem_list.xls で利用できます。次のプレースホルダを含めてください。(標準では含まれていません)

${modelitem[番号]/autocalc}

例 ユーザ定義入力チェック式を出力する

modelitem_list.xls で利用できます。次のプレースホルダを含めてください。(標準では含まれていません)

${modelitem[番号]/generic_check[1-5]}
${modelitem[番号]/generic_check/errormsg[1-5]}
${modelitem[番号]/generic_check/@warning[1-5]}

generic_check1からgeneric_check5までを指定できます。
generic_check/errormsgは、エラーメッセージ文字列です。
generic_check/@warningは、警告として利用するかどうかを表します。

autocalc と generic_check は、ここで紹介した簡易表記が使えます。これ以外のリポジトリ情報を使う場合は、次の節をお読みください。

「各モデル項目毎の定義(テンプレートファイル modelitem_list.xls)」では、モデル項目に関するすべてのリポジトリキーの値を出力できます。

書式は次のとおりです。

${modelitem[番号]/リポジトリキー}

記述例

文字数チェック

${modelitem[番号]/model/modelitem/limit}

初期値(検索時)

${modelitem[番号]/model/modelitem/defaultValue[@action=select]_2}

応用 プレースホルダを組み合わせる

型情報の後ろに最大入力文字数と単位(全角/半角) を加える例を紹介します。次の入力制限の内容を出力するようにします。

  • 最大入力文字数
  • 文字数のカウント単位(全角/半角)

具体的には "string(20) 全角" という出力を想定します。

bin/spec/template/modelitem_list.xlsの「項目の型」を次のようにします。

${modelitem[0]/@type} ${modelitem[0]/model/modelitem/limit} (${modelitem[0]/model/modelitem/limit_2})

0,1,2,... という項目すべてにこのようなプレースホルダを埋めていきます。

先の例を題材に説明します。次の2点を改良することを検討します。

  • 先の方法では、値があるときは "int 10 (char)" と出力されるが、ない場合は "int ()"となってしまう。
  • テンプレートを修正して、各行にプレースホルダを追加するのが面倒である。

この問題を解決するために、JavaScript言語を使って、出力文字列を加工するプログラムを自作することができます。この方法を説明します。

  1. wagbydesigner/bin/spec/js フォルダを用意します。
  2. 「テンプレートファイル名 + ".js"」ファイルを用意します。例えばモデル項目の出力は modelitem_list.js となります。保存時の文字エンコーディングは UTF8 形式としてください。
  3. このファイルに関数 process() を用意します。関数内ではmapという変数が利用できます。これはキーがプレースホルダで、値に出力文字列が格納されたマップです。この関数内で、このマップを加工します。

例 型情報の後ろに最大入力文字数と単位(全角/半角) を加える

wagbydesigner/bin/spec/js/modelitem_list.js ファイルを用意します。次の内容とします。

function process() {
  /*var stdout = java.lang.System.out;*/
  var size = map.get("__maxmodelitem");
  for (i=0; i<size; i++) {
    var s = map.get("${modelitem["+i+"]/model/modelitem/limit}");
    if (s != "" && s != null) {
      s = " (" + s + ")";
      var s2 = map.get("${modelitem["+i+"]/model/modelitem/limit_2}");
      if (s2 != "" && s2 != null) {
        if (s2 == "char") {
          s = s + " 全角";
        } else {
          s = s + " 半角";
        }
      }
      var type = map.get("${modelitem["+i+"]/@type}");
      map.put("${modelitem["+i+"]/@type}", type+s);/* override */

      /*var ret = map.get("${modelitem["+i+"]/@type}");
      stdout.println(i+":type="+ret);*/
    }
  }
}

設計書出力時に、このスクリプトが実行されます。これによって modelitem[N]/@type という値が書き換えられます。具体的には、標準では "string" だった出力値が "string(10) 全角" などとなります。

既存のプレースホルダをそのままに値を再セットするため、テンプレートファイルを修正する手間を減らすこともできます。その他の説明は次のとおりです。

  • 変数 stdout は標準コンソール出力用です。上の例ではコメントアウトしていますが、デバッグ時にご利用ください。
  • function() に渡されるのは map という名前の変数のみです。それ以外の変数は開発者が宣言してご利用ください。
  • mapには "__" で始まる特別な値が含まれます。これは格納されているキーの個数を示します。[後述]

格納されている数

格納数は "__" ではじまる変数で取得できます。

ファイル名説明キー名
list_screen.js画面定義一覧 - 一覧画面系 __maxcondition : 検索条件の数。condition[N]/@name など。
__maxlist : 一覧表示の数。list[N]/@name など。
menu_list.jsメニュー一覧 __maxmenu : メニューの数。menu[N]/@desc など。
modelitem_list.jsモデル項目一覧 __maxmodelitem : モデル項目の数。modelitem[N]/@name など。
model_list.jsモデル名一覧 __maxmodel : モデルの数。model[N]/@modelId など。
report_list.js帳票一覧 __maxprintlayout : 帳票の数。printlayout[N]/@filename など。
show_screen.js画面定義一覧 - 詳細画面系 __maxmodelitem : モデル項目の数。modelitem[N]/@name など。

起動時のオプションは次のとおりです。
利用例: java -jar Spec.jar -help

オプション説明
-help指定できるオプション一覧を表示します。
-debugデバッグモードで起動します。
-renumbersort画面定義一覧の設計書ページ内の「一覧表示 > ソート」を Wagby R6 と同じ形式で出力する。
Designerで入力した数値を元にソート項目を並び替え、これを 1,2,.. の順にリナンバリングする形式
-x2aj(Wagby R6 形式の) appschema.xml を出力する。設計書そのものは出力しない。