Geschäftsprozesse

Geschäftsprozesse dienen als Ergänzung zu Datenquellen und Datenreferenzen zur Datenbeschaffung für rein lesende Anzeige-Elemente. Sie erweitern die Möglichkeiten der SQL-basierenden Datenbeschaffung. Geschäftsprozesse können den folgenden Metadatenobjekten zugeordnet werden:

  • Datenquellen
  • Datenreferenzen

Bei der Definition der Datenquellen/ Datenreferenzen gibt es folgende Möglichkeiten:

  • Datenermittlung nur über SQL
  • Datenermittlung über SQL und Geschäftsprozess für Berechnungen, Datensätze löschen/hinzufügen
  • Datenermittlung nur über Geschäftsprozess

Soll ein Geschäftsprozess in mehreren Datenquellen/ Datenreferenzen verwendet werden, kann eine Zuordnung der Datenfelder zu den im Geschäftsprozess verwendeten Feldern via Geschäftsprozess-Parameter (parametergesteuerter Geschäftsprozess) erfolgen.

Um ein Geschäftsprozess implementieren zu können, muss von der Klasse BusinessProcessBase abgeleitet werden.

Hinweis für Developer Partner

WDB-Eintrag 203334:

Dokument "Zusatzdokumentation zum Wiki für Developer Partner", BusinessProcessBase

Eigenschaften Geschäftsprozess

BereichEigenschaftWert
Allgemeines

Name

(Name)

Name des Geschäftsprozesses

Titel

(Title)

Titel des Geschäftsprozesses

Beschreibung

(Description)

Kurze Dokumentation des Geschäftsprozesses, insbesonderer wenn es sich um einen parametergesteuerten Geschäftsprozess handelt

Kommentar

(Comment)

Beliebiger Kommentar zur Dokumentation.

Der Kommentar wird nicht zum Client übertragen und dient nur zur Dokumentation von Besonderheiten, Hinweisen, etc. Bei Auslieferung/Weitergabe der Lösung wird der Kommentar eingeschlossen, so dass der Empfänger ihn im AppDesigner sieht.

Daten

DLL-Name

(AssemblyName)

Name der aufzurufenden DLL (ohne Verzeichnisname, aber mit Dateinamenerweiterung „.dll“; die DLL wird immer im OL-Shared-Verzeichnis gesucht)

Klassenname

(ClassName)

Name inklusive Namespace der aufzurufenden Klasse

Hoher Ressourcen-Bedarf

(HighResources)

Hat der Geschäftsprozess einen hohen Ressourcen-Bedarf auf dem Applikationsserver (CPU bzw. Speicher)?
0 = nein
1 = ja (Elemente sowie Links, die den Geschäftsprozess nutzen, verwenden die Einzel-Aktualisierung, um Ressourcen zu sparen)
2 = Ermittlung über Geschäftsprozess (abhängig von Konfiguration oder ähnlichem, daher wird der Geschäftsprozess (Methode „CheckHighResources“) aufgerufen, der dann 0 oder 1 zurückgeben muss)

Parametergesteuert?

(IsParameterControlled)

Vordefinierter parametergesteuerter Geschäftsprozess? (vordefinierte parametergesteuerte Geschäftsprozesse werden über die in der nachfolgenden Tabelle dokumentierten Parameter konfiguriert; nicht vordefinierte Geschäftsprozesse sind fest auf die jeweilige Datenquelle zugeschnitten und werden dort nicht konfiguriert)

Datensätze hinzufügen erlaubt?

(CanInsertRecords)

Der Geschäftsprozess fügt ggf. Datensätze hinzu, daher werden die Datensätze
  • nach der Berechnung nochmals sortiert,
  • nach der Berechnung nochmals gefiltert und
  • überflüssige Datensätze werden am Ende abgeschnitten.

Ein Listen- oder Baum-Element, welches auf einem Geschäftsprozess basiert, der Datensätze hinzufügen darf, unterstützt keine Permanentfilter.


Datensätze entfernen erlaubt?

(CanReduceRecords)

Der Geschäftsprozess entfernt ggf. Datensätze.

Daher werden immer alle Datensätze ermittelt und nach der Berechnung ggf. abgeschnitten.

Hinweis: In diesem Fall werden intern immer alle Datensätze vom SQL-Server geladen, was bei großen Datenbeständen zu Performance- und ApplikationServer-Speicher-Problemen führen kann. Besser ist daher die SQL-Server-seitige Aggregierung der Datensätze.

Ein Listen- oder Baum-Element, welches auf einem Geschäftsprozess basiert, der Datensätze entfernen darf, unterstützt keine Permanentfilter.

Lizenzierung

Lizenz-Kürzel

(LicenseTokens)

Applikationskürzel der zu prüfenden Lizenz (nur in Nicht-Sage-Lösungen verwendbar und änderbar)

Lizenz-Kürzel für Sage

(SageLicenseTokens)

Applikationskürzel der zu prüfenden Lizenz (nur in Sage-Lösungen verwendbar und änderbar)

Eigenschaften Geschäftsprozessparameter

EigenschaftWert

Name

(Name)

Eindeutiger Parametername zur Referenzierung in der Datenquellen-Definition

Parametertitel

(Title)

Parametertitel

Position in Sortierung

(OrderPosition)

Sortierreihenfolge für die Anzeige in der Datenquelle im AppDesigner

Datentyp

(DataType)

Datentyp:

  • 1 = Boolean
  • 2 = Int32
  • 3 = Decimal
  • 4 = Date
  • 5 = String
  • 6 = DateTime
  • 25 = Feldname der Datenquelle

erforderlich?

(IsRequired)

Muss der Parameter vom Anwender festgelegt werden? (ansonsten ist er optional)

berechnetes Feld?

(IsFieldCalculated)

Das im Parameter definierte Datenfeld wird berechnet, daher werden die Datensätze

  • erst nach der Berechnung sortiert, wenn nach diesem Datenfeld sortiert wird,
  • nach der Berechnung nochmals gefiltert, wenn nach diesem Datenfeld gefiltert wird, und
  • es werden alle Datensätze ermittelt und nach der Berechnung, ggf. abgeschnitten, wenn nach diesem Datenfeld gefiltert wird oder dieses Datenfeld in der Summenzeile vorkommt.

Hinweis: In diesem Fall werden (sobald der Anwender nach dem Feld filtert oder sortiert) intern immer alle Datensätze vom SQL-Server geladen, was bei großen Datenbeständen zu Performance- und ApplikationServer-Speicher-Problemen führen kann. Besser ist daher die SQL-Server-seitige Berechnung. Alternativ kann das Feld auch nicht für Sortierung und Filterung angeboten werden.

Vordefinierte parametergesteuerte Geschäftsprozesse

Nachfolgend werden die von Sage vordefinierten parametergesteuerten Geschäftsprozesse und deren Anwendung beschrieben. Gleichzeitig dienen diese Beschreibungen als Beispiele weiterer vordefinierter parametergesteuerter Geschäftsprozesse.

Währungsumrechnung/-zusammenfassung

Aufgabenstellung

Die von Sage vordefinierten parametergesteuerten Geschäftsprozesse zur Währungsumrechnung und Währungszusammenfassung rechnen Währungen in bis zu zwanzig Datenfeldern um und fassen die Datensätze nachfolgend (optional) zusammen.

Im Einzelnen bestehen folgende Aufgaben:

  • „Betragsfelder umrechnen“ mit folgenden Fällen:
    • In den Datensätzen sind die Beträge, optional das alte Währungskennzeichen (ansonsten Eigenwährung), optional das neue Währungskennzeichen (ansonsten Eigenwährung) und optional die Periode der Umrechnung (ansonsten aktuelle Periode) enthalten. Der Geschäftsprozess rechnet diese entsprechend mit Rundung um.
    • Die Datensätze enthalten vorstehende Werte und die zugehörigen Kurse (bzw. 0, 1 oder Null zur Kennzeichnung von Eigenwährungs-Beträgen). Der Geschäftsprozess rechnet diese entsprechend mit Rundung um.
      • Hinweis: Prinzipiell kann in diesem Fall der Kurs auch direkt in der SQL-Abfrage zur Umrechnung benutzt werden. Aufgrund unterschiedlicher Rundungs-Algorithmen in SQL-Server und .NET sowie der fehlenden Triangulation bei der Umrechnung von Euro-kompatiblen Währungen kann es dabei allerdings zu Rundungsabweichungen kommen. Sage verwendet daher immer den Geschäftsprozess.
  • Nach der Umrechnung müssen die Datensätze, die sich nur bzgl. der Währung sowie der Kurse und Beträge unterschieden, gegebenenfalls zusammengefasst werden (falls sie nicht einzeln angezeigt werden sollen).
    • Enthalten die umzurechnenden Felder Durchschnittswerte, ist für die Zusammenfassung in den Datensätzen noch die jeweilige Anzahl erforderlich, die dem Durchschnittswerte zugrunde liegt und außerdem bei der Zusammenfassung aufaddiert wird, um sie als Gesamtanzahl anzeigen zu können.
    • Im Fall einer Summenzeile müssen auch die für die Summenzeile übergebenen und umgerechneten Datensätze verschiedener Währungen zusammengefasst werden (wiederum inkl. Behandlung von Durchschnittswerten).

Verwendung der Geschäftsprozesse

Die vorstehenden Fälle werden, um unnötig viele und komplizierte Parametrisierungen zu vermeiden, in folgenden Geschäftsprozessen zusammengefasst, die intern weitgehend gleichen Code verwenden, aber für den Entwickler, der mit den Metadaten arbeitet, eine Arbeitserleichterung bei Auswahl und Parametrisierung darstellen:

  • Währungsumrechnung mit Kurs-Ermittlung („CurrencyConversion1.Sage.System“)
  • Währungsumrechnung mit Kurs-Ermittlung und Zusammenfassung („CurrencyConversion2.Sage.System“)
  • Währungsumrechnung mit Kurs-Ermittlung und Zusammenfassung von Durchschnittswerten („CurrencyConversion3.Sage.System“)
  • Währungsumrechnung mit Kurs-Angabe („CurrencyConversion4.Sage.System“)
  • Währungsumrechnung mit Kurs-Angabe und Zusammenfassung („CurrencyConversion5.Sage.System“)
  • Währungsumrechnung mit Kurs-Angabe und Zusammenfassung von Durchschnittswerten („CurrencyConversion6.Sage.System“)

Anmerkung: Ob eine Summenzeile vorhanden ist und behandelt werden muss, kann der Geschäftsprozess anhand der übergebenen Daten selbst feststellen.

Anmerkungen zu den Geschäftsprozessen mit Zusammenfassung:

  • Die Daten sollten aus Performance-Gründen so sortiert sein, dass die jeweils zusammengehörenden Datensätze, die sich nur in der Währung und den umzurechnenden Beträgen unterscheiden, direkt hintereinanderliegen. Hierzu ist es erforderlich, in der den Geschäftsprozess aufrufenden Datenquelle die Eigenschaft „SQL-Sortierung vor Geschäftsprozess-Aufruf“ entsprechend zu definieren.
  • Wird für Summenzeilen die „Summenzeile“-Einstellung = "automatische Ermittlung der Summe" in der Datenquelle verwendet, müssen außer den zu summierenden Feldern folgende Markierungen in „Art der Summenzeilen-Addition“ vorgenommen werden:
    • Felder, nach denen gruppiert werden soll (Währung, Periode, Kurs), müssen markiert werden, damit sie in der Summenzeile enthalten und für den Geschäftsprozess verfügbar sind

Die Geschäftsprozesse haben folgende Parameter und Anforderungen:

Name

Titel

Parameter

Anforderungen

CurrencyConversion1

Währungsumrechnung mit Kurs-Ermittlung

  • Feldname Wkz alt (optional)
  • Feldname Wkz neu (optional)
  • Feldname Periode (optional)
  • bis zu zwanzig Mal Feldname Betrag


CurrencyConversion2

Währungsumrechnung mit Kurs-Ermittlung und Zusammenfassung

wie „CurrencyConversion1“

um die Datensätze zusammenfassen zu können, werden die Inhalte der Felder „Wkz alt“, „Wkz neu“ und „Periode“ gelöscht; diese Felder sollten daher in der Datenquelle als „Internes Feld?“ gekennzeichnet sein;

Definition von „SQL-Sortierung vor Geschäftsprozess-Aufruf“ erforderlich

CurrencyConversion3

Währungsumrechnung mit Kurs-Ermittlung und Zusammenfassung von Durchschnitts-
werten

wie „CurrencyConversion1“ und zusätzlich:

  • Feldname Anzahl für Durchschnittsberechnung

wie „CurrencyConversion2“


CurrencyConversion4

Währungsumrechnung mit Kurs-Angabe

wie „CurrencyConversion1“ und zusätzlich:

  • Feldname Kurs


CurrencyConversion5

Währungsumrechnung mit Kurs-Angabe und Zusammenfassung

wie „CurrencyConversion4“

um die Datensätze zusammenfassen zu können, werden die Inhalte der Felder „Wkz alt“, „Wkz neu“, „Periode“ und „Kurs“ gelöscht; diese Felder sollten daher in der Datenquelle als „Internes Feld?“ gekennzeichnet sein;

Definition von „SQL-Sortierung vor Geschäftsprozess-Aufruf“ erforderlich

CurrencyConversion6

Währungsumrechnung mit Kurs-Angabe und Zusammenfassung von Durchschnittswerten

wie „CurrencyConversion4“ und zusätzlich:

  • Feldname Anzahl für Durchschnittsberechnung

wie „CurrencyConversion5“

Die Geschäftsprozesse sind bei SQL-Abfragen, die eine große Datenmenge liefern aus Gründen der Performance nicht zu verwenden.

Fehlerbehandlung

Prinzipiell wäre es vorstellbar, die Behandlung von Fehlern bei der Umrechnung (Währung bzw. Kurs für Währung / Periode nicht vorhanden oder Währungen nicht kompatibel), in den jeweiligen Feldern anzuzeigen. Dies ist jedoch bzgl. Sortierung, Filterung und vor allem Zusammenfassung problematisch. Stattdessen wird daher bei der ersten solchen Situation (die eigentlich nicht vorkommen sollte) analog zu anderen Geschäftsprozessen, ein entsprechender Fehler geworfen, der dann anstelle des Parts angezeigt wird.

Es gibt folgende Fehlermeldungen:

  • Währung ´…´ ist nicht angelegt.
  • Währungskurs für Währung ´…´ in Periode nnnnnnn kann nicht ermittelt werden.
  • Währungsumrechnung für ´…´ und ´…´ in Periode nnnnnnn ist nicht möglich.
  • Währung ´…´ ist in der Periode nnnnnnn nicht EUR kompatibel.

Datenquellen mit Verwendung von Währungsumrechnung im Standard

  • dtsAngebotsAvg.Sage.Wawi.xml
  • dtsAngebotsErfolg.Sage.Wawi.xml
  • dtsAngebotsWert.Sage.Wawi.xml
  • dtsAuftragseingAvg.Sage.Wawi.xml
  • dtsAuftragsstorno.Sage.Wawi.xml
  • dtsAuftragsWert.Sage.Wawi.xml
  • dtsBestelltGeliefert.Sage.Wawi.xml
  • dtsBestellungenAvg.Sage.Wawi.xml
  • dtsBestellungenWert.Sage.Wawi.xml
  • dtsEKRueckliefWert.Sage.Wawi.xml
  • dtsFibuUebergabe.Sage.Wawi.xml
  • dtsGeliefertBerechne.Sage.Wawi.xml
  • dtsStornorechnungAvg.Sage.Wawi.xml
  • dtsStornoRechWert.Sage.Wawi.xml
  • dtsVKRueckliefWert.Sage.Wawi.xml