製品活用ケース1

KbInfo2を活用した例を紹介します

目的

システムの運用中において、権限における処理に問題があり、全ての画面において再調査を行い、報告する必要が出てきた。

正しい実装)

If &W_KENGEN_CD IN ('01','11')
  // 登録ボタンの有効化
Else
  // 登録ボタンの無効化
Endif

誤った実装)

If &W_KENGEN_CD IN ('01','12')
  // 登録ボタンの有効化
Else
  // 登録ボタンの無効化
Endif

上記のような共通処理は全てWebPanelに記述しており、画面数が150画面あるため、全ての画面を目で見なければならない。
GeneXusでの検索機能もあるが、他の処理にも同じ変数を使用しているため、全て引っかかってしまうため、目的を果たせない。
JavaやC#等であれば、Grep検索で全てをテキスト検索が行えるが、残念ながらGeneXusにGrep機能はございません。




KbInfoでの機能

KbInfo2では、GeneXusの全てをHTML化出力することが出来ます。
WebPanelに対してKbInfoを適用すると、以下のようなファイルが生成されます。

    ・WebPanel1.html
    +[WebPanel1]フォルダ

      ・property.html
      ・webform.html
      ・rules.html
      ・events.html
      ・conditions.html
      ・variables.html
      ・histroy.html
      ・reference.html




HTMLファイルのGrep検索結果

生成された[events.html]に対して、Grep検索をかけることにより、該当の処理を全て抽出することが出来ます。
幸いなことに今回は最初に見つけた1件だけでしたが、1件1件を人の目で見るより、時間も省略でき、正確に全てを抽出することが出来ました。

概算工数:「1画面=1分(開く時間含む)」×「WebPanel=150画面」=2時間半
実質工数:10分(KbInfoの適用時間含む)




まとめ

運用後に発覚するバグには様々な問題がありますが、共通的な部分に対して発生すると「他の部分は問題がないのか調べてくれ」と言われることが多いです。
当然の要求出ることに間違いはないのですが、工数の確保が困難であることも多く、少しでも素早い対応が行えることが望ましいです。
KbInfoを使用することにより、GeneXusでの運用保守を少し補助できると考えております。