Teile und Herrsche – Bursting mit dem Oracle BI Publisher

Der Oracle BI Publisher bietet die Möglichkeit, mehrere gleichartige Dokumente (z.B. Abrechnungen für Mandanten) in einem Job zu verarbeiten, die Ergebnisse anschließend zu zerlegen (Bursting) und dann an die Empfänger (z.B. die Mandanten) zu verteilen.
Dokumentation zum Bursting

Dies hat den Vorteil, dass die Vor- und Nachbearbeitung pro Job nur einmal anfällt und damit die gesamte Verarbeitungszeit in der Summe der Dokumente reduziert werden kann.

Das folgende Beispiel beschreibt das Vorgehen bei der Definition und Ausführung eines Bursting Jobs.

  1. Zunächst muss das Datenmodell des Reports erstellt werden. Im Beispiel werden die Auftragsdaten (ORDERS und ORDER_ITEMS) aus dem Schema OE selektiert.
  2. Danach wird im Data Model Editor das Bursting-Kriterium definiert. In unserem Fall soll der Job nach Kunden (CUSTOMER_ID) gesplittet und ausgeliefert werden werden. Alle weiteren Angaben sind in der Bursting Query enthalten. Sie lautet in unserem Beispiel:

    select distinct „CUSTOMERS“.“CUSTOMER_ID“ as „KEY“,

    ‚Serienbrief‘ TEMPLATE,
    ‚RTF‘ TEMPLATE_FORMAT,
    ‚en-US‘ LOCALE,
    ‚PDF‘ OUTPUT_FORMAT,
    ‚FILE‘ DEL_CHANNEL,
    ‚/tmp‘ PARAMETER1,
    CUSTOMER_ID || ‚.pdf‘ PARAMETER2
    from „OE“.“CUSTOMERS“ „CUSTOMERS“

    Es gibt insgesamt 10 Parameter, die fest definiert sind. Wir verwenden nur die ersten beiden Parameter, die im Falle des Schreibens in Dateien das Verzeichnis (PARAMETER1) und den Dateinamen (PARAMETER2) repräsentieren.

    Bursting-Kriterium

    Bursting-Kriterium

  3. Danach legen wir einen Report mit einem RTF-Template an, welches den Namen Serienbrief erhält. Bei den Eingeschaften des Reports muss Enable Bursting mit dem ausgewählten Bursting-Kriterium aktiviert werden.

    Report Properties

    Report Properties

  4. Damit sind wir soweit und können den Report testen, indem wir mit der Funktion Schedule einen Job für diesen Report definieren. Auf dem Reiter Output muss die Option Use Bursting Definition to Determine Output & Delivery Destination aktiviert sein, damit die von uns definierte Bursting Query berücksichtigt wird. Alle weiteren Angaben sind optional.

    Schedule Report

    Schedule Report

  5. Der Job kann jetzt durch den Button Submit abgesetzt werden. Wir müssen einen Namen für den Job vergeben und können anschließend in der Job History nachsehen, ob der Job erfolgreich ausgeführt wurde.
    Wenn alle Angaben korrekt waren, müssten wir jetzt im Verzeichnis /tmp auf dem Server zahlreiche einzelne PDF-Dateien mit den Namen der Kunden (<CUSTOMER_ID>.pdf) finden.
    Die Job History zeigt uns auch eine detaillierte Übersicht der gesplitteten Dateien.
  6. Sollte der Job nicht erfolgreich ausgeführt werden können oder die Dateien lassen sich nicht im vorgegebenen Verzeichnis finden, kann die Diagnose eingeschaltet und der Job erneut gestartet werden.
    Diagnose

    Diagnose

    Happy Bursting !

Jürgen Menge (Der IT-Macher)

März 23rd, 2018 by