ページの先頭行へ戻る
Interstage Service Integrator V9.2.0 アプリケーション開発ガイド

C.2.15 互換機能の定義

C.2.15.1 メッセージ送信の定義(互換定義)

メッセージ送信の定義について説明します。

ルーティングなし

ルーティング機能を使用しないで、指定したサービスエンドポイントにメッセージ送信するには、以下のようにします。

指定例

実行ステップ情報の指定例は、以下のとおりです。この例では、サービスエンドポイント“com.fujitsu.esi.endpoint.outbound2”にメッセージ送信しています。

:
    <StepInformation stepname="SendMessage1">
        <MediatorFunction name="SendMessage">
            <Method type="init" name="init" />
            <Method type="execute" name="send">
                <ParameterList>
                    <Parameter name="esi.SendMessage.endpoint" valuetype="esi.header">com.fujitsu.esi.endpoint.outbound2</Parameter>
                </ParameterList>
            </Method>
            <Method type="cancel" name="cancel" />
            <Method type="destroy" name="destroy" />
        </MediatorFunction>
    </StepInformation>
:
表C.79 定義項目

キー名

説明

指定例

StepInformation

stepname

ステップ名を指定します。シーケンスブロックに指定したステップ名を指定してください。

SendMessage1

MediatorFunction

name

メディエータファンクション名“SendMessage”を指定します。

SendMessage

Method

type

実行種別“init”を指定します。

init

name

SendMessageのメソッド名“init”を指定します。

init

Method

type

実行種別“execute”を指定します。

execute

name

SendMessageのメソッド名“send”を指定します。

send

Parameter

1

サービスエンドポイント名を指定します。

name

“esi.SendMessage.endpoint”を指定します。

esi.SendMessage.endpoint

valuetype

パラメタに指定する値のタイプを指定します。

esi.header(共通メッセージ内のペイロード)

サービスエンドポイント名を指定します。

com.fujitsu.esi.endpoint.outbound2

Method

type

実行種別“cancel”を指定します。

cancel

name

SendMessageのメソッド名“cancel”を指定します。

cancel

Method

type

実行種別“destroy”を指定します。

destroy

name

SendMessageのメソッド名“destroy”を指定します。

destroy

ルーティングあり(ルーティング定義を利用しない)

ルーティング機能を使用して、条件に合ったサービスエンドポイントにメッセージ送信するには、以下のようにします。

指定例

実行ステップ情報の指定例は、以下のとおりです。この例では、“$price == 1000”の条件に合えばサービスエンドポイント“endpointA”に転送し、“$company @EQUAL@ "Fujitsu"”の条件に合えばサービスエンドポイント“endpointB”に転送し、その他の場合には、“com.fujitsu.esi.endpoint.outbound2”に転送しています。

:
    <StepInformation stepname="SendMessage2">
        <MediatorFunction name="SendMessage">
            <Method type="init" name="init" />
            <Method type="execute" name="sendWithRouting">
                <ParameterList>
                    <ParameterArray name="esi.SendMessage.endCondition">
                        <Parameter valuetype="direct">$price == 1000</Parameter>
                        <Parameter valuetype="direct">$company @EQUAL@ "Fujitsu"</Parameter>
                        <Parameter valuetype="direct">*</Parameter>
                    </ParameterArray>
                    <ParameterArray name="esi.SendMessage.endpoint">
                        <Parameter valuetype="direct">endpointA</Parameter>
                        <Parameter valuetype="direct">endpointB</Parameter>
                        <Parameter valuetype="esi.header">com.fujitsu.esi.endpoint.outbound2</Parameter>
                    </ParameterArray>
                </ParameterList>
            </Method>
            <Method type="cancel" name="cancel" />
            <Method type="destroy" name="destroy" />
        </MediatorFunction>
    </StepInformation>
:
表C.80 定義項目

キー名

説明

指定例

StepInformation

stepname

ステップ名を指定します。シーケンスブロックに指定したステップ名を指定してください。

SendMessage2

MediatorFunction

name

メディエータファンクション名“SendMessage”を指定します。

SendMessage

Method

type

実行種別“init”を指定します。

init

name

SendMessageのメソッド名“init”を指定します。

init

Method

type

実行種別“execute”を指定します。

execute

name

SendMessageのメソッド名“sendWithRouting”を指定します。

sendWithRouting

ParameterArray

name

“esi.SendMessage.endCondition”を指定します。条件リストの配列です。

esi.SendMessage.endCondition

1

Parameter

条件式を指定します。

valuetype

パラメタに指定する値のタイプを指定します。

direct(固定値)

条件式を指定します。詳細は、“条件式”を参照してください。

$price == 1000

2

Parameter

条件式を指定します。

valuetype

パラメタに指定する値のタイプを指定します。

direct(固定値)

条件式を指定します。詳細は、“条件式”を参照してください。

$company @EQUAL@ "Fujitsu"

3

Parameter

条件式を指定します。

valuetype

パラメタに指定する値のタイプを指定します。

direct(固定値)

条件式を指定します。詳細は、“条件式”を参照してください。

*

ParameterArray

name

“esi.SendMessage.endpoint”を指定します。サービスエンドポイントリストの配列です。

esi.SendMessage.endpoint

1

Parameter

条件式1のサービスエンドポイントを指定します。

valuetype

パラメタに指定する値のタイプを指定します。

direct(固定値)

サービスエンドポイントを指定します。

endpointA

2

Parameter

条件式2のサービスエンドポイントを指定します。

valuetype

パラメタに指定する値のタイプを指定します。

direct(固定値)

サービスエンドポイントを指定します。

endpointB

3

Parameter

条件式3のサービスエンドポイントを指定します。

valuetype

パラメタに指定する値のタイプを指定します。

esi.header(共通メッセージ内のヘッダパラメタ)

サービスエンドポイントを指定します。

com.fujitsu.esi.endpoint.outbound2

Method

type

実行種別“cancel”を指定します。

cancel

name

SendMessageのメソッド名“cancel”を指定します。

cancel

Method

type

実行種別“destroy”を指定します。

destroy

name

SendMessageのメソッド名“destroy”を指定します。

destroy

条件式

ここでは、条件式で使用できる演算子と文法について説明します。

演算子

条件式で使用できる演算子を以下に示します。

表C.81 演算子の一覧

演算子

説明

>

数値比較を行います。左辺の値が右辺の値よりも大きい場合に真となります。

<

数値比較を行います。左辺の値が右辺の値よりも小さい場合に真となります。

>=

数値比較を行います。左辺の値が右辺の値以上の場合に真となります。

<=

数値比較を行います。左辺の値が右辺の値以下の場合に真となります。

==

数値比較を行います。左辺の値が右辺の値と等しい場合に真となります。

!=

数値比較を行います。左辺の値が右辺の値と異なる場合に真となります。

@EQUAL@

文字列比較を行います。左辺の文字列が右辺の文字列と等しい場合に真となります。

@NOTEQUAL@

文字列比較を行います。左辺の文字列が右辺の文字列と異なる場合に真となります。

条件式の文法

条件式には、以下の文法があります。

XML文書中には直接“ " ”、“&”、“<”および“>”を記述することができません。条件式でこれらの文字を使用する場合は、CDATAセクションまたは実体参照を使用して記述してください。

$price >= 1000を定義する場合

ルーティングあり(ルーティング定義を利用)

送信するメッセージ内の値や条件によって、動的に送信先サービスエンドポイントを設定するには、以下のようにします。

指定例

実行ステップ情報の指定例は、以下のとおりです。この例では、OUTBOUND用のルーティング定義“routingA”にメッセージを送信しています。

:
    <StepInformation stepname="SendMessage3">
        <MediatorFunction name="SendMessage">
            <Method type="init" name="init" />
            <Method type="execute" name="sendWithContentsRouting">
                <ParameterList>
                    <Parameter name="esi.SendMessage.routing.definition">routingA</Parameter>
                </ParameterList>
            </Method>
            <Method type="cancel" name="cancel" />
            <Method type="destroy" name="destroy" />
        </MediatorFunction>
    </StepInformation>
:
表C.82 定義項目

キー名

説明

指定例

StepInformation

stepname

ステップ名を指定します。シーケンスブロックに指定したステップ名を指定してください。

SendMessage3

MediatorFunction

name

メディエータファンクション名“SendMessage”を指定します。

SendMessage

Method

type

実行種別“init”を指定します。

init

name

SendMessageのメソッド名“init”を指定します。

init

Method

type

実行種別“execute”を指定します。

execute

name

SendMessageのメソッド名“sendWithContentsRouting”を指定します。

sendWithContentsRouting

Parameter

1

ルーティング定義名を指定します。

name

“esi.SendMessage.routing.definition”を指定します。

esi.SendMessage.routing.definition

valuetype

パラメタに指定する値のタイプを指定します。

direct(固定値)

ルーティング定義名を指定します。

routingA

Method

type

実行種別“cancel”を指定します。

cancel

name

SendMessageのメソッド名“cancel”を指定します。

cancel

Method

type

実行種別“destroy”を指定します。

destroy

name

SendMessageのメソッド名“destroy”を指定します。

destroy

ルーティング定義名で指定するルーティング定義は、送信メッセージルーティング(OUTBOUND)を指定してください。

同報送信

複数の送信側サービスエンドポイントや複数のシーケンスに同報送信するには、以下のようにします。

指定例

実行ステップ情報の指定例は、以下のとおりです。この例では、サービスエンドポイント“endpointA”、“endpointB”、“endpointC”に同報でメッセージを送信しています。

:
    <StepInformation stepname="SendMessage3">
        <MediatorFunction name="SendMessage">
            <Method type="init" name="init" />
            <Method type="execute" name="multicast">
                <ParameterList>
                    <Parameter name="esi.SendMessage.error.send.action">continue</Parameter>
                    <Parameter name="esi.SendMessage.error.sequence.action">break</Parameter>
                    <ParameterArray name="esi.SendMessage.endpoint">
                          <Parameter>endpointA</Parameter>
                          <Parameter>endpointB</Parameter>
                          <Parameter>endpointC</Parameter>
                    </ParameterArray>
                </ParameterList>
            </Method>
            <Method type="cancel" name="cancel" />
            <Method type="destroy" name="destroy" />
        </MediatorFunction>
    </StepInformation>
:
表C.83 定義項目

キー名

説明

指定例

StepInformation

stepname

ステップ名を指定します。シーケンスブロックに指定したステップ名を指定してください。

SendMessage3

MediatorFunction

name

メディエータファンクション名“SendMessage”を指定します。

SendMessage

Method

type

実行種別“init”を指定します。

init

name

SendMessageのメソッド名“init”を指定します。

init

Method

type

実行種別“execute”を指定します。

execute

name

SendMessageのメソッド名“multicast”を指定します。

multicast

Parameter

1

エラー発生時に同報送信を継続するかどうかを指定します。

name

“esi.SendMessage.error.send.action”を指定します。

esi.SendMessage.error.send.action

valuetype

パラメタに指定する値のタイプを指定します。

direct(固定値)

エラー発生時に同報送信を継続するかどうかを指定します。

  • continue
    継続(デフォルト)

  • break
    中断

continue

2

エラー発生時にシーケンス処理を継続するかどうかを指定します。

name

“esi.SendMessage.error.sequence.action”を指定します。

esi.SendMessage.error.sequence.action

valuetype

パラメタに指定する値のタイプを指定します。

direct(固定値)

エラー発生時にシーケンス処理を継続するかどうかを指定します。

  • continue
    継続(デフォルト)

  • break
    中断

continue

ParameterArray

name

“esi.SendMessage.endpoint”を指定します。サービスエンドポイントリストの配列です。

esi.SendMessage.endpoint

1

Parameter

送信先1のサービスエンドポイント名を指定します。

valuetype

パラメタに指定する値のタイプを指定します。

direct(固定値)

サービスエンドポイントを指定します。

endpointA

2

Parameter

送信先2のサービスエンドポイント名を指定します。

valuetype

パラメタに指定する値のタイプを指定します。

direct(固定値)

サービスエンドポイントを指定します。

endpointB

3

Parameter

送信先3のサービスエンドポイント名を指定します。

valuetype

パラメタに指定する値のタイプを指定します。

direct(固定値)

サービスエンドポイントを指定します。

endpointC

Method

type

実行種別“cancel”を指定します。

cancel

name

SendMessageのメソッド名“cancel”を指定します。

cancel

Method

type

実行種別“destroy”を指定します。

destroy

name

SendMessageのメソッド名“destroy”を指定します。

destroy

C.2.15.2 SOAP Gatewayの定義(互換定義)

SOAP Gatewayを使用するには、以下のようにします。

指定例

実行ステップ情報の指定例は、以下のとおりです。この例では、共通メッセージ本体をパラメタに指定して、メディエータファンクション“ESISoapGw”のメソッド“sendMessage”を呼び出しています。

:
    <StepInformation stepname="GwStep">
        <MediatorFunction name="ESISoapGw">
            <Method type="execute" name="sendMessage">
            <ParameterList>
                <Parameter name="esi.SoapGateway.endpoint" valuetype="direct">endpoint01</Parameter>
            </ParameterList>
            </Method>
        </MediatorFunction>
    </StepInformation>
:
表C.84 定義項目

キー名

説明

指定例

StepInformation

stepname

ステップ名を指定します。シーケンスブロックに指定したステップ名を指定してください。

GwStep

MediatorFunction

name

SOAP Gatewayのメディエータファンクション名“ESISoapGw”を指定します。

ESISoapGw

Method

type

実行種別“execute”を指定します。

execute

name

ESISoapGwのメソッド名“sendMessage”を指定します。

sendMessage

Parameter

name

“esi.SoapGateway.endpoint”を指定します。

esi.SoapGateway.endpoint

valuetype

パラメタに指定する値のタイプ“direct”(固定値)を指定します。

direct

サービスエンドポイント名を指定します。

endpoint01

Parameterの“esi.SoapGateway.endpoint”を省略した場合は、ESIHeaderのパラメタ“com.fujitsu.esi.endpoint.outbound”の値が使用されます。

C.2.15.3 JCA Adapterの定義(互換定義)

JCA Adapterを使用するには、以下のようにします。

指定例

実行ステップ情報の指定例は、以下のとおりです。この例では、サービスエンドポイント名“esi.JcaAdapter.endpoint”に定義されたアダプタ製品または企業情報システムを呼び出します。

:
    <StepInformation stepname="JcaAdapter1" monitoring="false">
        <MediatorFunction name="JCAAdapter">
            <Method type="execute" name="execute">
                <ParameterList>
                    <Parameter name="esi.JcaAdapter.payload" valuetype="esi.payload">@current</Parameter>
                    <Parameter name="esi.JcaAdapter.endpoint" valuetype="direct">jca_endpoint</Parameter>
                    <Parameter name="esi.JcaAdapter.charcode" valuetype="direct">UTF-8</Parameter>
                    <Parameter name="esi.JcaAdapter.isTransaction">true</Parameter>
                </ParameterList>
                <Return valuetype="esi.payload"></Return>
            </Method>
        </MediatorFunction>
    </StepInformation>
:
表C.85 定義項目

キー名

説明

指定例

StepInformation

stepname

ステップ名を指定します。シーケンスブロックに指定したステップ名を指定してください。

JcaAdapter1

MediatorFunction

name

メディエータファンクション名“JCAAdapter”を指定します。

JCAAdapter

Method

type

実行種別“execute”を指定します。

execute

name

JCAAdapterのメソッド名“execute”を指定します。

execute

Parameter

1

ペイロードを指定します。

name

“esi.JcaAdapter.payload”を指定します。

esi.JcaAdapter.payload

valuetype

パラメタに指定する値のタイプを指定します。

esi.payload(共通メッセージ内のペイロード)

JCAアダプタで渡すペイロードを指定します。

@current

2

サービスエンドポイント名を指定します。

name

“esi.JcaAdapter.endpoint”を指定します。

esi.JcaAdapter.endpoint

valuetype

パラメタに指定する値のタイプ“direct”(固定値)を指定します。

direct

サービスエンドポイント名を指定します。

jca_endpoint

3

ペイロードの文字コードを指定します。

name

“esi.JcaAdapter.charcode”を指定します。

esi.JcaAdapter.charcode

valuetype

パラメタに指定する値のタイプ“direct”(固定値)を指定します。

direct

ペイロードの文字コードを指定します。

UTF-8

4

トランザクション制御を指定します。

name

“esi.JcaAdapter.isTransaction”を指定します。

esi.JcaAdapter.isTransaction

valuetype

パラメタに指定する値のタイプ“direct”(固定値)を指定します。

direct

トランザクション制御を指定します。

  • true
    する

  • false
    しない

true

Method

type

実行種別“cancel”を指定します。

cancel

name

JCAAdapterのメソッド名“cancel”を指定します。

cancel

Method

type

実行種別“destroy”を指定します。

destroy

name

JCAAdapterのメソッド名“destroy”を指定します。

destroy