Mit dem Output-Dienst können Sie separate Dokumente für jeden Datensatz in einer XML-Datenquelle erstellen. Mit dem Output-Dienst können Sie außerdem eine Einzeldatei erstellen, die alle Datensätze enthält (Standard). Angenommen, eine XML-Datenquelle enthält zehn Datensätze und Sie weisen den Output-Dienst an, ein separates Dokument für jeden Datensatz zu erstellen (z. B. PDF-Dokumente). In diesem Fall erzeugt der Output-Dienst zehn PDF-Dokumente.
Die folgende Abbildung zeigt, wie der Output-Dienst eine XML-Datendatei verarbeitet, die mehrere Datensätze enthält. Nehmen wir nun an, Sie weisen den Output-Dienst an, ein einzelnes PDF-Dokument zu erstellen, das alle Datensätze enthält. In diesem Fall erzeugt der Output-Dienst ein Dokument, das sämtliche Datensätze enthält.
Die folgende Abbildung zeigt, wie der Output-Dienst eine XML-Datendatei verarbeitet, die mehrere Datensätze enthält. Angenommen, Sie weisen den Output-Dienst an, ein separates PDF-Dokument für jeden Datensatz zu erstellen. In diesem Fall erzeugt der Output-Dienst ein separates PDF-Dokument für jeden Datensatz.
Die folgenden XML-Daten sind ein Beispiel für eine Datendatei, die drei Datensätze enthält.
<?xml version="1.0" encoding="UTF-8"?>
<batch>
<LoanRecord>
<mortgageAmount>500000</mortgageAmount>
<lastName>Blue</lastName>
<firstName>Tony</firstName>
<SSN>555666777</SSN>
<PositionTitle>Product Manager</PositionTitle>
<Address>555 No Where Dr</Address>
<City>New York</City>
<StateProv>New York</StateProv>
<ZipCode>51256</ZipCode>
<Email>TBlue@NoMailServer.com</Email>
<PhoneNum>555-7418</PhoneNum>
<FaxNum>555-9981</FaxNum>
<Description>Buy a home</Description>
</LoanRecord>
<LoanRecord>
<mortgageAmount>300000</mortgageAmount>
<lastName>White</lastName>
<firstName>Sam</firstName>
<SSN>555666222</SSN>
<PositionTitle>Program Manager</PositionTitle>
<Address>557 No Where Dr</Address>
<City>New York</City>
<StateProv>New York</StateProv>
<ZipCode>51256</ZipCode>
<Email>SWhite@NoMailServer.com</Email>
<PhoneNum>555-7445</PhoneNum>
<FaxNum>555-9986</FaxNum>
<Description>Buy a home</Description>
</LoanRecord>
<LoanRecord>
<mortgageAmount>700000</mortgageAmount>
<lastName>Green</lastName>
<firstName>Steve</firstName>
<SSN>55566688</SSN>
<PositionTitle>Project Manager</PositionTitle>
<Address>445 No Where Dr</Address>
<City>New York</City>
<StateProv>New York</StateProv>
<ZipCode>51256</ZipCode>
<Email>SGreeb@NoMailServer.com</Email>
<PhoneNum>555-2211</PhoneNum>
<FaxNum>555-2221</FaxNum>
<Description>Buy a home</Description>
</LoanRecord>
</batch>
Hinweis: Wie Sie sehen, beginnt und endet jeder Datensatz mit dem XML-Element LoanRecord.
Einstellen von PDF-Laufzeitoptionen
Legen Sie die folgenden Laufzeitoptionen für den Output-Dienst fest, um Stapeldaten erfolgreich zu verarbeiten und mehrere Dateien auf der Basis einer XML-Datenquelle zu erstellen:
- Many Files:
- Gibt an, ob der Output-Dienst ein Einzeldokument oder mehrere Dokumente erstellt. Geben Sie true oder false an. Um ein separates Dokument für jeden Datensatz in der XML-Datenquelle zu erstellen, stellen Sie hier true ein.
- File URI:
- Gibt den Speicherort der Dateien an, die der Output-Dienst erzeugt. Wenn Sie beispielsweise „C:\\Adobe\forms\Loan.pdf “ angeben, erstellt der Output-Dienst eine Datei namens Loan.pdf und legt diese im Ordner „C:\\Adobe\\forms“ ab. Werden mehrere Dateien erstellt, lauten die Dateinamen „Loan0001.pdf“, „Loan0002.pdf“, „Loan0003.pdf“ usw. Die Dokumente werden auf dem Server, der als Host für LiveCycle dient, abgelegt und nicht auf dem Clientcomputer.
- Record Name:
- Gibt den Namen des XML-Elements in der Datenquelle an, das die Datensätze voneinander trennt. In der hier aufgeführten XML-Beispieldatenquelle trägt das XML-Element, das Datensätze trennt, den Namen LoanRecord. (Anstatt die Laufzeitoption „Record Name“ einzustellen, können Sie auch über „Record Level“ der Datensatzebene einen numerischen Wert zuweisen, der die Elementebene bezeichnet, die Datensätze enthält. Es kann jedoch nur entweder „Record Name“ oder „Record Level“ festgelegt werden. Sie können nicht beide Werte festlegen. In der oben genannten XML-Datei lautet die Datensatzebene zum Erstellen mehrerer Dokumente „2“.
Inkrementelles Laden
Bei der Verarbeitung von Stapeldatensätzen durch den Output-Dienst werden Daten, die mehrere Datensätze enthalten, inkrementell gelesen. Das heißt, der Output-Dienst liest die Daten in den Speicher und gibt sie bei der Verarbeitung des Datensatzstapels frei. Der Output-Dienst lädt Daten inkrementell, unabhängig davon, welche der beiden Laufzeitoptionen eingestellt ist. Wenn Sie die Laufzeitoption „Record Name“ einstellen, liest der Output-Dienst Daten inkrementell. Wenn Sie die Laufzeitoption „Record Level“ auf einen Wert von 2 oder höher einstellen, liest der Output-Dienst Daten ebenfalls inkrementell.
Sie können steuern, ob der Output-Dienst inkrementelles Laden mithilfe der PDFOutputOptionsSpec-Option desPrintedOutputOptionSpec- oder setLazyLoading-Objekts ausführt. Sie können den Wert false angeben, der das inkrementelle Laden deaktiviert.
Falls der Output-Dienst das inkrementelle Laden von Daten nicht durchführen kann, wird die folgende Warnmeldung in die Protokolldatei des J2EE-Anwendungsservers geschrieben, der als Host für LiveCycle fungiert:
* 2007-11-01 11:51:23,215 WARN [com.adobe.document.XMLFormService] $$$/com/adobe/document/xmlform/msg.XFA=Unable to perform an incremental data load. Performing a full data load.
Hinweis: Wenn der Output-Dienst Daten nicht inkrementell liest, wird die gesamte Stapeldatendatei in den Speicher gelesen. Dies kann die Leistung des Output-Dienstes beeinträchtigen. (Siehe
Verbessern der Leistung des Output-Dienstes.)