かつおの「もっと教えてくれや!」
#8_設定で駄目ならプラグイン!?

おっす! かつおです。

春になりましたね。
花粉症持ちの人には厳しい季節ではありますが、いろんな場所にお出かけして、新しい発見をしたいですね。
ってなわけで、今回も始まります。

中島
中島

ふぐ本さん。おはようございます~ 
先週は盛り上がりましたね。ご馳走様でした
今日も軽く行きましょうか!

かつお
かつお

おう、おはようさん。悪いが今日はやめとくわ

中島
中島

えーなんでですか……ってふぐ本さん顔が真っ黒になってますよ!
この前パーティーしすぎたせいで、ついに肝臓が!?

かつお
かつお

ちゃうちゃう、旅行に行ってきてん
結婚10周年でハワイやー。ほら見てみぃ

中島
中島

Tシャツが透けて背中にALOHAの文字が!!
カッコいいっ。けどさすがにこれは派手すぎじゃないですか

かつお
かつお

がはは、冗談や冗談。自慢したかったんや。トイレで着替えてくるわ

かつお
かつお

さてさて中島くん。おれはな、この旅行で色々考えとってん

中島
中島

何をですか

かつお
かつお

今回の飛行機のチケット、ネットから予約したんやけどな。こんなシステムおれにも作れるんやろかってな。
でも、考えれば考えるほど問題がでてくるんや

中島
中島

うーん。予約システムって複雑ですからねぇ。例えばどんな問題でしょうか

かつお
かつお

飛行機のチケットって単純に席数だけ売り切るわけやないやん? 実際には統計をとって、実際の席数よりも多めにチケット売らなあかんやろ

中島
中島

へぇーあれって意図的だったんですね
さすがふぐ本さん、出張いっぱい行ってるだけあって詳しいですね

かつお
かつお

でもな、今のロジックの設定だけで作ろうとするとガバガバになってまうねん。何人もボコボコにして引きずり下ろすことになってしまうわ

中島
中島

フグモッド航空恐ろしいですね……
確かにそういう業務独自の複雑な処理はロジックでは実現できないことがありますね。そういう場合は、 プラグイン で処理を実装です

かつお
かつお

プラグイン……ちゃんと覚えとるぞ。講習でやったやつやろ。 Eclipse 使って Java で作るやつな。Javaなら得意やったから全部覚えとるわ

中島
中島

そうです。今回のようなオプションやロジック等の設定では解決できない 業務独自の処理 はプラグインを実装して対応します
プラグインにも何種類かありますが、よく使うのは、プログラムに対して設定する パターンプラグイン ですね

いろんなプラグイン
かつお
かつお

ちなみに、業務独自って言っとるけど、どこまでが設定でできて、どこからがプラグインの実装が必要かどうやって判断したらええんや。そのあたりよく分からんわ

中島
中島

うーん。そこは難しいところですね。明確な基準はなくて、適した設定があるか無いかですね
ちなみにぼくはこんな感じで探して判断しています

プラグイン実装までの流れ
かつお
かつお

テーブルオプションの設定欄とか、アクションの選択候補は分かるけど、
Javadocの OPT_ から始まるとか、 CONF_ から始まるってなんやねんこれ

中島
中島

楽々Framework3での オプションSeiConfigパラメータ って、Javadocで定数として定義されているんですよ。オプションは OPT_オプション名 で、SeiConfigパラメータは CONF_パラメータ名 で定義されています。なので、Javadocの索引から O で始まるものや、 C で始まるもので絞って見ると確認できます

Javadocの索引で検索
中島
中島

この例ですと、top.document.titleというオプションでブラウザのタイトルを変更できることが分かります。 最初のOPT_やCONF_を省いて、_(アンダーバー)を.(ドット)に変更したもの がオプション名、パラメータ名になります
ちなみに、テーブルオプションやアクションもJavadocに説明があります。『RakStudioを使おう! ~ロジックでユーザビリティをあげろ!~』でやった通り、こちらは設定欄の『?』マークをクリックすると開けましたね

かつお
かつお

全部逆引き辞書でヒットしたら便利やのにな
Javadoc多すぎて見るの辛いわぁ

中島
中島

確かにヒットしないことも多いですね。そんな時は、 楽々FrameworkII の方の逆引き辞書も使ってみていいかもです。順次移行中ではあるんですが、やっぱり歴史が長い楽々FrameworkIIの方が件数多いですからね

かつお
かつお

今回の場合は、飛行機のチケットがキャンセルされる可能性を統計を使って計算して、 購入処理をチェックしたり 画面上に表示する データの条件を加工 したりするわけやけど……さすがにこれはロジックもオプションもないな

かつお
かつお

やからプラグインで組むんやろうけど、購入時に計算してチェックや、条件の加工、うーん……
あかん! 分からんぞ!
講習だけじゃ分からんやろこれ!!!

中島
中島

あわわ、ふぐ本さん、落ち着いてください。一気に難しいのは無理かもしれませんが、徐々に考えていけばいけますよ

かつお
かつお

ふーふー、すまんのつい興奮してしもたわ。こういう場合はどうしたらいいんや、教えてくれや

中島
中島

じゃぁまず、復習からいきましょう
作ったプラグインはプログラムやDDにセットすると、各タイミング毎に対応するメソッドが呼び出されるようになります。このメソッド内で行いたい処理を実装しておけば、任意のタイミングで独自の処理を実行できるようになるわけですね

一連の処理の流れ
かつお
かつお

この各タイミング毎に対応するメソッドってどれ見たら分かるねん

中島
中島

呼び出しているメソッドは、パターンによって自動でセットされている「プラグイン ~ 呼出」
のロジックから確認することもできますが、以下の Javadoc を見る方が網羅されていていいと思います

楽々Framework3 Javadoc
 jp.co.sei.is.lib21.pms.ptn
  インタフェース iPtnPlugin

かつお
かつお

サンプルもあってこのJavadocは分かりやすいな。
練習がてら一回作ってみるか
……この右下のチェックボックスは何選んだらいいんや

Javadocの流れ
中島
中島

ここはプラグインのソースファイルにテンプレートとして出力したいメソッドの種類を選択します。例えば、新規登録時に呼び出されるメソッドのテンプレートを出しておきたい場合は、新規登録関連の欄に
チェックを入れるとメソッドが定義された状態でソースが生成されます

かつお
かつお

ほーん。なんやよう分らんから全部にチェック入れとこ

中島
中島

ええ……

かつお
かつお

なんやこれ、えらい大量にメソッド出てきたけど、ちゃんと コメント 入っててこれも分かりやすいやないか。気に入ったで

コメント付きでメソッドの書き出し
中島
中島

これで分かりやすいならどっちでもいいけですけど。
使わないメソッドは今後のソースの見やすさや、無駄な呼び出し処理を削減するため消しておいてくださいね

かつお
かつお

これ見るとなんかイメージがつかめてきたぞ。購入前(登録前)のチェックは checkInsert メソッドに実装して、データ取ってくる条件の加工は setSql メソッドに実装したらええんやな

中島
中島

その通りです! あとはその中でどんな処理をするかですよね。まずは checkInsert の方を考えると、DBの統計値データを参照して、入力値をチェックしてエラーメッセージを出すとかでしょうか
実際にはもっと複雑でしょうが、とりあえず、これらやりたいことを細分化すると、逆引き辞書でも見つかります

楽々Framework3 逆引き辞書

  • 逆引-00107
    プラグインでSELECT文の取得結果を先頭行から順に処理する方法
  • 逆引-00213
    プラグインにて入力値のエラーチェックをする方法
  • 逆引-00264
    パターンプラグインでエラーメッセージを設定する方法
中島
中島

また、setSqlメソッドでは、検索条件を追加したりすると考えると、こんな逆引き辞書がありました

楽々Framework3 逆引き辞書

  • 逆引-00028
    プラグインにて検索条件を追加する方法
かつお
かつお

意外といけそうな気がしてきたぞ。でも、どう探しても逆引き辞書が見つからん時があるんやけど、そん時はどうしたらええねん

中島
中島

うーん、そんな時は、逆引き辞書で検索するなら、「回答」欄に対しプラグインの メソッド名 や引数の クラス名 で検索をかけるのもいい方法かと思います。それでもなければ、メソッドの引数のクラスをJavadocで確認して、操作の仕方を調べていくしかないですね
今回のsetSqlメソッドの例だと、PmsSqlクラスとかですね

楽々Framework3 Javadoc
 jp.co.sei.is.lib21.pms
  クラス PmsSql

かつお
かつお

まぁ、なんとなくイメージは掴めたわ。プログラミングっちゅうのはそんなもんやし、しゃあないの。小さなことからこつこつとやな!!

中島
中島

そうですね。千里の道も一歩からと言いますから

かつお
かつお

そうやな。でもおれやったら千里の道も一歩でゴールしたるわ!

っということで、また一歩立派なエンジニアに近づいたふぐ本さん。
そんなふぐ本さんを独自実装の恐怖が襲う!

次回、「かつお、デバッグってどうやんねん」をお送りします。

※タイトル及び内容は予告なく変更される場合があります。あらかじめご了承ください。

各種お役立ち資料もご用意しています

簡単な製品説明や見積りのみご希望の場合も
気軽にお問い合わせください

お問い合わせ

専門スタッフが製品や導入に関する不安やお悩みにお答えします。

担当者に製品の説明を聞く

資料請求

楽々Framework3の詳しい製品情報や、活用事例をまとめた資料を無料で請求いただけます。

製品資料を請求する

体験セミナー
eラーニング

Webでの講義と体験版ソフトで楽々Framework3を体験いただけます。

体験セミナーeラーニングに
申し込む