コマンドスクリプティングを利用することによって、ビジネスクラス全体をJavaで記述する代わりに、処理のフローをXML形式で記述しJavaの記述を必要な部分のみに限定することができます。
以下はコマンドスクリプティングで処理を記述した例です。
<?xml version="1.0" encoding="UTF-8"?>
<commandMap
xmlns=http://interstage.fujitsu.com/schemas/uji/commandMap
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation="http://interstage.fujitsu.com/schemas/uji/commandMap
http://interstage.fujitsu.com/schemas/uji/commandmap.xsd">
<config>
<version>6.0</version>
</config>
<!-- 加算 sample1.BodyBean;add -->
<entry bean="sample1.BodyBean" verb="add">
<specSection>
<term property="val1" op="ADD" operand="val2" target="result"/>
</specSection>
<copyValue bean="#加算を実行しました。" targetProperty="message"/>
<setResponseBean pane="body" verb="resmode"/>
<invoke name="setHead"/>
</entry>
<!-- 初期処理 ; -->
<entry>
<!-- BodyBeanインスタンス生成 -->
<newBean cls="sample1.BodyBean" />
<setResponseBean pane="body" verb="reqmode" />
<invoke name="setHead"/>
</entry>
<!-- サブルーチン setHead -->
<procedure name="setHead">
<copyValue bean="uji.session" property="headBean" targetBean="hbean"/>
<specSection bean="hbean" targetBean="hbean">
<term property="count" op="ADD" operand="#1" target="count"/>
</specSection>
<setResponseBean pane="head" bean="hbean"/>
</procedure>
</commandMap>コマンドスクリプティングでは、以下のメリットがあります。
処理のフローが明確になる
Javaの処理を細分化し、再利用を容易にする
修正時の再構築が不要で、変更が容易にできる
以下のような場合は、Javaで記述する必要があります。
分岐や条件を伴い、一連のフローで表現できない場合
実行性能を追求する場合
コマンドスクリプティングには、以下の機能があります。
入力値の検証
EJBの呼び出し
一般のクラスの呼び出し
XMLデータ仕様記述の呼び出し
データBeanの領域への対応付け
ログの出力
サブルーチンの定義
例外のキャッチ