Ansicht
Dokumentation

RBDMIDOC_RETAIL - Artikelstammdatenverteilung (Paketverarbeitung)

RBDMIDOC_RETAIL - Artikelstammdatenverteilung (Paketverarbeitung)

ABAP Short Reference   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Titel

Verteilung von Stammdatenänderungen an Materialen (Paketvearbeitung)

Verwendung

Die Verteilung von Änderungen an den Stammdaten von Materialien basiert auf ALE Änderungszeigern, welche bei der Pflege der Stammdaten erzeugt werden.

Der ALE Standard stößt über die Transaktion BD21 die Versendung der Stammdaten an, wobei die Folgeverarbeitung in einem einzelnen Prozess für alle zu versendenden Stammdaten erfolgt. Gerade bei einer großen Menge an zu verteilenden Daten, kann es dabei zu einem recht hohen Verbrauch an Hauptspeicher und zu hohen Laufzeiten kommen.

Mit Hilfe des Reports RBDMIDOC_RETAIL ist es möglich diese Probleme zu vermeiden. Nach dem Lesen der Änderungspointer erfolgt die Versendung der Änderungen der Stammdaten in Paketen, wobei die Verarbeitung zusätzlich noch intern parallelisiert organisiert werden kann.

Dadurch wird der Hauptspeicherverbrauch begrenzt und die Laufzeit der Verteilung läßt sich erheblich reduzieren.

Integration

Voraussetzungen

Falls neben der Paketbildung auch eine interne Parallelisierung der Verarbeitung erfolgen soll, so ist es notwendig, eine entsprechende aRFC Server Gruppe in der Transaktion RZ12 anzulegen. Dabei sollte sichergestellt werden, daß über die einzelenen Server der Servergruppe verteilt, ausreichend viele Dialog Workprozesse verfügbar sind.

Funktionsumfang

Der Algorithmus der Verteilung der Stammdaten funktioniert folgendermaßen:

  • Lese alle noch nicht abgearbeiteten Änderungspointer zum Nachrichtentyp.
  • Analyse für welche Materialien Änderungen vorliegen. Bildung des Arbeitsvorrates für die Versendung der Stammdaten.
  • Versende Sammelmaterial inklusive der zugeordneten Varianten (falls vorhanden), wobei das Sammelmaterial mit den meisten Änderungszeigern zuerst versendet werden.
  • Versende Einzelmaterial (falls vorhanden), wobei die Materialien zuerst versendet werden, zu welchen die meisten Änderungszeiger vorliegen.

Ein Paket kann gegebenenfalls sowohl Sammelmaterial als auch Einzelmaterial enthalten, fallls mit dem zuletzt versendeten Sammelmaterial die Paketbildung noch nicht abgeschlossen werden konnte.

Die Logik der Verteilung stellt sicher, daß in einem Paket mit einem Sammelmaterial auch alle Änderungen an Varianten zu diesem Sammelmaterial zusammengefasst werden, so daß sichergestellt ist, daß später die Änderungen am Sammelmaterial und den zugeordneten Varianten in einem IDoc versendet werden können.

Neben der reinen Verteilung der Änderungen der Stammdaten, ermöglicht ein Simulations-Modus die Überprüfung der gewählten Parameter für die Paketbildung ohne Versendung der Daten. Außerdem kann wahlweise ein detailliertes Verteilungsprotokoll ausgegeben werden.

Entscheidend für die Qualität der Paketbildung und der parallelen Verarbeitung ist die sinnvolle Einstellung der paktebildenden Selektionsparameter, welche nachfolgend näher beschrieben werden.

Selektion

  • Rahmen "Selektion der Änderungen":
    Hier erfolgt die Auswahl des zu verwenden Nachrichtentyps.
  • Nachrichtentyp:
    Es ist nur möglich den Nachrichtentyp ARTMAS oder von ihm abgeleitete Nachrichtentypen mit diesem Report zu verteilen.

  • Rahmen "Konfiguration" : "Parallelisierung":
    Wahlweise kann die Verarbeitung in Paketen und parallel erfolgen.
  • aRFC Server Gruppe:
    Bitte tragen Sie hier den Namen einer gültigen aRFC Server Gruppe ein. Falls nur Paketverarbeitung ohne interne Parallelisieurung der Verteilung erfolgen soll kann dieses Feld leer gelassen werden.

  • Anzahl paralleler Prozesse:
    Falls die Verteilung intern parallelisiert werden soll, dann definieren sie hier bitte eine Obergrenze bezüglich der maximal verwendeten Anzahl parallleler Prozesse. Der hier definierte Grad der Parallelisierung wird in der Verteilung nicht überschritten, auch wenn die verwendete Server Gruppe mehr als die definierte Anzahl von Prozessen zuläßt. Dadurch wird ermöglicht, dass zeitgleich auch andere Prozesse auf der gleichen Servergruppe arbeiten können, ohne dass durch die Verteilung der Stammdatenänderungen alle verfügbaren Ressourcen beansprucht werden.

  • Rahmen "Konfiguration" : "Paketverarbeitung":
    Die gesetzten Ziele (Beschränkung des Hauptspeicherverbrauchs / parallele Verarbeitung) können nur dann optimal erreicht werden, wenn die für die Paketbildung eingestellten Parameter sinnvoll gepflegt sind.

    Für jede logische Materialeinheit (Einzelmaterial oder Sammelmaterial mit allen relevanten Varianten) wird überprüft, ob einer der Parameter bezüglich der Paketbildung überschritten wurde. Falls ja, wird das Paket abgeschlossen und versendet. Bitte beachten Sie, daß die Paketbildung erst dann mehrere logische Materialeinheiten zu einem Paket zusammenfasst, wenn einer der paketbildenden Parameter unterschritten wird. Diese Parameter sollten also nicht zu klein dimensioniert werden. Je nach Wahl der Parameter kann ein Paket auch Sammelmaterialien und Einzelmaterialien gemeinsam beinhalten.

    Zielsetzung für die Paketverarbeitung ist nicht zu viele aber auch nicht zu wenige Pakete zu bilden. Werden zuviele Pakete gebildet (z. B. für jedes Material eines), dann sind sehr viele einzelne RFCs (parallele Prozesse) zu verwalten und der Kommunikaitionsaufwand wird zu groß. Dann könnte es sein, daß der verteilende Prozesse nicht schnell genug neue Pakete in die Verarbeitung einstreuen kann. Werden zu wenige Pakete gebildet, so läßt sich der Verbrauch an Hauptspeicher nicht genügend eingrenzen. Außerdem besteht die Gefahr, daß einzelne "Langläufer" unter den Paketen die Gesamtlaufzeit der Verteilung dominieren, obwohl die meisten übrigen Pakete Ihren Arbeitsvorrat bereits abgearbeitet haben.

    Die Güte der Paketbildung ist abhängig vom konkreten Datengerüst, dem die Verteilung der Stammdaten zugrunde liegt und den verfügbaren Systemressourcen. Deshalb kann es hier keine allgemeingültige Empfehlung geben. Allerdings werden Vorschlagswerte im Selektionsbild vorgeblendet. Darüber hinaus ermöglicht der Simulationsmodus eine Kontrolle der gewählten Parameter ohne Verteilung, d.h. es werden keine parallele Prozesse gestartet, keine IDocs aufgebaut und keine Änderungszeiger als verarbeitet markiert.
  • Anzahl Materialien pro Prozess:
    Hier wird die obere Grenze der Anzahl von Materialien pro Paket definiert, wobei die Variante eines Sammelmaterials als eigenes Material gezählt wird. Da die Varianten immer im gleichen Paket wie der zugrundeliegende Sammelartikel verarbeitet werden müssen, kann es auch vorkommen, daß in einem Paket mehr Artikel enthalten sein können, als der angegebene Wert zuläßt.

  • Anzahl Änd.zeiger pro Prozess:
    Hier wird die obere Grenze der Anzahl von Änderungszeigern pro Paket definiert. Falls dieser Grenzwert überschritten wird, führt dies dazu, daß im Paket weniger Artikel enthalten sind, als der Grenzwert 'Anzahl Materialien pro Prozess' angibt. Da die Varianten immer im gleichen Paket wie der zugrundeliegende Sammelartikel verarbeitet werden müssen, kann es auch vorkommen, daß in einem Paket mehr verarbeitete Änderungszeiger enthalten sein können, als der angegebene Wert zuläßt.

  • Rahmen "Konfiguration" : "Protokollierung / Simulation":
    Wahlweise kann ein ausführliches Protokoll der Verteilung der Stammdaten ausgegeben werden oder eine Simulation der Verteilung durchgeführt werden.
  • Protokoll anzeigen:
    Optionale Ausgabe des Protokolls auf den Bildschirm oder in die Spooliste des Jobs.

  • Verteilung simulieren:
    Bei der Simulation der Verteilung werden die Änderungszeiger gelesen und die Pakete entsprechend der oben beschriebenen Parameter gebildet. Bei der Simulation der Verteilung wird immer auch das Protokoll mit ausgegeben. Bei moderater Paketgröße entspricht der Verbrauch an Hauptspeicher im Simulaitonsmodus in etwa dem Hauptspeicherverbrauch bei tatsächlicher Verteilung.

Standardvarianten

Ausgabe

Der Report RBDMIDOC_RETAIL liefert ein detailliertes Protokoll, das u.a. auch die Nutzung der Ressourcen zur Laufzeit dokumentiert. Das Protokoll ist in fünf Bereiche unterteilt:

  • Verteilungsprotokoll 1:
    Im Abschnitt Verteilungsprotokoll 1 werden die Tasknummer (laufende Nummer), die Anzahl der Materialien und Änderungszeiger pro Paket angezeigt, d.h hier wird die Qualität der Paketbildung aufgezeigt.
  • Verteilungsprotokoll 2:
    Der Abschnitt Verteilungsprotokoll 2 zeigt neben der Tasknummer die Start-, Ende- und Laufzeit pro Task, den Server und die Anzahl paralleler Prozesse zur Laufzeit an, d.h. hier wird die Qualität der Lastverteilung aufgezeigt.
  • Sammelmaterial-Statistik:
    Hier werden die versendeten Sammelmaterialien, die Anzahl der Varianten und die Summe der Änderungszeiger pro Sammelmaterial und Varianten angezeigt.
  • Laufzeitübersicht:
    Die Laufzeitübersicht protokolliert Start- und Endezeit, sowie die Laufzeit der einzelnen Verarbeitungsschritte (z.B. Änderungszeiger lesen, Schlüsseltabelle aufbauen etc.).
  • Datenvolumen / Parameterwahl:
    In diesem Abschnitt des Protokolls werden die Anzahl der versendeten Materialien getrennt nach Sammelmaterialien, Varianten und sonstigen Materialien (z.B. Einzelmaterialien), sowie die Selektionsparameter (Anzahl Materialien pro Prozeß, Anzahl Änd.zeiger pro Prozeß, Anzahl paralleler Prozesse) angezeigt.

Aktivitäten

Beispiel

Beispiel 1: Verteilung von Sammelmaterialien mit Varianten

materialstammdatenverteilung (Paketverarbeitung)

Verteilungsprotokoll 1:

Task Anz. Mat. Anz. Änd.zeiger

1 + 11 + 1.041
2 + 11 + 1.041
....
98 + 11 + 1.041
99 + 11 + 1.041
100 + 11 + 1.041

Verteilungsprotokoll 2:

Task Start Ende Laufzeit Server Anz. parall. Proz.
00000001 + 14:18:39 + 14:19:01 + 00:00:22 + PWDF0635_AL0_55 + 1
00000002 + 14:18:39 + 14:18:49 + 00:00:10 + PWDF0636_AL0_55 + 2
00000003 + 14:18:39 + 14:19:11 + 00:00:32 + PWDF0635_AL0_55 + 3
00000004 + 14:18:39 + 14:18:49 + 00:00:10 + PWDF0636_AL0_55 + 4
00000005 + 14:18:39 + 14:19:14 + 00:00:35 + PWDF0635_AL0_55 + 5
00000006 + 14:18:40 + 14:18:49 + 00:00:09 + PWDF0636_AL0_55 + 6
00000007 + 14:18:43 + 14:19:09 + 00:00:26 + PWDF0635_AL0_55 + 7
00000008 + 14:18:43 + 14:18:53 + 00:00:10 + PWDF0636_AL0_55 + 8
00000009 + 14:18:47 + 14:19:10 + 00:00:23 + PWDF0635_AL0_55 + 9
00000010 + 14:18:47 + 14:18:55 + 00:00:08 + PWDF0636_AL0_55 + 10
...
00000099 + 14:20:33 + 14:20:49 + 00:00:16 + PWDF0635_AL0_55 + 10
00000100 + 14:20:33 + 14:20:49 + 00:00:16 + PWDF0635_AL0_55 + 10

Sammelmaterial-Statistik:

Sammelmaterial ,,,,Anz. Var.,,Anz. Änd.zeiger
SA10VAR___00001 + 10 + 1.041
SA10VAR___00002 + 10 + 1.041
SA10VAR___00003 + 10 + 1.041
....
SA10VAR___00099 + 10 + 1.041
SA10VAR___00100 + 10 + 1.041

Laufzeitübersicht:


Verarbeitungsphase,,___________Start______Ende_____Laufzeit
Änderungszeiger lesen________14:18:19___14:18:37__00:00:18
Schlüsseltabelle aufbauen____14:18:38___14:18:39__00:00:01
Paketbildung vorbereiten_____14:18:39___14:18:39__00:00:00
Sammelmaterialien verteilen__14:18:39___14:20:33__00:01:54
Protokoll erstellen__________14:20:51___14:20:51__00:00:00
Geamtlaufzeit________________14:18:18___14:20:51__00:02:33


Datenvolumen / Parameterwahl:

Materialien gesamt:____,,1.100
Sammelmaterialien:______100
Varianten:____________,,1.000
Sonstige Materialien:_____0

Anzahl Materialien pro Prozeß:____8
Anzahl Änd.zeiger pro Prozeß:___800

Beispiel 2: Verteilung von Einzelmaterialien

materialstammdatenverteilung (Paketverarbeitung)

Verteilungsprotokoll 1:

Task ,,,,Anz. Mat.,,Anz. Änd.zeiger
1 + ,,,,31 +,,,,3.069
2 + ,,,,31 + ,,,,3.069
3 +,,,,31 +,,,,3.069
4 +,,,,31 +,,,,3.069
5 +,,,,31 +,,,,3.069
6 +,,,,31 +,,,,3.069
7 +,,,,14 +,,,,1.386

Verteilungsprotokoll 2:

Task ,,,,Start Ende Laufzeit Server Anz. paral
00000001 + 15:14:42 + 15:15:20 + 00:00:38 + PWDF0635_AL0_55 + 1
00000002 + 15:14:43 + 15:15:22 + 00:00:39 + PWDF0636_AL0_55 + 2
00000003 + 15:14:43 + 15:15:25 + 00:00:42 + PWDF0635_AL0_55 + 3
00000004 + 15:14:43 + 15:15:19 + 00:00:36 + PWDF0636_AL0_55 + 4
00000005 + 15:14:44 + 15:15:28 + 00:00:44 + PWDF0635_AL0_55 + 5
00000006 + 15:14:45 + 15:15:22 + 00:00:37 + PWDF0636_AL0_55 + 6
00000007 + 15:14:45 + 15:15:10 + 00:00:25 + PWDF0635_AL0_55 + 7

Laufzeitübersicht:

Verarbeitungsphase__________________Start_____Ende__Laufzeit
Änderungszeiger lesen___________15:14:15__15:14:39__00:00:24
Schlüsseltabelle aufbauen_______15:14:40__15:14:40__00:00:00
Paketbildung vorbereiten________15:14:40__15:14:40__00:00:00
Sonstige Materialien verteilen__15:14:41__15:14:45__00:00:04
Protokoll erstellen_____________15:15:28__15:15:28__00:00:00
Geamtlaufzeit___________________15:14:15__15:15:28__00:01:13

Datenvolumen / Parameterwahl:

Materialien gesamt:____200
Sammelmaterialien:______0
Varianten:______________0
Sonstige Materialien:__200


Anzahl Materialien pro Prozeß:____50
Anzahl Änd.zeiger pro Prozeß:__3.000

Anzahl paralleler Prozesse:_______10

Beispiel 3: Verteilung von Einzelmaterialien, Sammelmaterialien und Varianten

materialstammdatenverteilung (Paketverarbeitung)

Verteilungsprotokoll 1:

Task Anz. Mat. Anz. Änd.zeiger
1 + 12 + 1.044
2 + 12 + 1.044
3 + 12 + 1.044
4 + 10 + 942
5 + 10 + 990
6 + 10 + 990
7 + 10 + 990
8 + 10 + 990
9 + 10 + 990
10 + 10 + 990
11 + 10 + 990
12 + 10 + 990
13 + 10 + 990
14 + 4 + 396

Verteilungsprotokoll 2:

Task Start Ende Laufzeit Server Anz. para
00000001 + 18:18:06 + 18:18:50 + 00:00:44 + PWDF0635_AL0_55 + 1
00000002 + 18:18:06 + 18:18:44 + 00:00:38 + PWDF0636_AL0_55 + 2
00000003 + 18:18:06 + 18:18:18 + 00:00:12 + PWDF0637_AL0_55 + 3
....
00000012 + 18:18:18 + 18:18:27 + 00:00:09 + PWDF0637_AL0_55 + 10
00000013 + 18:18:22 + 18:18:43 + 00:00:21 + PWDF0636_AL0_55 + 10
00000014 + 18:18:27 + 18:18:31 + 00:00:04 + PWDF0637_AL0_55 + 10

Sammelmaterial-Statistik:

Sammelmaterial Anz. Var. Anz. Änd.zeiger
SA3VAR____00001 + 3 + 348
SA3VAR____00002 + 3 + 348
....
SA3VAR____00008 + 3 + 348
SA3VAR____00009 + 3 + 348
SA3VAR____00010 + 3 + 348

Laufzeitübersicht:

Verarbeitungsphase______________Start_____Ende______Laufzeit
Änderungszeiger lesen___________18:17:53__18:18:05__00:00:12
Schlüsseltabelle aufbauen_______18:18:05__18:18:05__00:00:00
Paketbildung vorbereiten________18:18:05__18:18:05__00:00:00
Sammelmaterialien verteilen_____18:18:05__18:18:06__00:00:01
Sonstige Materialien verteilen__18:18:06__18:18:27__00:00:21
Protokoll erstellen_____________18:18:54__18:18:55__00:00:01
Geamtlaufzeit___________________18:17:53__18:18:54__00:01:01

Datenvolumen / Parameterwahl:

Materialien gesamt:_____________140
Sammelmaterialien:______________10
Varianten:______________________30
Sonstige Materialien:__________100
Anzahl Materialien pro Prozeß:___10
Anzahl Änd.zeiger pro Prozeß:_2.000
Anzahl paralleler Prozesse:______10

Folgende Meßreihe wurde in einem Entwicklungssystem der SAP vermessen. Bitte beachten, daß diese Ergebnisse nur bedingt auf andere Systeme übertragbar sind.

Laufzeitmessung Paketbildung + Parallelisierung:
Laufzeit Anzahl Prozesse Max. Materialien Max. Pointer Anzahl Pakete
9 Min. 11 Sek. 5 20 3.000 170
4 Min. 26 Sek. 10 20 3.000 170
3 Min. 41 Sek. 15 20 3.000 170
3 Min. 30 Sek. 15 40 3.000 107
3 Min. 18. Sek. 20 40 3.000 107
Laufzeitmessung RBDMIDOC seriell (Referenzmessung):
Laufzeit Anzahl Prozesse Max. Materialien Max. Pointer Anzahl Pakete
31 Min. 04 Sek. 1 Keine Keine 1

In beiden Testfällen wurde die gleiche Anzahl von Stammdaten-IDOCs verteilt. Aufgrund der fixen Anteile an Laufzeit (z. B. Lesen der Pointer) verhält sich der Gewinn an Performance nicht ganz linear zur zunehmenden
Anzahl an parallelen Prozessen. Dennoch beträgt die Laufzeit bei 15 Prozessen parallel nur noch 10 % der Laufzeit ohne Paketbildung und Parallelisierung.






Fill RESBD Structure from EBP Component Structure   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 25836 Date: 20240531 Time: 040829     sap01-206 ( 288 ms )