AEP.API B2B SAP ECC / ISU Customizing

Allgemeine Konfiguration

Im Folgenden werden die Schritte zur Konfiguration der B2BbP beschrieben, die notwendig sind, um das SAP ISU mit der B2BbP zu verbinden. Grundlage für diese Beschreibung ist die B2BbP-Konfiguration.

Aktualisieren Sie die B2BbP auf mindestens auf das B2B Release 2025-KW3.

In dieser Dokumentation werden standardmäßig die neu anzulegenden Channel OUT_API_REQUEST und IN_API-REQUEST verwendet.

Verarbeitung ausgehender API-Anfragen

Konfiguration SAP ECC / ISU http-Destination (SM59) (optional - empfohlen)

Diese Konfiguration bezieht sich auf die Dokumentation zur Anbindung von SAP IS-U.

Mit den folgenden Einstellungen haben Sie die Möglichkeit, den Ausgangschannel direkt aus dem SAP-System zu steuern. Diese Konfiguration ist optional, ist aber aktuell unsere Empfehlung. Alternativ können Sie auch die bestehenden SAP-Konfigurationen nutzen und das Routing wie im Kapitel “Routing in ausgehenden Channel” in den richtigen Ausgangschannel lenken.

  • Erstellen Sie in der Transaktion SM59 eine neue “http-Verbindung zu ext. Systemen” mit dem Namen B2BBP_API
  • Tragen Sie in den “Technischen Einstellungen” in host den Hostnamen oder die IP Ihrer B2BbP ein.
  • Unter Port tragen Sie den Port ein, unter dem Ihre B2BbP erreichbar ist ein
  • Als Pfadpräfix nutzen Sie /b2bbp-engine/StartupEngine?encoding=UTF-8&channel=OUT_API_REQUEST
  • Tragen Sie unter “Anmeldung & Sicherheit” die entsprechenden B2BbP Anmeldedaten ein

Abbildung 1.1

Mit einem Verbindungstest können Sie die korrekte Konfiguration überprüfen: Abbildung 1.2

Weitere Informationen zu SAP-Konfigurationen finden Sie in der SAP-Dokumentation, die im Rahmen des SAP ECC Projektbeschleunigers bereitgestellt wurde.

Konfiguration der IDOC-XML Formaterkennung

Die Formaterkennung für das IDOC-XML erfolgt über die Extension DIALECT. Erweitern Sie die bestehende Extension mit der von uns bereitgestellten DIALECT-Erweiterung.

Kontaktieren Sie hierfür unseren Support oder benannten Ansprechpartner. (Hinweis an den Support: die DIALECT findet sich hier).

Routing in ausgehenden Channel (optional)

Diese Konfiguration ist optional. Wenn Sie eine HTTP-Destination verwenden, die direkt an den Channel OUT_API_REQUEST sendet, können Sie diesen Schritt überspringen.

Das Routing kann beispielsweise unter Verwendung der ChannelDistribution EdiConditionDistributorAllPresentations mit folgendem Eintrag in der Extension GENERIC_EDICONDITION_DISTRIBUTION erfolgen:

"OUT_API_REQUEST" <== $messagecontext.FORMAT.type== "API00003";

In einigen Systemen kann auch eine EdiConditionDistributorAllPresentationsOutbound vorhanden sein. In diesem Fall muss der entsprechende Eintrag in der Extension GENERIC_EDICONDITION_DISTRIBUTION_OUT konfiguriert werden.

Ausgehender Channel und Action Konfiguration

Im Standard nutzen wir den neuen Channel OUT_API_REQUEST.

Die folgenden Actions müssen in der angegebenen Reihenfolge aktiviert werden, um einen API-Request an das AEP.API-System zu senden. Diese Nachricht enthält alle erforderlichen Informationen, damit das AEP.API-System die API-Nachricht über die Webservices versenden kann.

Actions:

  • IndexAction (Volltextindexierung BASE_MASSAGE) (optional)
  • XslTransformationAction (“API - Transform IDOCXML 2 API”)
  • Send API WithOut API Product (optional)
  • Outbox Action
  • ErrorMailHandler-Action

Indexierung für die Volltextsuche (Optional)

Möglicherweise benötigt Ihr System die IndexAction für eine Volltextindizierung. Vergleichen Sie dazu Ihre anderen Kanäle. Falls Sie bereits unsere AEP.AS4-Lösung verwenden, können Sie eventuell die bestehende Action wiederverwenden.

Für die Volltextindizierung der API-Nachrichten kann nicht dieselbe Action verwendet werden wie für die EDIFACT-Volltextindizierung. Es wird eine separate Action mit den folgenden Eigenschaften benötigt:

Name Typ Klasse Beschreibung Urheber
Volltextindexierung BASE_MASSAGE java org.b2bbp.channels.extension.IndexingService Volltextindexierung, der BASE_MASSAGE b2bbp.org
Aktionseigenschaft Wert Kontext überschreiben Optionen
TARGET_INDEX_ENTRY B3P_BASE_MESSAGE Ja  

Mapping des IDOC-XML in die API-Anfrage Information Ziel-Struktur

Die Transformation erfolgt über XSLT mit der entsprechenden XslTransformationAction:

Name Typ Klasse Beschreibung Urheber
API - Transform IDOCXML 2 API java org.b2bbp.eai.actions.XslTransformationAction Mapping IDoc-XML zu API-JSON b2bbp.org
Aktionseigenschaft Wert Kontext überschreiben Optionen
EAI_ORIGINAL_XML ${var(B3P_BASE_MESSAGE)} Ja (technisch)
EAI_TRANSFORMATION_RESULT_PROP CURRENT_PAYLOAD Nein  
EAI_XSL_EXTENSION_NAME API_MAPPING_ZASP_API_MALO_01_2_API Ja  
TRANSFORMER_FACTORY_CLASSNAME net.sf.saxon.TransformerFactoryImpl Ja  

Die XSLT muss in der Extension API_MAPPING_ZASP_API_MALO_01_2_API gespeichert werden. Kontaktieren Sie hierfür den Support oder Ihren benannten Ansprechpartner. (Hinweis an den Support: das Mapping findet sich hier).

Für Testumgebung noch ohne AEP.API-Produktanbindung (Optional)

Um Tests zwischen Ihren ERP-Systemen zu ermöglichen und somit eine Kommunikation zwischen beispielsweise Ihrem Verteilnetzbetreiber und Ihren Lieferanten zu gewährleisten, können Sie dieselbe oder eine andere B2BbP direkt mit folgender Konfiguration verbinden. Diese Konfiguration ermöglicht Ihnen einen Test, ohne das API-Produkt direkt angeschlossen zu haben. Sollten Sie bereits Zugriff auf unser API-Produkt haben, empfehlen wir Ihnen, die folgende Konfiguration zu überspringen und direkt mit der Einrichtung zur „Übergabe an die AEP.API-Queue“ zu beginnen.

Richten Sie folgende Action ein:

Name Typ Klasse Beschreibung Urheber
Send API WithOut API Product java org.b2bbp.runtime.actions.internal.SetPropertyAction Sendet den API Request an die B2BbP Testinstanz b2bbp.org
Aktionseigenschaft Wert Kontext überschreiben Optionen
B3P_USED_SERVICE_ID ApiSenderServiceTest nein nein
CURRENT_PAYLOAD {"id":"TestDummy", "majorVersion": 1, "b2bMessageId":"${template(&(this.B3P_OBJ_MESSAGE.messageId))}","isResend":${if(${equals(${var(MESSAGE_IS_RESTARTED)},true)},true,false)},${stringsplit(${var(CURRENT_PAYLOAD)},^\s*\{,1)} nein  

Damit die Action und der Test funktionieren, richten Sie folgenden Service ein. Geben Sie bei IP und Port die B2BbP-Verbindung ein, an die Sie den API-Request für Tests senden möchten.

Id Name Typ Klasse Channel Richtung Urheber Optionen
ApiSenderServiceTest Sende API Request to Testsystem HTTP org.b2bbp.services.outbound.http.HttpPlainService2   Nach Welt b2bbp nicht aktiv
Serviceeigenschaft Wert Kontext überschreiben
HTTP_PASSWORD Passwort der empfangenen B2BbP Nein
HTTP_URL http://ip:port/b2bbp-engine/StartupEngine?channel=IN_API_REQUEST Nein
HTTP_USER User der empfangenen B2BbP Nein

Übergabe an die AEP.API-Queue / AEP.API (Outbox Action)

Folgen Sie bitte ab hier der Standard B2B-Konfiguration.

Verarbeitung eingehender API-Anfragen

Konfiguration der API.JSON Formaterkennung

Bitte folgen Sie der Standardkonfiguration.

Eingehender Channel und Action Konfiguration

Im Standard nutzen wir den neu anzulegenden Channel IN_API_REQUEST.

Die nachfolgenden Actions müssen in derselben Reihenfolge in einem Channel aktiviert sein. Zusammen konvertieren sie den API-Request in ein IDOC-XML und senden dieses an das SAP ISU.

Actions:

  • optional - IndexAction (Volltextindexierung BASE_MASSAGE)
  • TransformJsonToXmlAction (“API - Convert JSON 2 XML”)
  • XslTransformationAction (“API - Transform XML-JSON 2 IDOCXML”)
  • Send To SAP ISU
  • ErrorMailHandler-Action

Indexierung für die Volltextsuche (Optional)

Möglicherweise benötigt Ihr System die IndexAction für eine Volltextindizierung. Vergleichen Sie dazu Ihre anderen Kanäle. Falls Sie bereits unsere AEP.AS4-Lösung verwenden, können Sie eventuell die bestehende Action wiederverwenden.

Für die Volltextindizierung der API-Nachrichten kann nicht dieselbe Action verwendet werden wie für die EDIFACT-Volltextindizierung. Es wird eine separate Action mit den folgenden Eigenschaften benötigt:

Name Typ Klasse Beschreibung Urheber
Volltextindexierung BASE_MASSAGE java org.b2bbp.channels.extension.IndexingService Volltextindexierung, der BASE_MASSAGE b2bbp.org
Aktionseigenschaft Wert Kontext überschreiben Optionen
TARGET_INDEX_ENTRY B3P_BASE_MESSAGE Ja  

Mapping der API-Anfrage Information Struktur auf IDOC-XML

Die Transformation API-JSON zu IDOC-XML erfolgt in 2 Schritten. Zunächst wird das JSON in eine JSON-XML Representation konvertiert. Anschließend erfolgt ein Mapping per XSLT zu IDOC-XML.

Der erste Schritt, die Konvertierung nach XML erfolgt mittels der Action org.b2bbp.eai.actions.TransformJsonToXmlAction:

Name Typ Klasse Beschreibung Urheber
API - Convert JSON 2 XML java org.b2bbp.eai.actions.TransformJsonToXmlAction Transformation API-JSON zu XML-JSON Representation b2bbp.org
Aktionseigenschaft Wert Kontext überschreiben Optionen
JSONPATH_FOR_ELEMENTS_TO_UNESCAPE $.body Nein  

Im zweiten Schritt erfolgt das Mapping nach IDOC-XML über die XslTransformationAction:

Name Typ Klasse Beschreibung Urheber
API - Transform XML-JSON 2 IDOCXML java org.b2bbp.eai.actions.XslTransformationAction Transformation XML-JSON zu IDOC-XML b2bbp.org
Aktionseigenschaft Wert Kontext überschreiben Optionen
EAI_ORIGINAL_XML ${var(JSON_XML)} Ja (technisch)
EAI_TRANSFORMATION_RESULT_PROP CURRENT_PAYLOAD Nein  
EAI_XSL_EXTENSION_NAME API_MAPPING_API_2_ZASP_API_MALO_01 Ja  
TRANSFORMER_FACTORY_CLASSNAME net.sf.saxon.TransformerFactoryImpl Ja  
B3P_PARAM_RCVPOR SAP-RCVPOR Nein (technisch)
B3P_PARAM_RCVPRN SAP-RCVPRN Nein (technisch)
B3P_PARAM_RCVPRT SAP-RCVPRT Nein (technisch)
B3P_PARAM_NODEID ${var(B3P_ACTIVE_SERVER_NODE)} Nein (technisch)

Das Mapping erfolgt mittels XSL-Transformation. Die XSLT muss in der Extension API_MAPPING_API_2_ZASP_API_MALO_01 gespeichert werden. Kontaktieren Sie hierfür den Support oser Ihren benannten Ansprechpartner. (Hinweis an den Support: die XslTransformation findet sich hier).

Übergabe an SAP ISU

Beachten Sie, dass diese Konfiguration eventuell bereits in Ihrem System existiert. Aus Gründen der Vollständigkeit ist sie hier aufgeführt. Stellen Sie sicher, dass der Aufruf des SAP ISU in der IN_API_REQUEST-Channelkonfiguration hinterlegt ist.

Die folgende Action ruft den Service SendIdoc2Sap auf.

Name Typ Klasse Beschreibung Urheber
Send IDoc-XML to SAP java org.b2bbp.runtime.actions.internal.SetPropertyAction Aufruf der Service Property für ICOC-XML zu SAP b2bbp.org
Aktionseigenschaft Wert Kontext überschreiben Optionen
B3P_USED_SERVICE_ID SendIdoc2Sap ja  

In dem Service SendIdoc2Sap müssen die entsprechenden Anmeldedaten und URL Parameter hinterlegt werden. Beachten Sie bitte die Hinweise in der Dokumentation des HttpPlainService

Id Name Typ Klasse Channel Richtung Urheber Optionen
SendIdoc2Sap Send IDOC-XML per Http to SAP HTTP org.b2bbp.services.outbound.http.HttpPlainService   Nach Welt b2bbp nicht aktiv

In der HTTP_URL ersetzen Sie bitte die IP mit dem Hostnamen oder IP des SAP-Systems, ergänzen Sie den Port abhängig zu Ihrer Systemnummer und ersetzen bitte mandant mit der entsprechend benötigten Mandanten-Nummer.

Serviceeigenschaft Wert Kontext überschreiben
B3P_ENCODING UTF-8 Ja
HTTP_PASSWORD Password mit dem B2B-Base64-Tool kodiert Nein
HTTP_URL http://ip:port/sap/bc/idoc_xml?sap-client=mandant Nein
HTTP_USER User des empfangenen SAP Nein

Statussynchronsiation

Konfigurationsbeschreibung folgt.

View Me   Edit Me