SAP Integration Suite の詳細

Camel データモデルおよび Simple 式言語の利用

Objective

After completing this lesson, you will be able to camel データモデルと Simple 式言語について説明します。

Camel データモデルおよび Simple 式言語

このレッスンでは、以下のトピックについて説明します。

  • Camel データモデル
  • Simple Expression Language

Camel データモデル

この図は、Camel データモデルを示しています。要素に関する情報は、以下の段落に記載されています。

これは以下の要素のコンテナです。

  • ヘッダ
  • プロパティ
  • 添付文書
  • 本文
  • その他

これらについて詳しく見ていきましょう。

  • ヘッダ:

    ヘッダデータには、送信者のアドレスなど、メッセージに関連する情報が含まれ、後続の HTTP 呼出に自動的に含まれます。

  • プロパティ:

    メッセージ処理中は、コンテキストオブジェクトの形式で追加データを一時的に保存することができます。

  • 添付文書:

    メッセージに添付されるオプションデータが含まれます。

  • 本文:

    メッセージで転送されるペイロードは本文に含まれます。メッセージ処理中、Exchange コンテナも利用可能です。Exchange コンテナには、メッセージ以外に追加データを保存することができます。このコンテナは Exchange ID によって一意に識別され、メッセージ処理中にプロパティ領域に一時データを保持することができます。Exchange コンテナに保存されたデータは、メッセージ交換の期間全体にわたって利用可能であり、次の処理ステップが呼び出されたときにコンテナに含まれます。

Exchange パラメータの操作

ペイロードを含む Exchange パラメータは、受信メッセージによって自動的に設定されます。ただし、これらのパラメータは、読込および書込によってマニュアルで操作することもできます。交換パラメータの操作には、以下のようなさまざまな方法を使用することができます。

  • コンテンツモディファイアコンポーネントの使用
  • Groovy SDK の使用
  • JavaScript SDK の使用
  • メッセージマッピングでの UDF の使用
  • XSLT マッピングの使用
  • その他

コンテンツモディファイアコンポーネントを使用した Exchange パラメータの設定

コンテンツモディファイア要素では、Exchange パラメータをグラフィカルに操作することができます。

Content Modifier のスクリーンショット。操作可能な内容については、以下の本文で説明しています。

以下を操作することができます。

  • ヘッダ
  • プロパティ
  • 本文

Groovy SDK を使用した Exchange パラメータの設定

com.sap.gateway.ip.core.customdev.util.Message クラスには、パラメータを操作するためのメソッドが用意されています。

Groovy SDK の例のスクリーンショット。

同じことが JavaScript にも当てはまります。

Simple Expression Language

Simple 式言語は、Exchange パラメータをパラメータ化するために使用します。また、タイムスタンプ、エラーメッセージなど、複数の Build-In パラメータも提供されます。つまり、Exchange パラメータなどへの読込アクセスのみが可能です。

一般スキームは、組込変数または Exchange パラメータを含む ${ } プレースホルダです。Cloud Integration では、${ } プレースホルダをコンテンツモディファイアステップのペイロードなどに挿入したり、クエリエディタで適用したりして、動的値を OData リソースパスに追加することができます。

${ } プレースホルダを演算子と組み合わせて、論理式を生成することもできます。この論理式は、ルータ、フィルタ、およびその他のインテグレーションフローコンポーネントで条件として使用することができます。

サンプル:

Code Snippet
1234
${property.MyNumericProperty} > 0 ${property.MyStringProperty} contains ‚test‘ property.ProductCoderegex‚[a−z]5\d3‘ ${date:now:dd-MM-yyyy HH:mm}

日常業務における重要点

メッセージ本文
${in.body}
プロパティ
${property.}
メッセージヘッダ
${header.}

Simple 式言語を使用可能:

  • Groovy または JavaScript を使用したスクリプト
  • 一部のインテグレーションフローコンポーネント (ルータ、コンテンツモディファイア、メッセージマッピングなど) は、ユーザ定義関数として提供されます。
  • XSLT マッピング
  • クエリ用の一部のアダプタ

リソース

詳細については、こちらを参照してください。

コンテンツを修正するためのガイドライン
Guidelines for Modifying Content
コンテンツモディファイアコンポーネントを使用した Exchange パラメータ
CPI Groovy スクリプトでの Camel の Simple の使用
Using Camel's Simple in CPI Groovy scripts | SAP Blogs
Simple Expression Language

まとめ

Camel データモデルは、個別のインテグレーションフローコンポーネントでの処理中に一時データを管理するために使用されます。このデータモデルには、ペイロード (本文) だけでなく、HTTP 呼出に自動的に含まれるプロパティおよびヘッダデータも含まれます。

Exchange コンテナは、処理ステップごとに先行処理ステップから次の処理ステップに渡されます。Exchange パラメータは、メッセージの受信時などに自動的に設定され、コンテンツモディファイアや Groovy SDK などのコンポーネントを介してマニュアルで設定されます。Camel データモデルでは、処理中に、ペイロード (本文)、プロパティ、およびヘッダデータを含む一時データが管理されます。ヘッダデータは HTTP 呼出に自動的に含まれます。

読込対象の Exchange パラメータへのアクセスは、Simple 式言語を使用して行われます。Simple 式言語は、組込パラメータだけでなく、複雑な正規表現のモデル化にも対応しています。