ドキュメントの入力値および出力値により AEM forms 内のサービスを呼び出す

入力値として添付ファイルを必要とするサービスを呼び出すことができます。

例えば、document 型のサービス入力変数および出力変数は、SOAP メッセージでは添付ファイルとして表されます。入力ドキュメント値を指定するために、SOAP メッセージに添付ファイルが含められます。Web サービスに document 型の出力変数がある場合、応答メッセージに添付ファイルが含められます。

ファイルは、MIME 添付ファイル、MTOM 添付ファイル、base64 エンコードされたテキストまたはファイルの URL を使用して添付できます。SOAP メッセージおよび Invoke Web Service 操作の設定は、添付ファイルの種類に応じて異なります。ドキュメント値を返す AEM forms Web サービスを呼び出す場合、SOAP 応答メッセージにファイルを添付する方法を指定します。

注意: AEM forms が提供する Web サービスでは、MTOM 添付ファイルはサポートされていません。

添付ファイルを設定する前に、Invoke Web Service 操作の Web Service Options プロパティを使用して、テンプレート SOAP 要求メッセージを生成します( Web Service Settings について を参照)。

要求メッセージの設定

Web Service Settings ダイアログボックスで、Web サービスを呼び出すための SOAP メッセージが自動的に生成されます。メッセージは、指定した Web サービスのプロパティに基づいて生成されます。

サービスの入力パラメーターのドキュメント値を表す添付ファイルを SOAP メッセージに追加します。次の XML コードは、Web サービス操作を呼び出すために使用される SOAP メッセージの一般的な構造を示しています。

<soapenv:Envelope 
    xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ 
    xmlns:ser="http://foo.net/services"> 
    <soapenv:Header /> 
    <soapenv:Body> 
        <ser:operation_name> 
            <ser:parameter_name> 
                <!-- elements for file attachments are placed here --> 
            </ser:parameter_name> 
        </ser:operation_name> 
    </soapenv:Body>  
</soapenv:Envelope>
  • Body 要素には、サービス操作と同じ名前の 1 つの要素が含まれています。

  • operation_name 要素には、各入力パラメーターにつき 1 つの要素が含まれています。これらの要素の名前は、パラメーター名と同じです。アクティベートされたプロセスの Web サービスの操作名は、常に invoke となります。パラメーター名は、プロセスに定義されている入力変数の名前です。

  • SOAP メッセージにファイルを添付するために使用される方法によって、添付ファイルを識別するために使用される要素が決まります。使用できる方法は、MIME、MTOM、base64 エンコードされたテキストまたはファイルの URL です。(AEM forms が提供する Web サービスでは、MTOM 添付ファイルはサポートされていません。)

MIME および MTOM 添付ファイル

Web Service Settings ダイアログボックスの「Attachment」タブを使用して、ドキュメント値を指定します。表の各行は 1 つの添付ファイルを表しています。「Part」列には、添付ファイルの ID が含まれています。Web サービスによって ID が決定されます。

MIME および MTOM 添付ファイルの設定:

  1. Web Service Settings ダイアログボックスで、「Attachment」タブをクリックします。

  2. 表に行を追加するには、「Load Attachment Part」をクリックします。

  3. 「Part」列の値を確認します。これらの値は手順 7 で使用します。

  4. 表の各行で、「Attachment」フィールドをクリックします。表示される省略記号ボタン をクリックして、XPath Builder を開きます。

  5. 表の各行で、「Content-Type」セルをクリックして、添付するファイルの MIME タイプを入力します。MIME タイプの例として、 application/pdf があります。

  6. 「Request」タブをクリックし、添付ファイルを値として使用するパラメーターを表す各要素内に attachmentID 要素を追加します。

  7. 各 attachmentID 要素内に、「Attachment」タブの添付ファイルの「Part」列に表示されるテキストを入力します。

次の SOAP 要求は、MIME または MTOM 添付ファイルの設定の例です。これは、ドキュメント値である documentIn という名前の入力パラメーターを持つプロセスの要求メッセージです。

<soapenv:Envelope 
    xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ 
    xmlns:ser="http://adobe.com/idp/services"> 
    <soapenv:Header/> 
    <soapenv:Body> 
        <ser:invoke> 
            <ser:documentIn> 
                <ser:attachmentID> 
                    part0 
                </ser:attachmentID> 
            </ser:documentIn> 
        </ser:invoke> 
    </soapenv:Body>  
</soapenv:Envelope>

base64 エンコードされたテキストの添付ファイル

SOAP メッセージには、コンテンツの MIME タイプおよびファイルの base64 エンコードされたテキスト表現が含まれます。コンテンツタイプは、contentType 要素で指定されます。テキストは、binaryData 要素で指定されます。

base64 エンコードされたテキストを取得する場合、getDocContentBase64 XPath 関数を使用できます。

次の手順では、ドキュメント値を表す base64 エンコードされたテキストがプロセス変数に格納されていると想定します。

base64 エンコードされたテキストの添付ファイルの設定:

  1. Web Service Settings ダイアログボックスで、「Request」タブをクリックします。

  2. ドキュメント値を指定するパラメーターを表す要素に contentType 要素を追加します。

  3. contentType 要素内で、コンテンツタイプを入力するか、またはコンテンツタイプを含む文字列変数に解決される XPath 式を追加します。

  4. ドキュメント値を使用するパラメーターを表す要素に binaryData 要素を追加します。

  5. binaryData 要素内で、ドキュメントを表す base64 エンコードされたテキストを含む文字列変数に解決される XPath 式を追加します。

次の SOAP 要求は、base64 エンコードされたテキストの添付ファイルの設定の例です。これは、ドキュメント値である documentIn という名前の入力パラメーターを持つプロセスの要求メッセージです。

<soapenv:Envelope 
    xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ 
    xmlns:ser="http://adobe.com/idp/services"> 
    <soapenv:Header/> 
    <soapenv:Body> 
        <ser:invoke> 
            <ser:documentIn> 
                <ser:contentType> 
                    {$/process_data/@contentType$} 
                </ser:contentType> 
                <ser:binaryData> 
                    {$/process_data/@docBase64$} 
                </ser:binaryData> 
            </ser:documentIn> 
        </ser:invoke> 
    </soapenv:Body>  
</soapenv:Envelope>

ファイルの URL の添付ファイル

ファイルの URL は、remoteURL 要素で指定されます。

ファイルの URL の添付ファイルの設定:

  1. Web Service Settings ダイアログボックスで、「Request」タブをクリックします。

  2. ドキュメント値を使用するパラメーターを表す要素内で、remoteURL 要素を追加します。

  3. remoteURL 要素内で、ファイルの URL を入力するか、または URL を含む文字列変数に解決される XPath 式を追加します。

次の SOAP 要求は、ファイルの URL の添付ファイルの設定の例です。これは、ドキュメント値である documentIn という名前の入力パラメーターを持つプロセスの要求メッセージです。

<soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:ser="http://adobe.com/idp/services"> 
<soapenv:Header/> 
<soapenv:Body> 
<ser:invoke> 
    <ser:documentIn> 
        <ser:remoteURL> 
            http://help.adobe.com/en_US/AEM forms/es/overview.pdf 
        </ser:remoteURL> 
    </ser:documentIn> 
</ser:invoke> 
</soapenv:Body>  
</soapenv:Envelope>

Web サービス応答メッセージの設定

AEM forms Web サービスがドキュメント値を返す場合、その値は SOAP 応答メッセージへの添付ファイルとなります。AEM forms Web サービスにおけるデフォルトでは、結果のドキュメント値が AEM forms サーバーに保存されます。また、Web サービスの応答メッセージには、ドキュメントへの URL も含まれます。ただし、SOAP 要求メッセージに MIME 添付ファイルが含まれている場合は、応答でも MIME 添付ファイルを使用してドキュメント値が返されます。

このデフォルトの動作を上書きすることで、ドキュメントの添付ファイルを返すために AEM forms Web サービスで使用される方法を指定できます。SOAP 応答メッセージには、MIME 添付ファイル、base64 エンコードされたテキストまたはファイルの URL を使用してファイルを添付できます。応答メッセージへのファイルの添付方法を指定するには、Target URL に次の表のいずれかの値を追加します。Target URL プロパティは、Web Service Settings ダイアログボックスの「Settings」タブで指定します。

添付ファイルのタイプ

追加するテキスト

base64 エンコードされたテキスト

?blob=base64

MIME

?blob=mime

File URL

?blob=http

例えば、Target URL に次の値を指定すると、プロセスの Web サービスでは、SOAP 応答メッセージに base64 エンコードされたテキストとしてファイルが添付されます。プロセス名は echoDocument です。

http://localhost:8080/soap/services/echoDocument?blob=base64

デフォルトの SOAP 応答メッセージ添付ファイル動作の上書き:

  1. Web Service Settings ダイアログボックスで、「Settings」タブをクリックします。

  2. 「Target URL」ボックスで、URL に次のいずれかの値を追加します。

    • ?blob=base64

    • ?blob=mime

    • ?blob=http