Wagby Developer Network (WDN) for Wagby EE R9

最終更新日: 2023年7月13日
R8 | R9

カスタマイズの考え方

Wagbyは生成されたソースコードがカスタマイズできるように設計されています。カスタマイズを行ったあとに設計情報を変更することもできます。

可能な限り設計情報からアプリケーションを自動生成しつつ、複雑な業務処理やバッチ処理、標準仕様を超える挙動への対応にはプログラミングによって補完します。

さまざまなカスタマイズ方法

標準技術によるカスタマイズを実現

Wagby は独自言語を提供しません。土台となる技術要素は JavaScript, CSS, REST API, Java です。標準技術によってWagbyのカスタマイズを行うことができます。

スクリプト (サーバサイドJavaScript)

Wagbyが生成したコードを活かして、さまざまな業務ロジックを実装することができます。WagbyではサーバサイドJavaScriptを「スクリプト」と呼びます。

スクリプト
スクリプトの概要と作成方法について説明します。
ヘルパとコントローラ
スクリプトはヘルパ系とコントローラ系に大別されます。実装したい処理の用途に応じて、適切なポイントにスクリプトを記述します。
モデルの基本 (1)
Wagbyのモデルはどのような構成になっているかを説明します。その中でも基本となるストアモデルの操作方法を説明します。
モデルの基本 (2)
プレゼンテーションモデル、コンディションモデル、リストモデルを説明します。
生成されるスクリプトファイルの詳細
Designerで入力したスクリプトはファイルとして生成されます。
Wagby関数を利用する
Wagbyが提供する関数をスクリプトでも利用することができます。
スクリプトを用いた主キーの拡張
スクリプトを利用して、任意の書式を設定する方法を説明します。
スクリプトを用いた主キーの拡張 (2) コピー登録時に枝番を付与する 9.2.0
コピー登録時に枝番を設定するスクリプトの書き方を説明します。
サブデータベースで順序を使う
スクリプトを利用してサブデータベースの登録時に順序を使う方法を説明します。
スクリプトでの初期化処理
スクリプトを使った初期値の定義方法を説明します。
入力チェック・整合性チェック
複雑な入力チェックや整合性チェックをスクリプトで実現する方法を説明します。
入力チェックテンプレートを利用する
実行時にスクリプトを評価する方法です。コードの断片をテンプレートとして再利用することができます。
入力フィルタ
Webフォームから入力された値を変換する「フィルタ」処理をスクリプトで記述できます。
一括更新
一覧表示画面で用意した「一括更新」処理の本体をスクリプトで記述します。
一覧帳票出力後の更新
帳票出力を実行後、呼び出されるスクリプトを紹介します。
モデル間の計算(トランザクション)
モデル間の計算は「トラザクション」となります。ここではトランザクションスクリプトの作成方法を説明します。
Service/Dao、ヘルパ、SQLの利用
スクリプトから(Wagbyが自動生成した)Service/Daoクラスを利用できます。またSQLを利用することもできます。
環境タブで設定できる共通スクリプト
環境タブに用意されたスクリプト「共通関数」「ファイル項目ダウンロード」「ファイル項目アップロード」を説明します。
メールを送信する
スクリプトからメール送信を行う方法を説明します。
ログ出力
スクリプトからログ出力を行う方法を説明します。
サンプルコード
業務で使えるサンプルコードを紹介します。
スクリプト再読込み処理の制御
スクリプトが変更されたかどうかの検出処理を行わないようにすることができます。実行時のパフォーマンスが向上します。
一覧表示画面での一括処理
一覧表示画面で複数データを選択し、独自の一括処理をスクリプトで記述します。
データベースの詳細 - SQL式
SQL式を指定すると、データベースに保存しない項目を検索できるようにすることができます。
選択肢の絞り込み
スクリプトを使って、複雑な絞り込みを行う例を紹介します。
親キー以外の値を用いて子モデル一覧表示を行う
親モデル画面に表示される子モデルは、通常、親キーによって絞り込まれます。この条件を個別に指定することで、親キーが未設定であっても子モデル一覧表示を行えるようにします。
データの既読状態を管理する
ユーザの閲覧記録を保持する例を紹介します。未読・既読状態で検索を行うことができます。
システム関連のスクリプト9.2.0
Wagbyアプリケーション起動時やログオン・ログオフ、ジョブ実行といったタイミングでスクリプトを実行することができます。

CSV・Excel入出力

ダウンロード時のスクリプト実行
アップロード更新時のスクリプト実行
固定長ファイルのダウンロードとアップロード更新

入力制御

項目ボタン押下時の処理を自分で書く

検索制御

検索条件のカスタマイズ

画面遷移

スクリプトを使った画面遷移
独自ボタンを用意する
独自ボタンから外部コマンドを呼び出す
JavaScript(フロントエンド)との連携
メインモデル更新画面→サブモデル更新画面

画面のカスタマイズ

Wagbyが生成した画面をカスタマイズする場合は CSS または JavaScript を使います。

CSSのカスタマイズ
JavaScriptのカスタマイズ
JSPおよびエラー画面のカスタマイズ
メニュー画面のカスタマイズ

ポータル

ポータル機能を使う
ポータル機能を有効にする方法を説明します。(Wagbyインストール直後は、ポータル機能は使わない設定になっています。ここに記載した手順で有効にする必要があります。)
お知らせポートレット
お知らせポートレットを使うと、ポータル画面に任意のメッセージを表示させることができます。
カレンダポートレット(クラシック)
クラシックカレンダビューに対応したモデルを、ポータル画面のカレンダにモデルの情報を表示する方法を説明します。
カレンダポートレット(モダン)
モダンカレンダビューに対応したモデルを、ポータル画面のカレンダにモデルの情報を表示する方法を説明します。
ログオンユーザ一覧ポートレット
現在、システムにログオンしているユーザ(アカウント)を表示することができます。
グラフポートレット
グラフポートレットを使うと、任意のグラフをポータル画面に表示させることができます。
ワークフローポートレット
ワークフローポートレットを使うと、自分が起こして承認待ちのワークフローならびに、自分が承認すべきワークフロー一覧をポータル画面に表示させることができます。
外部リンクポートレット
外部ページへのリンク情報を集めたポートレットを用意することができます。
ブログパーツを利用する
インターネット上に公開されているさまざまなブログパーツを利用することができます。
任意のモデルの値を表示する
ポートレットタイプ「一覧」を再利用し、Wagbyで定義したモデルの情報を取得するサンプルコードを説明します。
任意のモデルの値を表示する (2)
新規でポートレットを定義し、REST API 経由で取得した JSON オブジェクトを表示するサンプルコードを説明します。
ゲージ部品を利用する
ゲージ部品を利用する方法を説明します。

帳票

Excel帳票

出力内容をカスタマイズする

JasperReportsによるPDF出力

オープンソースの帳票出力ライブラリ「JasperReports」を使った帳票の出力について説明します。

詳細データの出力
一覧データの出力
複数データの結合

集計・グラフ

一覧表示画面にグラフを表示する
一覧表示画面にグラフを表示する(2)
詳細画面にグラフを表示する

ワークフロー

フローイベントスクリプトを用意する
スクリプトでワークフローを操作する
ワークフローを手動で取り消す
決裁後にフローイベントをリセットする
再申請時、フローを差戻した人までスキップする
条件でフローを制御する
条件で申請フローを絞込む
任意のノードに決裁ボタンを用意する
グループ階層とプリンシパルでフローを制御する
ワークフロー機能を使った回覧

認証・認可

認証

Windows Active Directory/LDAP, SSO による認証
OpenID Connect による認証

認可

データベースのビューにデータ権限を適用する

複合キー

R9.2.2以降

主キーの設計 (1) 基本的な考え方
主キーの設計 (2) 複合キー
主キーの設定 (3) 親子の関係
主キーの設計 (4) 親子孫の関係
主キーの設計 (5) 親子孫の関係を変更する

R9.0.0〜R9.2.1

複合キーの基本
外部キーと複合キー (1) 親子の関係
外部キーと複合キー (2) 親子孫の関係
外部キーと複合キー (3) 親子孫の関係で参照連動を行う
外部キーと複合キー (4) 親子孫の関係で紐づく親を変更できるようにする

環境

キーイベント動作を変更する
対応するデータベースを追加する
クラスタリング環境で運用する
オートスケール環境で運用する

REST APIを利用する

Wagby を REST API のサーバとして用いることができます。

これにより .NET や PHP,Perl,Ruby または iOS, Android といった要素技術を駆使したフロントエンド(画面)を独自に用意し、REST API 経由で Wagby と通信するアプリケーションを開発できます。

RESTAPI活用イメージ
概要
REST API を利用する
ログオン・ログオフ
新規登録
取得
検索・一覧データ取得
更新 [1] 画面操作に準じた制御
更新 [2] 簡易制御
削除
一覧更新
ステータスコード一覧
郵便番号から住所を求める
スクリプト
複合キーの扱い
ファイルの扱い
キャッシュのクリア
CORSへの対応
CSRFへの対応
curlコマンドを使った操作
トラブルシューティング

Excel など他製品から Wagby の REST API を呼び出す例は「他社製品との連携」で説明します。

Javaを用いたカスタマイズ

複雑な業務処理やデータベースの更新、バッチ処理や外部システム連携などはJavaを用います。 Wagby が生成したソースコードを Eclipse のプロジェクトとして管理し、開発を進めることができます。

Javaカスタマイズの考え方
Eclipseのインストールと起動
Service/Daoクラス
リソースファイル
変更のあった自動生成ファイルを検出する
発行されるSQLを確認する
データベースのコネクションプーリング数を監視する
メニューの内容を動的に変更する
独自の関数を追加する
ボタンを追加し、独自処理を行わせる
SpringSecurityの動作原理とカスタマイズ
カスタマイズコードをコマンドラインでコンパイルする

メッセージによる非同期処理

メッセージサーバを用いた非同期処理の実現方法を説明します。メッセージサーバは Apache ActiveMQ Artemis, Amazon MQ, RabbitMQ に対応しています。

非同期処理の概要
メッセージサーバのインストール
メッセージキューの設定
非同期ダウンロード
非同期アップロード更新
非同期外部コマンド実行
非同期スクリプト実行

運用時の注意点

バッチ処理

バッチ処理の概要
自作クラスをジョブスケジューラに登録する
Spring Batch (1) 動作例
Spring Batch (2) サンプルコード
Spring Batch (3) ジョブスケジューラの利用

E2Eテスト

ビルドしたアプリケーションのテストシナリオを作成することができます。

E2Eテスト
準備と実行
テストシナリオマクロ

Javaによるコーディングを行う場合

Wagby Testing Frameworkとは
テストプログラムを作成する(チュートリアル)
検索/一覧表示/一覧更新画面のテスト
子モデルの扱い
ワークフローのテスト

サーバの運用

Tomcatの設定

手動でTomcatへのデプロイを行う
ビルドせずにデータベースの接続先を変更する
ビルドせずに Tomcat のポート番号を変更する
運用時に再設定する可能性があるパラメータ一覧
TomcatにSSLサーバ証明書を登録する

Dockerを利用する

Wagby でビルドしたアプリケーションを Docker イメージとすることで、Docker をサポートする各種環境で運用することができます。

Dockerイメージの作成方法
外部データベースを利用する
ログ管理

オートスケール

オートスケール
オートスケールの設定方法 (マニュアルへのリンク)

その他

マルチセッション対応 - Redis サーバのインストール
検索エンジンの対象からはずすためのrobots.txtの書き方
Linxu OS 利用時の注意点 (OOM Killer)

AWSを利用する

概要
ドメインの設定
CloudFormationスタック
ビルドしたアプリケーションを転送する
削除
create-wmsa.cf.jsonファイルの詳細
トラブルシューティング

Wagbyマイクロサービス

マイクロサービスの考え方
モデルの設計
クラウドへの転送と動作の確認
アプリケーションの入れ替え
W-MSAによって挙動が変わる機能
バックアップポリシー
運用についての諸注意

その他の情報

設定ファイル

和暦の扱い
ログファイルの扱い

組織内でアドオンギャラリーを運用する

モジュラーモデルサーバを起動する
モジュラーモデルをサーバに登録する
開発したモデルを、モジュラーモデル形式に変換する

挙動の詳細

Wagbyアプリケーションが書き込むファイル
Wagbyアプリケーションが書き込むクッキー
Wagbyアプリケーションが利用するワークフロー管理テーブル

標準の動作を変える

休日判定ルールの変更方法

セキュリティ

IPA「安全なウェブサイトの作り方 改訂第7版」対応一覧表
公開されている重大な脆弱性への対応方法
セキュリティに関する設定のまとめ

同梱しているライブラリ

Wagbyが同梱するオープンソースのライブラリ一覧