IBM CICS Transaction Gateway コネクタ

Premium

IBM CICS Transaction Gateway (IBM CTG) コネクタは、CICS Transaction Gateway を使用してバックエンド CICS アプリケーションとの統合を実現します。CTG は、Java プラットフォーム向けに JCA リソースアダプタを実装することで、Java アプリケーションを CICS システムに接続できるようにしています。

このコネクタは、Mule アプリケーションと CTG の間のリンクとして機能します。

前提条件

このドキュメントは、読者が IBM CTG、Mule、Anypoint コネクタ、Anypoint Studio、Mule の概念、Mule フローの要素、グローバル要素に精通していることを前提としています。

対象リソースへの接続をテストするには、ログイン情報が必要です。

ハードウェアとソフトウェアの要件および互換性に関する情報は、「コネクタリリースノート」を参照してください。

Maven でこのコネクタを使用するには、Anypoint Exchange の [Dependency Snippets (連動関係スニペット)] で pom.xml の連動関係情報を確認してください。

重要な概念

  • CICS (Customer Information Control System): 安全で拡張性が高くコスト効果に優れた環境で大量トランザクションのワークロードをサポートするエンタープライズアプリケーションサーバの統合システム。CICS アプリケーションは、Java から COBOL まで、さまざまな言語で書かれています。

  • CICS リージョン: CICS によって 1 つの単位として制御される、名前の付いたリソースの集合。CICS リソースとは、タスクを実行するのに必要な、CICS システムを構成する機器またはコンポーネントです。

  • CICS TG (CICS Transaction Gateway): リモートクライアントアプリケーションが CICS リージョン内のサービスを呼び出せるようにするためのクライアントおよびサーバソフトウェアコンポーネントの集合。クライアントアプリケーションには、Java アプリケーションと 非 Java アプリケーションがあります。CICS TG は、CICS TG on z/OS と CICS TG for Multiplatforms の 2 つの製品で利用できます。

  • COMMAREA: プログラム間でのデータの受け渡しに使用される連続したメモリのブロック。COBOL 構造のバイナリ版であり、キャラクタベースで定義されます。

  • ECI (External Call Interface): CICS アプリケーションとのリンクに使用されるシンプルなリモートプロシージャコールスタイルのインターフェース。クライアントアプリケーションと CICS との間でデータを交換するためのデータインターフェースとしては COMMAREA またはチャネルが使用されます。

  • JCA: J2EE プラットフォームを CICS などの異機種エンタープライズ情報システム (EIS) に接続するための標準アーキテクチャ。EIS ベンダは、JCA に準拠することで自社の EIS 用の標準リソースアダプタを提供することができます。リソースアダプタは、Java アプリケーションと EIS の中間層として機能し、Java アプリケーションを EIS に接続します。

このコネクタの新機能

Mule4 のサポートが追加されました。

Design Center での接続方法

  1. Design Center で、[Set Up (セットアップ)] > [Upload (アップロード)] をクリックし、ファイルシステムにあるこのコネクタのドライバを参照して選択し、アップロードします。または、すでにアップロードされているドライバを検索して選択します。

  2. トリガをクリックします。このコネクタをトリガとして選択することでグローバル要素を作成できます。 グローバル要素が不要な場合は、HTTP リスナまたはスケジューラトリガを使用できます。

    トリガオプション
  3. コネクタの HTTP グローバル要素を作成するには、次の項目を設定します。

    HTTP リスナの設定
    項目 説明

    Protocol (プロトコル)

    HTTP エンドポイントのプロトコル。HTTP または HTTPS (セキュア) を選択できます。

    Host (ホスト)

    Mule アプリケーションが要求をリスンする IP アドレス。

    Port (ポート)

    Mule アプリケーションが要求をリスンするポートアドレス。

    Base (ベース)

    Mule アプリケーションが要求をリスンするパス。

  4. プラス記号を選択して、コンポーネントを追加します。

    コネクタの追加
  5. コンポーネントとしてコネクタを選択します。

  6. 操作を選択します。

    コネクタの設定
    名前 説明

    Execute

    データをチャネルおよびコンテナとしてカプセル化して CICS プログラムを呼び出します。

    Execute using COMMAREA

    データを COMMAREA としてカプセル化して CICS プログラムを呼び出します。要求の最大サイズは 32 KB です。

  7. コネクタのグローバル要素を設定します。

    コネクタの設定
    項目 説明

    Host (ホスト)

    CICS TG のホスト名を入力します。

    Port (ポート)

    CICS TG が動作しているポートを入力します。デフォルト値は 2006 です。

    Server Name (サーバ名)

    CICS TG 設定ファイルに定義されている対象 CICS サーバ名を入力します。省略可能。

    Username (ユーザ名)

    CICS ユーザ ID を入力します。CICS リージョンでセキュリティが有効化されていない場合は省略可能です。

    Password (パスワード)

    CICS ユーザ ID のパスワードを入力します。CICS リージョンでセキュリティが有効化されていない場合は省略可能です。

  8. 連動関係の追加に進みます。

    連動関係コネクタ
    連動関係コネクタ
    項目 説明

    Required Dependencies (必要な連動関係)

    • ccf2.jar (CICS 共通コネクタフレームワーク)

    • cicsjee.jar (CICS JEE)

    • ctgclient.jar (CTG クライアントライブラリ)

    • ctgserver.jar (CTG サーバライブラリ)

    • geronimo-j2ee-connector_1.6_spec-1.0.jar

      注意: コネクタと CTG システムとの互換性を保証するため、IBM のウェブサイトから SDK の ZIP ファイルをダウンロードするのではなく、CTG サーバのインストールパッケージにバンドルされている JAR ファイルを使用した方がよいでしょう。

  9. [Advanced Settings (詳細設定)] タブに移動して設定を完了します。

    コネクタの設定
    項目 説明

    Connection Timeout (接続タイムアウト)

    クライアントから CTG へのソケットタイムアウトを入力します。デフォルト値は 0 (タイムアウトなし) です。

    Keystore Location (キーストアの場所)

    SSL クライアントに必要な証明書が格納されたキーストアの場所を入力します。省略可能。

    Keystore Password (キーストアパスワード)

    SSL クライアント用のキーストアにアクセスするためのパスワードを入力します。省略可能。

    CTG Trace (CTG トレース)

    オンにすると、CTG トレースのすべてのデバッグレベルがオンになります。デフォルト値は false です。

Anypoint Studio 7 での接続

このコネクタは、連動関係として Mule アプリケーションに追加すれば Anypoint Studio で使用できます。

このコネクタのインストール方法

  1. Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。

  2. Anypoint Exchange で [Login (ログイン)] をクリックします。

  3. コネクタを検索して [Install (インストール)] をクリックします。

  4. 画面の指示に従ってコネクタをインストールします。

Studio の更新がある場合、右下隅にメッセージが表示されます。メッセージをクリックすると、更新をインストールできます。

設定方法

  1. コネクタをドラッグして Studio キャンバスにドロップします。

  2. コネクタのグローバル要素を設定します。

    コネクタの設定
    項目 説明

    Host (ホスト)

    CICS TG のホスト名を入力します。

    Port (ポート)

    CICS TG が動作しているポートを入力します。デフォルト値は 2006 です。

    Server Name (サーバ名)

    CICS TG 設定ファイルに定義されている対象 CICS サーバ名を入力します。省略可能。

    Username (ユーザ名)

    CICS ユーザ ID を入力します。CICS リージョンでセキュリティが有効化されていない場合は省略可能です。

    Password (パスワード)

    CICS ユーザ ID のパスワードを入力します。CICS リージョンでセキュリティが有効化されていない場合は省略可能です。

    Required Dependencies (必要な連動関係)

    • ccf2.jar (CICS 共通コネクタフレームワーク)

    • cicsjee.jar (CICS JEE)

    • ctgclient.jar (CTG クライアントライブラリ)

    • ctgserver.jar (CTG サーバライブラリ)

    • geronimo-j2ee-connector_1.6_spec-1.0.jar

      注意: コネクタと CTG システムとの互換性を保証するため、IBM のウェブサイトから SDK の ZIP ファイルをダウンロードするのではなく、CTG サーバのインストールパッケージにバンドルされている JAR ファイルを使用した方がよいでしょう。

  3. 連動関係を追加するには、[Add dependency (連動関係を追加)] を選択して、項目に情報を入力します。

    連動関係コネクタ
  4. [Advanced Settings (詳細設定)] タブに移動して設定を完了します。

    コネクタの設定
    項目 説明

    Connection Timeout (接続タイムアウト)

    クライアントから CTG へのソケットタイムアウトを入力します。デフォルト値は 0 (タイムアウトなし) です。

    Keystore Location (キーストアの場所)

    SSL クライアントに必要な証明書が格納されたキーストアの場所を入力します。省略可能。

    Keystore Password (キーストアパスワード)

    SSL クライアント用のキーストアにアクセスするためのパスワードを入力します。省略可能。

    CTG Trace (CTG トレース)

    オンにすると、CTG トレースのすべてのデバッグレベルがオンになります。デフォルト値は false です。

  5. 操作を選択します。

    操作コネクタ

    IBM CTG コネクタは次の 2 つのアウトバウンド操作をサポートします。

    名前 説明

    Execute

    データをチャネルおよびコンテナとしてカプセル化して CICS プログラムを呼び出します。

    Execute using COMMAREA

    データを COMMAREA としてカプセル化して CICS プログラムを呼び出します。要求の最大サイズは 32 KB です。

一般的なユースケース

  • COMMAREA プログラムを呼び出す

  • チャネルプログラムを呼び出す

  • トランザクションスコープ内で COMMAREA またはチャネルを呼び出す

  • カスタムメタデータを追加する

注意: ユースケース 1 ~ 3 を正常に実施するためには、呼び出される CICS プログラムが対象 CICS システム上で利用できる必要があります。

COMMAREA プログラムを呼び出す

このアプリケーションは、EC01 という COMMAREA ベースのプログラムを呼び出します。EC01 は、現在の日付と時刻を、書式設定された EBCDIC 文字列として出力します。

CTG COMMAREA フロー
  1. Anypoint Studio で新しい Mule プロジェクトを作成し、IBM CTG のログイン情報を src/main/resources/mule-app.properties に入力します。

    ctg.host=<HOST>
    ctg.port=<PORT>
    ctg.serverName=<SERVER_NAME>
    ctg.username=<USERNAME>
    ctg.password=<PASSWORD>
  2. HTTP コネクタをキャンバスにドラッグし、[Host (ホスト)] と [Port (ポート)] はデフォルト値のままにして、パスを /test/ec01 に設定します。

  3. IBM CTG コンポーネントをキャンバスにドラッグして、標準 (非 SSL) クライアントを設定するための新しいグローバル要素を追加します。

    パラメータ

    Host (ホスト)

    ${ctg.host}

    Port (ポート)

    ${ctg.port}

    Server Name (サーバ名)

    ${ctg.serverName}

    Username (ユーザ名)

    ${ctg.username}

    Password (パスワード)

    ${ctg.password}

    注意: [Test Connection (接続をテスト)] オプションをクリックして、Mule が IBM CTG インスタンスに接続できることを確認してください。接続に成功した場合は、[OK] をクリックして設定を保存します。失敗した場合は、パラメータを確認して修正し、もう一度テストを実行してください。

  4. IBM CTG コンポーネントをダブルクリックし、Execute 操作を選択して、次のパラメータを設定します。

    パラメータ

    Content Reference (コンテンツリファレンス)

    #[payload]

    Request Reference (要求リファレンス)

    #[flowVars.commareaRequest]

  5. HTTP と IBM CTG コンポーネントの間に変換メッセージを追加します。コネクタは動的/静的メタデータを提供していませんが、Metadata Type (メタデータ型) ツールを使用して、カスタム型を定義することができます。

    1. 「カスタムメタデータの追加」の説明に従い、スキーマファイルの ec01-type.ffd を使用して入力メタデータを定義します。

      form: COPYBOOK
      id: 'DFHCOMMAREA'
      values:
      - { name: 'LK-DATE-OUT', type: String, length: 8 }
      - { name: 'LK-SPACE-OUT', type: String, length: 1 }
      - { name: 'LK-TIME-OUT', type: String, length: 8 }
      - { name: 'LK-LOWVAL-OUT', type: String, length: 1 }
    2. DataWeave トランスフォーマの項目をマップします。

      %dw 2.0
      output text/plain schemaPath = "ec01-type.ffd", segmentIdent = "DFHCOMMAREA"
      ---
      [{
          LK-DATE-OUT: "",
          LK-SPACE-OUT: "",
          LK-TIME-OUT: "",
          LK-LOWVAL-OUT: ""
      }]
    3. flow 変数を commareaRequest という名前で作成し、次の項目を設定します (「Java メタデータを読み込む」参照)。

      %dw 2.0
      output application/java
      ---
      
      {
      	channel: "EC03",
      	encoding: "US-ASCII",
      	errorContainer: "OUTPUTMESSAGE",
      	programName: "EC03",
      	requestContainer: "INPUTDATA",
      	responseContainer: "CICSDATETIME",
      	tpnName: "CSMI"
      } as Object {
      	class : "org.mule.modules.ibmctg.internal.model.ChannelRequest"
      }

      「Java メタデータを読み込む」を参照して、commareaRequest のメタデータを取得します。

  6. IBM CTG の後に変換メッセージを追加して、結果を JSON 形式で抽出します。

    %dw 2.0
    output application/json
    ---
    {
    	date: payload
    }
  7. フローの最後にロガーを追加します。

  8. 変更内容を保存して、Mule アプリケーションをデプロイします。ブラウザを開いて、http://localhost:8081/ec01 に要求を送信します。次のような結果が返されます。

    {
        date: "08/01/18 13:41:17"
    }

チャネルプログラムを呼び出す

このアプリケーションは、EC03 というチャネルベースのプログラムを呼び出します。EC03 は、入力データコンテナを取って 3 つのコンテナを返します。

  • 日付/時刻コンテナ。

  • 入力データと戻り値の長さ。CICS プログラムのチャネルとコンテナを使用します。

  • 入力コンテナのコピーまたはエラーメッセージが格納された出力コンテナ。

チャネルプログラム
  1. 上の例のステップ 1 ~ 3 を実行して、HTTP パスを /ec03 に設定します。

  2. IBM CTG コンポーネントをダブルクリックし、Execute 操作を選択して、次のパラメータを設定します。

    パラメータ

    Content Reference (コンテンツリファレンス)

    #[payload]

    Request Reference (要求リファレンス)

    #[flowVars.request]

  3. HTTP と IBM CTG コンポーネントの間に変換メッセージを追加します。

  4. 「カスタムメタデータの追加」の説明に従い、スキーマファイルの ec03-type.ffd を使用して入力メタデータを定義します。

    form: COPYBOOK
    id: 'DFHCOMMAREA'
    values:
    - { name: 'CICS-DATE-TM', type: String, length: 8 }
  5. DataWeave トランスフォーマの項目をマップします。

    %dw 2.0
    output text/plain schemaPath = "ec03-type.ffd", segmentIdent = "DFHCOMMAREA"
    ---
    [{
    	CICS-DATE-TM: ""
    }]
  6. flow 変数を request という名前で作成し、次の項目を設定します (「Java メタデータを読み込む」参照)。

    %dw 2.0
    output application/java
    ---
    {
    	channel: "EC03",
    	encoding: "US-ASCII",
    	errorContainer: "OUTPUTMESSAGE",
    	programName: "EC03",
    	requestContainer: "INPUTDATA",
    	responseContainer: "CICSDATETIME",
    	tpnName: "CSMI"
    } as Object {
    	class : "org.mule.modules.ibmctg.internal.model.ChannelRequest"
    }
  7. IBM CTG の後に変換メッセージを追加して、結果を読みやすい形式に変換します。

  8. フローの最後にロガーを追加します。

  9. 変更内容を保存して、Mule アプリケーションをデプロイします。ブラウザを開いて、http://localhost:8081/ec03 に要求を送信します。次のような結果が返されます。

    {
       cics-date-time: "08/01/2018 13:57:25"
    }

トランザクションスコープ内で COMMAREA またはチャネルを呼び出す

このアプリケーションは、EC02 という COMMAREA ベースのプログラムを呼び出します。EC02 は、シンプルな実行カウンタを返します。

Studio でのユースケースフロー
  1. 上の例のステップ 1 ~ 3 を実行して、HTTP パスを /test/ec02 に設定します。

  2. [Global Elements (グローバル要素)] タブで新しい Bitronix トランザクションマネージャを追加し、設定はそのままにします。

  3. トランザクション要素を HTTP の隣にドラッグし、次の表に従って設定します。

    パラメータ

    Type (型)

    XA Transaction

    Action (アクション)

    BEGIN_OR_JOIN

  4. IBM CTG コンポーネントをダブルクリックし、Execute using COMMAREA 操作を選択して、次のパラメータを設定します。

    パラメータ

    Content Reference (コンテンツリファレンス)

    #[payload]

    Request Reference (要求リファレンス)

    #[flowVars.request]

  5. HTTP と IBM CTG コンポーネントの間に変換メッセージを追加します。コネクタは動的/静的メタデータを提供していませんが、Metadata Type (メタデータ型) ツールを使用して、カスタム型を定義することができます。

  6. 「カスタムメタデータの追加」の説明に従い、スキーマファイルの ec02-type.ffd を使用して入力メタデータを定義します。

    form: COPYBOOK
    id: 'DFHCOMMAREA'
    values:
    - { name: 'LK-COUNT', type: String, length: 40 }
  7. DataWeave トランスフォーマの項目をマップします。

    %dw 2.0
    %output text/plain schemaPath = "ec02-type.ffd" , segmentIdent = "DFHCOMMAREA"
    ---
    [{
    	LK-COUNT: "000001234TH RUN OF EC02"
    }]
  8. flow 変数を request という名前で作成し、次の項目を設定します (「Java メタデータを読み込む」参照)。

    %dw 2.0
    output application/java
    ---
    {
    	commareaLength: 40,
    	encoding: "IBM037",
    	programName: "EC02",
    	replyLength: 40,
    	tpnName: "CSMI"
    } as Object {
    	class : "org.mule.modules.ibmctg.internal.model.CommareaRequest"
    }
  9. IBM CTG の後に変換メッセージを追加して、結果を JSON 形式で抽出します。

    %dw 2.0
    output application/json
    ---
    {
    	count: payload
    }
  10. フローの最後にロガーを追加します。

  11. 変更内容を保存して、Mule アプリケーションをデプロイします。ブラウザを開いて、http://localhost:8081/ec02 に要求を送信します。次のような結果が返されます。

    {
        count: "1st RUN OF EC02"
    }

カスタムメタデータを追加する

IBM CTG コネクタは設定済みの動的/静的メタデータを提供していませんが、Metadata Type (メタデータ型プ) ツールを使用して、カスタム型を定義することができます。以下の説明に従って、入力および出力メタデータを定義してください。

  1. スキーマファイルは、通常は .ffd 形式で src/main/resources ディレクトリに格納します。

    注意: これらのスキーマファイルはユーザが用意する必要があります。CICS のインストールパッケージに含まれている COBOL コピーブックからも入手できます。

  2. コネクタ操作の [Metadata (メタデータ)] タブに移動して、[Add metadata (メタデータを追加)] ボタンをクリックします。

    • [Input:Payload (入力:ペイロード)] を選択し、編集アイコンをクリックして Metadata Editor (メタデータエディタ) を開きます。

      Metadata Editor (メタデータエディタ)
  3. [Add (追加)] をクリックして新しい型を作成し、ID を入力します (例: EC03 プログラムの入力データであれば ec03-in-type)。

  4. [Copybook] 型を選択してから [Schema (スキーマ)] を選択し、スキーマファイルの場所を指定します。

  5. 利用可能なデータセグメントのリストがドロップダウンとして表示されます。必要なファイルを選択してから [Select (選択)] ボタンをクリックし、設定を保存します。

  6. DataWeave トランスフォーマを IBM CTG コンポーネントの前にドラッグします。マッピングを定義するためのメタデータフィールドが利用可能になります。

    メタデータ項目

    注意: メタデータを定義しなくても IBM CTG コネクタは使用できますが、コネクタを使いやすくするためには必要です。このドキュメントの最後にある「関連情報」の「メタデータの作成」を参照してください。

Java メタデータを読み込む

DataWeave 内で [Define Metadata (メタデータを定義)] リンクをクリックして [Metadata (メタデータ)] ウィンドウを開きます。

  1. [Add (追加)] をクリックして、ID (例: CommareaRequest) を入力します。

  2. [Java] 型を選択し、[Data Structure (データ構造)] テーブルで Java オブジェクトを選択します。

  3. クラス名の CommareaRequest (または完全修飾名の org.mule.modules.ibmctg.internal.model.CommareaRequest) を検索して [OK] をクリックします。

  4. [Select (選択)] ボタンをクリックして設定を保存します。

  5. 同じステップを繰り返して、ChannelRequest 型のメタデータを読み込みます。

ユースケース: XML

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:bti="http://www.mulesoft.org/schema/mule/ee/bti"
	xmlns:ibmctg="http://www.mulesoft.org/schema/mule/ibmctg"
	xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core"
	xmlns:http="http://www.mulesoft.org/schema/mule/http"
	xmlns="http://www.mulesoft.org/schema/mule/core"
	xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/ee/bti
http://www.mulesoft.org/schema/mule/ee/bti/current/mule-bti-ee.xsd
http://www.mulesoft.org/schema/mule/core
http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/http
http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/ee/core
http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
http://www.mulesoft.org/schema/mule/ibmctg
http://www.mulesoft.org/schema/mule/ibmctg/current/mule-ibmctg.xsd">
	<configuration-properties file="automation-credentials.properties"/>
	<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" basePath="/" >
		<http:listener-connection host="0.0.0.0" port="8081" />
	</http:listener-config>
	<bti:transaction-manager />
	<ibmctg:config name="IBMCTG_Config" doc:name="IBMCTG Config">
		<ibmctg:connection host="${config.host}" port="${config.port}" serverName="${config.serverName}" username="${config.username}" password="${config.password}" />
	</ibmctg:config>
	<flow name="ibmdemoFlow">
		<http:listener doc:name="/ec01" config-ref="HTTP_Listener_config" path="/ec01"/>
		<ee:transform doc:name="Transform Message">
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/flatfile schemaPath = "ec01-type.ffd", segmentIdent = "DFHCOMMAREA"
---
[{
	"LK-DATE-OUT": "",
	"LK-SPACE-OUT": "",
	"LK-TIME-OUT": "",
	"LK-LOWVAL-OUT": ""
}]]]></ee:set-payload>
			</ee:message>
			<ee:variables >
				<ee:set-variable variableName="request" ><![CDATA[%dw 2.0

output application/java
---
{
	commareaLength: 18,
	encoding: "IBM037",
	programName: "EC01",
	replyLength: 18,
	tpnName: "CSMI"
} as Object {
	class : "org.mule.modules.ibmctg.internal.model.CommareaRequest"
}]]></ee:set-variable>
			</ee:variables>
		</ee:transform>
		<ibmctg:execute-using-commarea doc:name="Execute using commarea"
		commareaRequestType="#[vars.request]" config-ref="IBMCTG_Config"/>
		<ee:transform doc:name="Transform Message">
			<ee:message >
				<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
	date:payload
}]]></ee:set-payload>
			</ee:message>
		</ee:transform>
	</flow>
	<flow name="ibmdemoFlow2">
		<http:listener doc:name="/ec02" config-ref="HTTP_Listener_config" path="/ec02"/>
		<try doc:name="Try" transactionalAction="ALWAYS_BEGIN" transactionType="XA">
			<ee:transform doc:name="Transform Message">
				<ee:message>
					<ee:set-payload ><![CDATA[%dw 2.0
output application/flatfile schemaPath = "ec02-type.ffd" , segmentIdent = "DFHCOMMAREA"
---
[{
	"LK-COUNT": "000001234TH RUN OF EC02"
}]]]></ee:set-payload>
				</ee:message>
				<ee:variables >
					<ee:set-variable variableName="request" ><![CDATA[%dw 2.0
output application/java
---
{
	commareaLength: 40,
	encoding: "IBM037",
	programName: "EC02",
	replyLength: 40,
	tpnName: "CSMI"
} as Object {
	class : "org.mule.modules.ibmctg.internal.model.CommareaRequest"
}]]></ee:set-variable>
				</ee:variables>
			</ee:transform>
			<ibmctg:execute-using-commarea doc:name="Execute using commarea" config-ref="IBMCTG_Config" commareaRequestType="#[vars.request]"/>
			<ee:transform doc:name="Transform Message">
				<ee:message >
					<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
	count:payload
}]]></ee:set-payload>
				</ee:message>
			</ee:transform>
		</try>
	</flow>
	<flow name="ibmdemoFlow1">
		<http:listener doc:name="/ec03" config-ref="HTTP_Listener_config" path="/ec03"/>
		<try doc:name="Try" transactionalAction="ALWAYS_BEGIN" transactionType="XA">
			<ee:transform doc:name="Transform Message">
				<ee:message >
					<ee:set-payload ><![CDATA[%dw 2.0
output application/flatfile
schemaPath = "ec03-type.ffd" , segmentIdent = "DFHCOMMAREA"
---
[{
	"CICS-DATE-TM": null
}]]]></ee:set-payload>
				</ee:message>
				<ee:variables >
					<ee:set-variable variableName="request" ><![CDATA[%dw 2.0

output application/java
---
{
	channel: "EC03",
	encoding: "US-ASCII",
	errorContainer: "OUTPUTMESSAGE",
	programName: "EC03",
	requestContainer: "INPUTDATA",
	responseContainer: "CICSDATETIME",
	tpnName: "CSMI"
} as Object {
	class : "org.mule.modules.ibmctg.internal.model.ChannelRequest"
}]]></ee:set-variable>
				</ee:variables>
			</ee:transform>
			<ibmctg:execute doc:name="Execute" channelRequest="#[vars.request]" config-ref="IBMCTG_Config"/>
			<ee:transform doc:name="Transform Message">
				<ee:message >
					<ee:set-payload ><![CDATA[%dw 2.0
output application/json
---
{
	"cics-date-time":payload
}
]]></ee:set-payload>
				</ee:message>
			</ee:transform>
		</try>
	</flow>
</mule>

関連情報

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub