Vor PI 7.1 EHP 1 wurden BPM oder Workarounds verwendet, um IDocs als Paket zu sammeln. Seit PI 7.1 EHP 1 hat SAP ein neues Feature namens IDoc Paketverarbeitung eingeführt: Anstatt jedes IDoc sofort zu versenden, können diese in dem Absender-System gesammelt und dann als Paket an SAP NetWeaver PI gesendet werden. Nur ein RFC Anruf ist erforderlich, um mehrere IDocs zu übertragen, was die Performance wesentlich verbessert.
Durch die Verarbeitung mehrerer Nachrichten in einem Paket, kann der Overhead pro Nachricht reduziert werden. Dadurch werden weniger Hardware-Ressourcen verbraucht und ein erhöhter Nachrichten-Durchsatz wird erreicht.
Allerdings kann man hier die Paketgrösse nicht beliebig erhöhen, da die Grösse der resultierenden Nachrichten einen Einfluß auf die Performance hat (siehe hierzu: Mastering SAP NetWeaver PI Throughput with Message Packaging).
Die IDoc Paketgröße sollte so gewählt werden, dass eine optimale Nachrichtengröße zwischen einem und fünf MB erzielt wird. Dies hängt von der üblichen Anzahl der Segmente pro IDoc ab und kann bei verschiedenen IDoc Typen unterschiedlich sein.
Um eine optimale Nachrichtengröße zu erzielen, kann es sinnvoll sein, mehrere IDoc Sender Kanäle mit unterschiedlichen Paketgrößen anzulegen und diese je nach Szenario in der Sender Vereinbarung zu verwenden.
Im sendenden ABAP System im Partnerprofil (WE20) für den entsprechenden Nachrichtentyp:
Output Mode: Collect IDocs
Pack. Size: z.B. 25
Zum Übertragen der gesammelten IDocs muss der Report RSEOUT00 periodisch eingeplant werden (SM36)!
Üblicherweise, zumindest bis PI 7.11, muss kein Sender-Agreement für den IDoc- und den HTTP-Adapter angelegt werden. Bei Verwendung von Packaging im IDoc-Adapter muss man allerdings im PI ein Sender Agreement mit IDoc Sender Channel einrichten. Zusätzlich muss im korrespondierenden IDoc Channel IDoc Packaging aktivieren sein und unter IDoc Package Size der gleichen Wert wie auf dem ABAP System (z.B. 25) angeben.
Im Message und Operation Mapping muss Occurence nicht auf unbounded gesetzt werden, sondern kann auf 1 bleiben! In der Zielnachricht des Message Mapping muss man aber berücksichtigen, dass mehrere IDocs in einer Nachricht ankommen können.
(siehe auch: Link)
Für jedes IDoc Paket wird im ABAP System für die Übertragung eine eindeutige Transaktionsnummer vergeben. Im PI System wird für jedes Paket eine Message ID vergeben. Ist die Paketgrösse in der Partnervereinbarung des ABAP Systems grösser gewählt als im IDOC Sender Adapter des PI, dann bleibt die Transaktionsnummer für die ABAP Paketgrösse gleich und die Message ID im PI für die IDOC Sender Adapter Paketgrösse. Es gibt dann pro ABAP Paket mehrere PI Pakete, d.h. es findet ein Message-Split im PI statt. Ist die Paketgrösse im ABAP System kleiner als im PI, dann wird die Transaktionsnummer und Message ID von der Paketgrösse im ABAP System bestimmt.
Achtung:
Bei der Verwendung der konditionsabhängigen Empfänger Ermittlung gibt es bei IDoc Paketen folgende Besonderheit. Wenn die eingegebene Bedingung bei einem der IDocs innerhalb eines Paketes erfüllt ist, wird das gesamte IDoc Paket weiter geleitet und nicht nur die Nachrichten, für die die Bedingung erfüllt ist.
Dies bedeutet, wenn die Konditionsabhängige Empfänger / Interface Ermittlung eingesetzt wird, muss das Message Mapping die Konditionsabfrage erneut durchführen und nur die IDocs in die Zielstruktur übernehmen, bei denen die Bedingungen erfüllt sind.