Business Rules Server
Copyright 016 Lexmark. All rights reserved. Lexmark is a trademark of Lexmark International, Inc., registered in the U.S. and/or other countries. All other trademarks are the property of their respective owners. No part of this publication may be reproduced, stored, or transmitted in any form without the prior written permission of Lexmark.
Inhaltsverzeichnis 1 4 4.1 4. Einführung... Programmierung eines Workflow Performers... Programmierung eines Classic Connector Performers... Performer Test... BRSwfTest... BRSccTest... Code starten... 4
Business Rules Server Der Business Rules Server (BRS) ist eine java-basierte Anwendung, die der regelmäßigen Ausführung von automatisierten Aufgaben dient. Ähnlich der Core Server-Tasks, die auf EventScripts basieren, können über den BRS regelmäßige Aufgaben, unter anderem innerhalb eines Workflow-Prozesses, automatisiert ausgeführt werden. Hierzu stellt der BRS (Business Rules Server) ein Framework bereit, mit dessen Hilfe Businesslogiken in Form von Javaklassen eingebunden werden können (weitere Informationen zum Business Rules Server entnehmen Sie bitte dem Kapitel "Der SAPERION Business Rules Server" im Installationshandbuch). Das allgemeine Java Framework des Business Rules Servers erlaubt es, verschiedene Repräsentationen in das SAPERION-System zu übertragen: + direkt in Java programmiert + innerhalb einer Business Rules Engine erstellt, verwaltet und ausgeführt + sonstige digitale Formate (XML, Tabellen, Text, Properties usw.) All dieser Formate können mit dem Business Rules Server unterstützt werden, solange eine entsprechende Übersetzung/Anbindung vorhanden ist, bzw. in Java programmiert wird. Innerhalb dieses Frameworks haben Sie die Möglichkeit, eigene Businesslogiken für Automatisierungen als eigene Klassen zu schreiben. 1 Einführung Die Businesslogik kann man sich als Regelwerk oder Zusammenfassung aller Geschäftsregeln innerhalb eines Unternehmens vorstellen. Dabei beschreiben Geschäftsregeln Abläufe, Bedingungen, Grenzen und Beziehungen innerhalb der Geschäftsprozesse. Sie können allgemeingültig (z.b. Gesetze), branchenspezifisch (z.b. Grenzwerte) oder firmenspezifisch (z.b. Best Practice) sein. Des Weiteren können sie auf viele verschiedene Arten festgehalten und implementiert werden (z.b. mit Hilfe von Spezialsoftware). Anwendungsmöglichkeiten innerhalb von SAPERION stellen beispielsweise die Web-Service-Aufrufe für Schufa-Anfragen, die Anbindung einer Business Rules Engine oder das Prüfen von Indexfeldern dar. Programmierung eines Workflow Performers In diesem Kapitel werden die Schritte beschrieben, die erforderlich sind, um eigenen Java Code zu programmieren und vom SAPERION -Workflow starten zu lassen. 1... 4. Erstellen Sie ein neues Java-Projekt. Die Hauptklasse muss von der Klasse "SaTaskPerformer", welche in der "scr-businessruleserver.jar" enthalten ist, erben und sich im Paket "com.saperion.performer.tasks" befinden. Programmieren Sie den gewünschten Code in die zu überschreibende Methode "doperformtask" (SaWFTask task,sawfconnector connector) und leiten anschließend den Task weiter. Erstellen Sie nun aus Ihrem erstellten Code eine.jar-datei.
Programmierung eines Classic Connector Performers. Kopieren Sie die.jar-datei in das Verzeichnis: "...\SAPERION\scr\scr-businessruleserver\lib". Beispiel package com.saperion.performer.tasks; import com.saperion.connector.wf.sawfconnector; import com.saperion.connector.wf.sawftask; import com.saperion.exception.wf.saworkflowexception; import com.saperion.performer.exceptions.performerexception; import com.saperion.performer.result.saperformerresult; import com.saperion.performer.result.saperformerresultimpl; import com.saperion.performer.result.saperformerresultstate; import com.saperion.performer.tasks.sataskperformer; import com.saperion.wf.actorinfoimpl; import org.apache.log4j.logger; public class BRSwfTest implements SaTaskPerformer{ private static final Logger LOGGER = Logger.getLogger(BRSwfTest.class); String[] args=null; @Override public void setarguments(string... arguments) { this.args=arguments; @Override public SaPerformerResult doperformtask(sawftask task, SaWFConnector connector) throws PerformerException { LOGGER.info("Running BRSTest"); try { LOGGER.info("Subject="+task.getTaskInfo().getSubject()); LOGGER.info("Arguments"); for (String argu: args) { LOGGER.info(argu); LOGGER.info("executing forward"); task.executeforward(1, new ActorInfoImpl()); catch (SaWorkflowException e) { e.printstacktrace(); return new SaPerformerResultImpl(task, SaPerformerResultState.SUCCESS,null); 1. Programmierung eines Classic Connector Performers Erstellen Sie ein neues Java-Projekt.
4.. 4.. Die Hauptklasse muss von der Klasse "SaCCTaskPerformer", welche in der "scrbusinessruleserver.jar" enthalten ist, erben und sich im Packet "com.saperion.performer.classic" befinden. Programmieren Sie den gewünschten Code in die zu überschreibende Methode "doperformtask" (SaPropertyValue[] row,saclassicconnector connector). Erstellen Sie nun aus Ihrem erstellten Code eine.jar-datei. Kopieren Sie die erstellte.jar-datei in das Verzeichnis "...\SAPERION\scr\scrbusinessruleserver\lib". Beispiel package com.saperion.performer.classic; import com.saperion.connector.saclassicconnector; import com.saperion.intf.sadocumentinfo; import com.saperion.intf.sapropertyvalue; import com.saperion.performer.exceptions.performerexception; import com.saperion.performer.result.saperformerresult; import com.saperion.performer.result.saperformerresultimpl; import com.saperion.performer.result.saperformerresultstate; import com.saperion.rmi.sadocumentinfoimpl; import org.apache.log4j.logger; public class BRSccTest implements SaCCTaskPerformer{ private static final Logger LOGGER = Logger.getLogger(BRSccTest.class); @Override public SaPerformerResult doperformtask(sapropertyvalue[] row, SaClassicConnector connector) throws PerformerException { SaDocumentInfo doc = new SaDocumentInfoImpl(row,null); LOGGER.info("SYSDOCUMENTDESCRIPTION:"+doc.getValue("SYSDOCUMENTDESCRIPTION").getStringValue()); return new SaPerformerResultImpl(row,SaPerformerResultState.SUCCESS ); 4 Performer Test Sie haben die Möglichkeit, mit den im Folgenden aufgelisteten Klassen die jeweiligen Performer zu testen. In der "performer.properties" sieht es dann beispielsweise wie folgt aus, wenn beide Tests ausgeführt werden sollen: Beispiel #performer properties count= 0.name=wf
Code starten 0.class=com.saperion.performer.SaWfPerformer 1.name=CCTest 1.class=com.saperion.performer.SaCCPerformer 4.1 BRSwfTest Die Klasse "BRSwfTest" dient dazu, den WfPerformer des BRS zu testen. Hierfür müssen Sie ein Testworkflow erstellen, welcher zumindest neben dem Start- und Endknoten noch einen "Java-Service-Task" enthalten muss. In das Formel-/ Makro-Feld tragen Sie den Klassennamen sowie eventuell Argumente ein: Beispiel BRSwfTest(Argument1, Argument) Bei erfolgreichem Aufrufen schreibt der Business Rules Server das SUBJECT des aktuellen Dokuments sowie alle Argumente in sein Log. 4. BRSccTest Mit Hilfe der Klasse "BRSccTest" können Sie den CCPerformer testen. Hierfür müssen Sie die Konfigurationsdatei "CCTest_runner.properties" in das Verzeichnis "...SAPERION\scr\scr-businessrulesserver\conf\config" kopieren. Gegebenenfalls müssen Sie die Login-Daten sowie den Filter anpassen. Bei erfolgreichem Aufrufen schreibt der Business Rules Server die SYSDOCUMENTDESCRIPTION aller gefundenen Dateien in sein Log. Auszug aus "CCTest_runner.properties": runner_filter=from example71 d where EX7_DOCNR=1 runner_class=brscctest Code starten Um die programmierte Aufgabe zu starten, müssen Sie einen Workflow mit Hilfe des ProcessDesigners definieren und den Code über eine JAVA-Service-Aufgabe einbinden. 1.. Öffnen Sie den ProcessDesigner im SAPERION Rich Client und erstellen Sie einen neuen Workflow. Wählen Sie in der Objektbibliothek das Element "JAVA-Service-Aufgabe" aus und klicken auf [Weiter].
6. Im nächsten Dialog "Formel" geben Sie die Hauptklasse und ihre Argumente an. Klicken Sie auf [Weiter]. 4. Wird der abgespeicherte Workflow anschließend gestartet,wird der Code über die JAVA-ServiceAufgabe ausgeführt.