実装の概要

通信を作成ユーザーインターフェイスの URL には、応答で XML データを返す URL に対応する cmDataUrl という名前のパラメーターを使用できます。通信を作成ユーザーインターフェイスは、返された XML データを Initial XML Data(IXD)として使用して、レターをレンダリングします。

通信を作成ユーザーインターフェイスをデータと共に外部ソースから起動するには、次のいずれかの方法を使用します。

データソースへのダイレクト URL

通信を作成アプリケーションの XML データにダイレクト URL を使用してアクセスできる場合、cmDataUrl は、そのホストされた URL を直接指定できます。通信を作成は、この URL からの XML データの取得および通信のレンダリングを試みます。

CRX リポジトリからのデータ

XML データは、CRX リポジトリにも格納できます。リポジトリへのパスは、crx:// プロトコルを使用して、通信を作成アプリケーションに提供されます。例えば、必要な XML データが /content/correspondence/data/test.xml に保存されている場合、通信を作成アプリケーションを起動するための URL は、http://<server>:<port>/content/cm/createcorrespondence.html?<usual request parameters>&cmDataUrl=crx://content/correspondence/data/test.xml です。

カスタムサーブレットの使用

カスタムデータソースに統合するには、カスタムサーブレットを実装して、次の操作を行う必要があります。

  • コンテンツプロバイダーから XML データを取得するカスタム HTTP サーブレットを記述します。取得した XML データをサーブレットの「応答」で返します。

  • 通信を作成 URL の呼び出し時に、cmDataUrl の値をサーブレットの URL として設定します。

例えば、サーブレットが通信管理アプリケーション内で作成され、URL /CustomDataUrl にマップされている場合、通信を作成ユーザーインターフェイスの URL は、http://<server>:<port>/content/cm/createcorrespondence.html?<usual request parameters>&cmDataUrl=http://<server>:<port>/apps/solutions/cm/CustomDataUrl です。

注意: カスタムサーブレットは、Correspondence Management アプリケーション内からホストすることも、異なる Web サーバーでホストすることもできます。
cmDataUrl として指定される URL は、HTTP URL にすぎないので、コンテンツプロバイダーからデータを取得する独自の要求パラメーターのセットを持つことができます。例えば、SSN 「1234」の顧客のデータを取得するには、通信を作成ユーザーインターフェイスの URL は、http://<server>:<port>/content/cm/createcorrespondence.html?<usual request parameters>&cmDataUrl=http://<server>:<port>/apps/solutions/cm/CustomDataUrl?ssn=1234 になります。ハードコードされた XML を返すサンプルサーブレットを次に示します。
package sample; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.*; 
import java.io.*; 
 
 
public class CustomDataUrl extends HttpServlet { 
    public void doGet(HttpServletRequest request, 
             HttpServletResponse response) 
                throws ServletException, IOException 
          { 
            response.setContentType("text/xml"); 
            PrintWriter out = response.getWriter(); 
 
                // Replace the below line with an invocation to an external/legacy data source/API. 
                String xml = "<?xml version='1.0' encoding='UTF-8'?><F><P1><WCCFileNumber>9875</WCCFileNumber><SSN>3459837</SSN></P1></F>"; 
 
                // Write to the response stream 
            out.println(xml); 
            out.close(); 
          } 
 
}

オーケストレーションの使用

通信を作成ユーザーインターフェイスに適切な Initial XML Data を指定し、レターをレンダリングするために、オーケストレーションベースのアプローチを使用することもできます。
  • コンテンツプロバイダーから XML データを取得して(プロセスでまだ使用できない場合)、指定された場所の CRX リポジトリにこの XML データを保存するオーケストレーション(プロセス)を記述します。

  • プロセスは、データファイルの URL(保存されたファイルへの CRX パス。crx://<path to the XML> と似ています)を返します。

通信を作成ユーザーインターフェイスを呼び出す前に、通信管理アプリケーションはオーケストレーションを呼び出して、プロセス(前述のデータファイルへのパス)の応答/出力を取得します。

cmDataUrl の値を、返されたファイルパスとして設定し、通信を作成ユーザーインターフェイスを呼び出します。