ユーザーがインタラクティブフォームに入力できる Web ベースのアプリケーションでは、データをサーバーに送り返す必要があります。 Formsサービスを使用すると、ユーザーがインタラクティブフォームに入力したフォームデータを取得できます。 次に、フォームデータを別のAEM Formsサービス操作に渡し、そのデータを使用してPDFドキュメントを作成します。
この内容を読む前に、送信済みのフォームの処理に関する十分な知識を持っておくことをお勧めします。 フォームデザインと送信済み XML データとの関係などの概念については、送信済みFormsの処理を参照してください。
次の 3 つのAEM Formsサービスを伴うワークフローについて考えてみましょう。
次の図は、このワークフローを視覚的に表したものです。
ユーザーがクライアント Web ブラウザーからフォームを送信すると、非インタラクティブPDFドキュメントが Content Services(非推奨)に保存されます。 次の図は、Content Services(非推奨)に保存されたPDFドキュメントを示しています。
送信済み XML データを含む非インタラクティブPDFドキュメントを作成し、Content Services(非推奨)のPDFドキュメントに保存するには、次のタスクを実行します。
プロジェクトファイルを含める
必要なファイルを開発プロジェクトに含めます。 Java を使用してクライアントアプリケーションを作成する場合は、必要な JAR ファイルを含めます。 Web サービスを使用している場合は、プロキシファイルを必ず含めてください。
Forms、Output および Document Management オブジェクトの作成
プログラムによってForms Service API 操作を実行する前に、Forms Client API オブジェクトを作成します。 同様に、このワークフローは Output サービスと Document Management サービスを呼び出すので、Output Client API オブジェクトと Document Management Client API オブジェクトの両方を作成します。
Formsサービスを使用してフォームデータを取得する
Formsサービスに送信されたフォームデータを取得します。 送信されたデータを処理して、ビジネス要件を満たすことができます。 例えば、エンタープライズデータベースにフォームデータを格納できます。 ただし、非インタラクティブPDFドキュメントを作成する場合は、フォームデータが Output サービスに渡されます。
Output サービスを使用して、非インタラクティブPDFドキュメントを作成します。
Output サービスを使用して、フォームデザインと XML フォームデータに基づく非インタラクティブPDFドキュメントを作成します。 ワークフローでは、フォームデータはFormsサービスから取得されます。
Document Management サービスを使用して、PDFフォームを Content Services(非推奨)に格納します
Content Services(非推奨)にPDFドキュメントを保存するには、Document Management Service API を使用します。
関連トピック
Forms、Output、および Document Management API(Java) を使用して、送信された XML データを含むPDFドキュメントを作成します。
プロジェクトファイルを含める
Java プロジェクトのクラスパスに、adobe-forms-client.jar、adobe-output-client.jar、adobe-contentservices-client.jar などのクライアント JAR ファイルを含めます。
Forms、Output および Document Management オブジェクトの作成
ServiceClientFactory
オブジェクトを作成します。FormsServiceClient
オブジェクトを渡すことによって、ServiceClientFactory
オブジェクトを作成します。OutputClient
オブジェクトのコンストラクタを使用し、 ServiceClientFactory
オブジェクト。DocumentManagementServiceClientImpl
オブジェクトを渡すことによって、ServiceClientFactory
オブジェクトを作成します。Formsサービスを使用してフォームデータを取得する
を呼び出す FormsServiceClient
オブジェクトの processFormSubmission
メソッドを使用して、次の値を渡します。
com.adobe.idp.Document
フォームデータを格納するオブジェクト。CONTENT_TYPE
環境変数。 例えば、XML データを処理するには、このパラメーターに次の文字列値を指定します。 CONTENT_TYPE=text/xml
.HTTP_USER_AGENT
ヘッダー値(例: ) Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
.RenderOptionsSpec
実行時オプションを保存するオブジェクト。この processFormSubmission
メソッドは、 FormsResult
フォーム送信の結果を含むオブジェクト。
を呼び出して、Formsサービスがフォームデータの処理を完了したかどうかを判断します。 FormsResult
オブジェクトの getAction
メソッド。 このメソッドが値を返す場合 0
に設定すると、データを処理する準備が整います。
フォームデータを取得するには、 com.adobe.idp.Document
を呼び出すことによってオブジェクトを取得 FormsResult
オブジェクトの getOutputContent
メソッド。 (このオブジェクトには、Output サービスに送信できるフォームデータが含まれています)。
の作成 java.io.InputStream
を呼び出すことによってオブジェクトを取得 java.io.DataInputStream
コンストラクタと com.adobe.idp.Document
オブジェクト。
の作成 org.w3c.dom.DocumentBuilderFactory
オブジェクトの org.w3c.dom.DocumentBuilderFactory
オブジェクトの newInstance
メソッド。
の作成 org.w3c.dom.DocumentBuilder
を呼び出すことによってオブジェクトを取得 org.w3c.dom.DocumentBuilderFactory
オブジェクトの newDocumentBuilder
メソッド。
の作成 org.w3c.dom.Document
を呼び出すことによってオブジェクトを取得 org.w3c.dom.DocumentBuilder
オブジェクトの parse
メソッドおよび java.io.InputStream
オブジェクト。
XML ドキュメント内の各ノードの値を取得します。 このタスクを実行する 1 つの方法は、次の 2 つのパラメーターを受け入れるカスタムメソッドを作成することです。の org.w3c.dom.Document
オブジェクトおよび値を取得するノードの名前。 このメソッドは、ノードの値を表す文字列値を返します。 このプロセスに続くコード例では、このカスタムメソッドをと呼び出します。 getNodeText
. このメソッドの本文を示します。
Output サービスを使用して、非インタラクティブPDFドキュメントを作成します。
を呼び出してPDFドキュメントを作成する OutputClient
オブジェクトの generatePDFOutput
メソッドを使用して、次の値を渡します。
TransformationFormat
enum 値。 PDF・ドキュメントを生成するには、 TransformationFormat.PDF
.PDFOutputOptionsSpec
PDFの実行時オプションを含むオブジェクト。RenderOptionsSpec
レンダリングの実行時オプションを含むオブジェクト。com.adobe.idp.Document
フォームデザインとマージするデータが含まれる XML データソースを含むオブジェクト。 このオブジェクトが FormsResult
オブジェクトの getOutputContent
メソッド。generatePDFOutput
メソッドは、 OutputResult
操作の結果を格納するオブジェクト。OutputResult
オブジェクトの getGeneratedDoc
メソッド。 このメソッドは、 com.adobe.idp.Document
非インタラクティブPDFドキュメントを表すインスタンス。Document Management サービスを使用して、PDFフォームを Content Services(非推奨)に格納します
を呼び出して、コンテンツを追加します。 DocumentManagementServiceClientImpl
オブジェクトの storeContent
メソッドを使用して、次の値を渡します。
SpacesStore
. この値は必須のパラメータです。/Company Home/Test Directory
) をクリックします。 この値は必須のパラメータです。MortgageForm.pdf
) をクリックします。 この値は必須のパラメータです。{https://www.alfresco.org/model/content/1.0}content
. この値は必須のパラメータです。com.adobe.idp.Document
コンテンツを表すオブジェクト。 この値は必須のパラメータです。UTF-8
) をクリックします。 この値は必須のパラメータです。UpdateVersionType
バージョン情報の処理方法を指定する列挙値 ( 例: UpdateVersionType.INCREMENT_MAJOR_VERSION
コンテンツのバージョンを増分します。 ) この値は必須のパラメータです。java.util.List
コンテンツに関連する要素を指定するインスタンス。 この値はオプションのパラメーターで、 null
.java.util.Map
コンテンツ属性を格納するオブジェクト。この storeContent
メソッドは、 CRCResult
コンテンツを表すオブジェクト。 の使用 CRCResult
オブジェクトを使用すると、例えば、コンテンツの一意の識別子値を取得できます。 このタスクを実行するには、 CRCResult
オブジェクトの getNodeUuid
メソッド。
関連トピック