Definition des Prozessfragment-Mapping

Das Prozessfragment-Mapping definiert, welche Prozessfragmentdefinitionen zum Instanziieren der System-Event-Typen verwendet werden. Es kann durch beliebig viele, miteinander UND-verknüpfte Bedingungen (XML-Element condition) gesteuert werden.

Die Regeln für den Aufbau des Prozessfragment-Mapping in der XML- Mapping-Datei sind in folgendem Auszug der Datei eventmapping.dtd festgelegt:

tr_xml_dtd_mapp

Beispiel für die bedingte Prozessfragmenterzeugung (Dateiauszug):

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE eventmapping SYSTEM "eventmapping.dtd">

<eventmapping>

<processfragmentmapping>

<processfragment graphid="FRG_ORD_CREATED">

<condition eventattributetype="AUFTR_TYP">

<value>C</value>

</condition>

<condition eventattributetype="MAT_NR" logicaloperator="in">

<value>123456</value>

<value>56789</value>

<value>78901</value>

</condition>

</processfragment>

...

</processfragmentmapping>

<attributemapping>

...

</attributemapping>

</eventmapping>

Das Prozessfragment FRG_ORD_CREATED wird erzeugt, wenn die beiden folgenden Bedingungen erfüllt sind:

Eine Prozessfragmentdefinition muss keine Bedingungen enthalten. In diesem Fall wird für jedes importierte System-Event dieselbe angegebene Fragmentdefinition verwendet. Die Objekte des instanziierten Fragments werden beim anschließenden Attribut-Mapping spezifiziert.

Definition einer Prozessfragmentgruppe

Prozessfragmentdefinitionen können zu Gruppen zusammengefasst werden. Daraus ergeben sich folgende Vorteile:

Die folgenden beiden Prozessfragmentdefinitionen sind in einer XML-Mapping-Datei enthalten:

<processfragment graphid="AUFTRAG_ANLEGEN">

<condition eventattributetype="AUFTR_TYP">

<value>C</value>

</condition>

<condition eventattributetype="CHARGEN_PFL" logicaloperator="neq">

<value>X</value>

</condition>

</processfragment>

<processfragment graphid="CHPLICHT_AUFTRAG_ANLEGEN">

<condition eventattributetype="AUFTR_TYP">

<value>C</value>

</condition>

<condition eventattributetype="CHARGEN_PFL">

<value>X</value>

</condition>

</processfragment>

Das erste Prozessfragment AUFTRAG_ANLEGEN wird für ein System-Event des Typs Auftragsbeleg erzeugt (Attributwert AUFTR_TYP ist gleich C), das nicht chargenpflichtig ist (Attributwert CHARGEN_PFL ist ungleich X).

Das zweite Prozessfragment CHPLICHT_AUFTRAG_ANLEGEN wird für ein System-Event des Typs Chargenpflichtiger Auftragsbeleg erzeugt (Attributwert AUFTR_TYP ist gleich C und Attributwert CHARGEN_PFL ist gleich X).

Die beiden gezeigten Prozessfragmente lassen sich in einer Prozessfragmentgruppe zusammenfassen:

<processfragmentgroup>

<condition eventattributetype="AUFTR_TYP">

<value>C</value>

</condition>

<processfragment graphid="AUFTRAG_ANLEGEN">

<condition eventattributetype="CHARGEN_PFL" logicaloperator="neq">

<value>X</value>

</condition>

</processfragment>

<processfragment graphid="CHPLICHT_AUFTRAG_ANLEGEN">

<condition eventattributetype="CHARGEN_PFL">

<value>X</value>

</condition>

</processfragment>

</processfragmentgroup>

Durch Zusammenfassen in einer Prozessfragmentgruppe muss beim Import nur einmal geprüft werden, ob das Quellsystemattribut AUFTR_TYP den Wert C hat. Ist dies nicht der Fall, werden beide Prozessfragmente der Prozessfragmentgruppe nicht instanziiert.

Verwenden Sie Prozessfragmentgruppen, um die Übersichtlichkeit von Prozessfragment-Mapping-Definitionen und die Performance des Imports zu verbessern.

Ausgabe von Warnungen unterdrücken

Wenn Sie in Ihrem Customizing bestimmte System-Events nicht importieren möchten und für diese System-Events auch kein Prozess-Mapping definiert haben, können Sie die zu erwartende Fehlermeldung beim Import unterdrücken. Hierfür geben Sie im XML-Element ignoreevent Bedingungen an, die die Ausgabe einer Fehlermeldung für bestimmte Fragmente unterdrücken, wenn diese nicht importiert werden können.

Für mit ignoreevent-Mapping spezifizierte System-Events wird lediglich die Ausgabe der Warnung unterdrückt, wenn das System-Event nicht importiert werden kann. Das heißt, wenn Sie System-Events importieren, für die sowohl ein Prozessfragment-Mapping als auch ein ignoreevent-Mapping zutreffen, werden diese System-Events importiert.

Beispiel

Sie möchten Prozessfragmente importieren, wenn das System-Event-Attribut EKKO_BSTYP existiert und das System-Event-Attribut MSEG_SHKZG den Wert S für „Wareneingang buchen“ oder H für „Wareneingang stornieren“ hat. Andere Werte des Attributes MSEG_SHKZG führen zur Ausgabe einer Warnung.
Ist das System-Event-Attribut EKKO_BSTYP nicht vorhanden, soll kein Prozessfragment importiert und keine Warnung ausgegeben werden.

Folgendes Prozess-Mapping erfüllt die genannten Bedingungen:

...

<processfragmentgroup>

<!-- nur Wareneingänge mit MM-Vorgängerbelegen importieren

-->

<condition eventattributetype="EKKO-BSTYP" logicaloperator="exists"/>

<processfragment graphid="GWEOF">

<!-- Wareneingang buchen

-->

<condition eventattributetype="MSEG-SHKZG" logicaloperator="eq">

<value>S</value>

</condition>

</processfragment>

<processfragment graphid="GWSOF">

<!-- Wareneingang stornieren

-->

<condition eventattributetype="MSEG-SHKZG" logicaloperator="eq">

<value>H</value>

</condition>

</processfragment>

</processfragmentgroup>

<ignoreevent>

<!-- Keine Warnung ausgeben, wenn kein MM-Vorgängerbeleg vorhanden,

da diese Systemevents nicht importiert werden sollen

-->

<condition eventattributetype="EKKO-BSTYP" logicaloperator="notexists"/>

</ignoreevent>

...