Berichtsdokumente im Hintergrund ausgeben

Mithilfe der Hintergrund-Anwendung „Berichtsdokumente im Hintergrund ausgeben“ können Sie ein Berichtsdokument ausgeben, ohne dass eine Interaktion mit einem Benutzer notwendig ist. Dabei kann das Berichtsdokument sowohl ein Entwicklungsobjekt als auch ein Systemobjekt sein. Nachfolgend finden Sie unter anderem Beschreibungen zur Verwendung der Hintergrund-Anwendung und zu deren Aktionen und Parametern. Sie werden außerdem über mögliche Voraussetzungen und Auswirkungen für das Ausführen der Hintergrund-Anwendung informiert.

1                     Begriffsbestimmung

Berichte

Mit einem Bericht lassen sich Daten, die in Semiramis erfasst sind, in übersichtlicher Form ausgeben. Ein Bericht lässt sich beliebig oft und auf Basis der aktuell vorhandenen Daten ausgeben.

Berichte werden in Berichts- und Belegdokumente unterschieden. Berichte vom Dokumenttyp „Berichtsdokument“ können auf Basis von beliebigen Daten aus Semiramis erstellt werden. Sie besitzen im Allgemeinen die Form einer Liste und können in der Anwendung „Berichtsdokumente ausgeben“ ausgegeben werden. Belegdokumente können in den jeweiligen fachlichen Anwendungen, in denen Belege entstehen, ausgegeben werden. Sie beinhalten im Allgemeinen nur die Daten zu einem einzelnen Beleg.

Berichte können als System- oder als Entwicklungsobjekt angelegt werden. Ein Bericht als Entwicklungsobjekt hat den Vorteil, dass er in einem Entwicklungssystem verändert, versionisiert abgelegt und als Softwareaktualisierung in andere Systeme übertragen werden kann. Um Berichte auch in Nicht-Entwicklungssystem erstellen und verändern zu können bietet die Anwendung „Berichte“ die Möglichkeit sie als Systemobjekt anzulegen. Systemobjekte können nicht in andere Systeme transportiert werden.

Berichte enthalten ein oder mehrere Berichts-Dateien, die das Layout eines Berichts bestimmen.

Berichtsdokument

Die Ausgabe eines Berichts auf ein Ausgabegerät, wie einem Drucker, oder in eine Datei erzeugt ein Berichtsdokument oder ein Belegdokument. Das Berichtsdokument enthält eine Liste von Objekten, beispielsweise eine Liste von Adressen. Ein Belegdokument umfasst stets ein Objekt, beispielsweise einen Vertriebsauftrag. Die Dokumente können archiviert oder zum Beispiel als Fax oder per E-Mail an einen Partner übermittelt werden.

Hintergrund-Anwendung

Eine Hintergrund-Anwendung ist eine Anwendung, die ohne Interaktion mit einem Benutzer ausgeführt wird. In Semiramis kann eine Hintergrund-Anwendung entweder durch einen Verarbeitungsauftrag, durch einen CORBA-Aufruf oder durch eine andere Anwendung geöffnet werden.

 

2                     Beschreibung

Die Hintergrund-Anwendung „Berichtsdokumente im Hintergrund ausgeben“ dient der Ausgabe der Berichtsdateien im Hintergrund. Sie kann pro OLTP-Datenbank einen Verarbeitungsauftrag erzeugen. Der Verarbeitungsauftrag kann über die Ansicht „Sessions“ im Systemcockpit abgeschlossen werden. Das Ausführen der Hintergrund-Anwendung erfolgt nicht über die Anwendung „Verarbeitungsaufträge“. Diese Hintergrund-Anwendung kann vom einen anderen Programm aus oder aber mithilfe von Workflow-Management,insbesondere mittels Aktivitätsdefinitionen, aufgerufen werden. Die notwendigen Parameter für die Ausgabe (z.B. Ausgabesprache bzw. einschränkende Berichtsparameter) werden dabei nicht durch Angaben auf der grafischen Oberfläche bestimmt, sondern erfolgen entweder durch die Aktion-Parameter dieser Hintergrund-Anwendung oder aber programmatisch durch das Befüllen vordefinierter Datencontainer mit den Parameterwerten für die Ausgabe des Berichts. Als Ausgabeeinstellungen werden die jeweiligen Ausgabeeinstellungen aus der Benutzereinstellungen genommen. Falls die Ausgabe vom einen anderen Programm aus stattfindet, können bestimmte Werte der Ausgabeeinstellungen überschrieben werden.

3                     Aktionen

Die Hintergrund-Anwendung stellt folgende Aktion zur Verfügung:

3.1               Aktion Output

Bei der Auswahl der Aktion „Output“ werden die Prüfungen in Bezug auf Vollständigkeit der notwendigen Parameter für die Berichtsdokument-Ausgabe durchgeführt und wenn keine Fehler aufgetreten sind, wird das Berichtsdokument ausgegeben. Bevor die Hintergrund-Anwendung „Berichtsdokumente im Hintergrund ausgeben“ aufgerufen wird, muss mindestens der Name des Berichtsdokumentes, entweder über den entsprechenden Aktions-Parameter oder über den Aufruf bestimmter Methoden dieser Hintergrund-Anwendung, an diese Hintergrund-Anwendung übergeben werden. Bei den vorhandenen Pflicht-Berichtsparametern müssen diese Berichtsparameter und ihre Werte an die Hintergrund-Anwendung übergeben werden. Außerdem muss ein Application-Server, auf welchem die Hintergrund-Anwendung ausgeführt werden soll, die für die Berichtsdokument-Ausgabe notwendigen Verbindungen zu den Datenbanken besitzen. Bitte beachten Sie bei der Fehleranalyse, wenn ein Berichtsdokument, das im Hintergrund ausgegeben werden sollte, nicht ausgegeben wurde, dass die entsprechenden Einträge in der Meldungsprotokollen, Verarbeitungs- und Ausgabeaufträgen diese Analyse vereinfachen. Falls ein Berichtsdokument erfolgreich im Hintergrund ausgegeben wurde, entsteht die Informations-Meldung darüber im entsprechenden Meldungsprotokoll.

ID

der Aktion „Output“ ist den Wert des IDs „10“ zugeordnet. Sie müssen den Wert übergeben beim Aufruf dieser Hintergrund-Anwendung bei der Ausgabe der Berichten vom einen Programm aus.

Parameter

Die Aktion hat folgende Parameter:

Parameter Erläuterung
ReportName (Bericht) Vollständiger technischer Name des Berichtsdokumentes (z.B. com.cisag.app.sales.rpt.SalesItem), das im Hintergrund ausgegeben werden soll. Dieser Aktion-Parameter ist ein Pflicht-Parameter ohne dessen Angabe keine Ausgabe des Berichtsdokumentes möglich ist.
ReportOutputLanguage (Sprache) Sprache, in der das Berichtsdokument erzeugt werden soll.

Diese Angabe bestimmt die Wahl der Berichts-Datei und die für die Textkonstanten verwendeten Übersetzungen. Gleichermaßen bestimmt diese Angabe die Sprache der übersetzbaren Inhalte wie z.B. die Bezeichnungen von Business Entitys. Wenn keine Sprache explizit angeben wurde, wird die durch die Originalsprache des Berichtes, die Sprachen der sprachabhängigen Berichts-Dateien und die Anzeigesprache der aktuellen Semiramis-Anmeldung bestimmt.

ReportOutputOrganizationGuid (Organisation) Bei Bedarf kann die Berichtsdokument-Ausgabe in Bezug auf die entsprechende Organisation erfolgen, wenn ein Bericht entsprechend entwickelt wurde, indem das GUID der relevanten Organisation an die Hintergrund-Anwendung mithilfe von den Aktion-Parameter „
Organisation“ übermittelt wird. Wenn keine GUID der Organisation bzw. ZERO_GUID übermittelt wurde, wird ein Standard-Wert aus dem aktuellen Semiramis-Anmeldungs-Kontext genommen.
ReportParameters (Berichtsparameter) Bei Bedarf kann die Berichtsdokument-Ausgabe zusätzlich eingeschränkt werden, indem eine Reihe von Berichtsparametern mit ihren Werten in Form von einer s.g. HashMap  an die Hintergrund-Anwendung, mithilfe des Aktion-Parameter „Berichtsparameter“,  übergeben wird.

Hinweis: Alle Pflicht-Berichtsparameter, mit der Ausnahme von vordefinierten Berichtsparametern, müssen immer mit dem Aktion-Parameter übergeben werden.

UseBackGround(Hintergrund einfärben) Sie können auch bestimmen, ob eine zeilenweise alternierende Hintergrundfarbe bei der Ausgabe verwendet wird.

Diese Einstellung hat nur einen Effekt, wenn der jeweilige Bericht die Möglichkeit zum zeilenweisen Einfärben beinhaltet. Die verwendete Hintergrundfarbe ist dabei festgelegt und wird nicht, im Unterschied zu der Ausgabe aus der Oberfläche heraus, aus dem aktuellen, in den Benutzereinstellungen gewählten Thema bestimmt. Wenn kein Wert explizit an die Hintergrund-Anwendung übermittelt wurde, findet keinen Hintergrundfarbwechsel bei der Ausgabe statt.

 

4                     Vorgehensweise

Dadurch, dass die Hintergrund-Anwendung „Berichtsdokumente im Hintergrund ausgeben“ die beschriebenen Aktions-Parameter benötigt, können Sie nicht direkt mithilfe der Anwendung „Verarbeitungsaufträge“ die Hintergrund-Anwendung ausführen. Sie müssen entweder eine andere Hintergrund-Anwendung ausprogrammieren, die die nötigen Aktions-Parameter für die Ausgabe vorbereitet und dann mithilfe der Anwendung „Verarbeitungsaufträge“ diese ausführen, oder sie können auch mithilfe von Aktivitätsdefinitionen die nötigen Aktions-Parameter vorbereiten und die Hintergrund-Anwendung „Berichtsdokumente im Hintergrund ausgeben“ aufrufen.

 

4.1               Ausgabe mithilfe von Workflow-Management

Um die Berichte mithilfe des Workflow-Management im Hintergrund ausgeben zu können, müssen sie eine Aktivitätsdefinition anlegen, entsprechend einrichten und diese aktivieren. Als Anwendung muss der Aktivitätsdefinition dabei „com.cisag.pgm.services.output.ReportOutputGenerator“ zugeordnet werden.

4.2               Beispiel

Nehmen wir an, Sie haben eine Aktivitätsdefinition namens „cis.pgm.output.RepOut“ angelegt, die für die Ausgabe des Berichtes „com.cisag.sys.configuration.rpt.UserIdentification“ im Hintergrund zuständig wird. Wählen Sie unter der Rubrik „Bearbeitung“ den Bearbeiter „Verarbeitungsauftrag“. Dann ordnen Sie dieser Aktivitätsdefinition unter vom Karteireiter „Anwendung“ die Hintergrund-Anwendung „com.cisag.pgm.services.output.ReportOutputGenerator“ zu. Nach dem Speichern bzw. Prüfen der Aktivitätsdefinition entstehen die Parameter, die der Aktion „Output“ der Anwendung zugeordnet wurden. Geben Sie die Werte für diese Parameter ein. Nehmen wir an, dass dem Parameter „ReportParameters“ der Wert „reportParameters“ zugewiesen wurde. Dann könnten die folgenden Befehle unterhalb vom Karteireiter „Befehle“ angegeben werden:

setJobQueue(“<Name der Verarbeitungs-Warteschlange>”);

setJobUser(userGuid(“Name des Benutzers”));

var reportParameters as HashMap;

reportParameters[“Name”] := “S*”;

reportParameters[“Deactivated”] := false;

reportParameters[“Type”] := “X509_CERTIFICATE”;

Damit die Ausgabe dieses Berichtes stattfindet, müssen noch die Ereignisse für diese Aktivitätsdefinition festgelegt werden. Im Beispiel wird ein Ereignistyp „Business Entity“ genommen, als Business Entity wird das  com.cisag.app.general.obj.Partner verwendet und die Übergansbedingung wird mithilfe des Attributes „number“ dieses Business Entitys programmiert. Wenn das Ereignis auf Art der Änderung „Ändern“ eingeschränkt wird, wird der Bericht ausgegeben, sobald die Übergansbedingungen und Einschränkungen für das Ereignis zutreffend sind.

4.3               Ausgabe vom einem anderen Programm aus

4.3.1          Java-Klasse „ReportOutputGenerator“

Die Klasse „com.cisag.pgm.services.output.ReportOutputGenerator“ enthält die statischen Methoden

  • „createReportOutputData()“
  • „createCisParameterList(String reportName, ReportOutputData data, byte[] organisationGuid, String reportOutputLanguage, CisOutputOptions outputOptions)“

die benötigt werden, falls für die Ausgabe eine andere Hintergrund-Anwendung ausprogrammiert wird.

Methode „createReportOutputData()“

Erzeugt eine neue Instanz des Datencontainers „ReportOutputData“, diesen Datencontainer können Sie mit den Parameterwerten für die Ausgabe eines Berichts füllen. Nähere Informationen zu diesem Datencontainer entnehmen Sie bitte der Dokumentation „Referenzhandbuch: Berichts-Anwendungen“.

Methode „createCisParameterList(String reportName, ReportOutputData data, byte[] organisationGuid, String reportOutputLanguage, CisOutputOptions outputOptions“

Erzeugt eine neue Instanz des Typs CisParameterList, die den vollständigen Namen eines Berichtes, die Parameterwerte für dessen Ausgabe und ggf. die Organisations-GUID und die Sprache für die Ausgabe enthält. Diese Instanz wird später bei dem Aufruf dieser Hintergrund-Anwendung „Berichtsdokumente im Hintergrund ausgeben“ von einem anderen Programm aus benötigt.

4.3.2          Beispiel

Falls der Bericht „com.cisag.app.financials.rpt.TaxCode“ von einem anderen Programm aus ausgegeben werden muss, entwickelt man ein Programm, in dem der Datencontainer „ReportOutputData“ und neue Instanz des Typs CisParameterList erzeugt und mit den Berichtsparameterwerten gefüllt werden. Anschliessendwird die Hintergrund-Anwendung „Berichtsdokumente im Hintergrund ausgeben“ aufgerufen. Der Programm-Ausschnitt könnte wie folgt aussehen:

private static final int OUTPUT_ACTION = 10;

 

CisEnvironment env = CisEnvironment.getInstance();

 

CisApplicationManager am = env.getApplicationManager();

 

ReportOutputData data = ReportOutputGenerator.createReportOutputData();

// Set the report parameters

data.setString(“TaxCodeCode”, “”);

 

data.setShortSelection(“TaxCodeType”, “VAT”);

data.setShortSelection(“DeleteState”, “NOT_MARKED_FOR_DELETION”);

 

CisParameterList pl = ReportOutputGenerator.createCisParameterList(“com.cisag.app.financials.rpt.TaxCode”, data, null, null, null);

 

am.callApplication(ReportOutputGenerator.class.getName(), OUTPUT_ACTION, pl);

Falls nötig, können Sie diese Hintergrund-Anwendung nicht interaktiv in einer weiterer Hintergrund-Anwendung ausführen lassen.

Czy ten artykuł był pomocny?