Technische Ergänzungen 
Nötige Schritte zum Aufbau einer Vertragsschnittstelle:
Definition zusätzlich benötigter Produkt-Attribute mittels Konzept der Vorlage-Installation
Mapping der CRM-Produktidentifikation zum Produkt im externen System
Definition der Attribute zur Speicherung der Referenz zum externen System
Anwenderstatus zur Steuerung der Vertragsverteilung
Anreicherung der Vorgangsdaten im External-Interface-BAdI
Mapping In-/Outbound Geschäftsvorgang Interface
(CRMXIF_ORDER_MAP)
Ankopplung des externen Systems über den
SAP
Business Connector
Sie müssen u. U. die Referenz zu im externen System angelegten Entitäten am CRM-Vorgang, oder genauer in einem zugeordneten individuellen Objekt, sichern und diese Daten bei Vertragsänderungen mitsenden. Zu diesem Zweck steht Ihnen der API-Funktionsbaustein
Hinzufügen des Sets mit externen Referenzen zu einer IBase
(ISTCRM_IBASE_EXT_REF_ADD) zur Verfügung, der in einer existierenden Installation ein neues Objekt mit den übergebenen Daten anlegt.
Voraussetzungen für die Nutzung:
Objektfamilie (in einem einzigen Settyp) existiert mit den zur Speicherung der Referenz nötigen Attributen
Objektfamilie wurde für den Installationstypen freigegeben
Mapping des Settyps zum Service _SAP_EXT_REF_ und der in der Schnittstelle verwendeten Merkmalsnamen zu den Attributnamen im CRM existiert

Objekt: |
zugeordnet zu: |
|---|---|
Objektfamilie 0815 Settyp ZEXT_REF Attribut ZVERTRAG Attribut ZKUNDE
|
Installationstyp IT Service _SAP_EXT_REF_ Merkmal SUBSCRIPTION Merkmal XY_CUSTOMER
|
Der Baustein erwartet die Merkmale in einer Tabelle der Form
Name/Wert
(Beispiel: Name: SUBSCRIPTION Wert: 12345) und die ID der bereits existierenden Installation. Sie können den Baustein z. B. im Antwortteil des BAdIs
Mapping In-/Outbound Geschäftsvorgang Interface
(CRMXIF_ORDER_MAP) aufrufen.
Abhängig vom Anwendungsfall und der Vielfalt der Prozesse innerhalb der Vertragsabwicklung kann der Status beliebig kompliziert ausfallen. Unabdingbar ist, dass aus dem Status im Zusammenspiel mit dem Systemstatus hervorgeht, ob die Vorgangsänderung für die Verteilung relevant ist und welche Daten übermittelt werden müssen. Die entsprechende Auswertung müssen Sie entweder im External-Interface-BAdI oder im
SAP Business Connector
programmieren. Von dort müssen auch die Updates für den Anwenderstatus kommen.

Anwenderstatusschema besteht aus folgenden Status:
offen
aktiv
gekündigt
Diese Status können nur in dieser Reihenfolge und nur ein Status zur gleichen Zeit gesetzt werden.
Parallel dazu gibt es zusätzlich den Status:
Fehler aufgetreten
Daraus lassen sich folgende Regeln für die Programmierung der Schnittstelle ableiten:
Wenn der Status Fehler aufgetreten gesetzt ist, soll das System keine weitere Aktivität ausführen. Fehler sind manuell zu beheben. Durch Zurücksetzen des Status können Sie die Neuübermittlung anstoßen.
Ansonsten müssen Sie nach folgender Matrix auswerten:
Systemstatus |
Anwenderstatus |
Aktion |
Folge-Anwenderstatus |
|---|---|---|---|
|
|
|
|
|
|
|
|
Andere Kombinationen sind nicht zulässig.
Innerhalb des BAdI liegen die Vorgangsdaten bereits in der komplexen Struktur CRMXIF_BUSTRANS vor (Parameter CS_DATA_MAPPED), die nach der Bearbeitung im BAdI an die in der Middleware eingestellten Ziele versendet wird. Zusatzdaten lassen sich per
Append
an diese Struktur anfügen. Dies kann entweder in einer generischen Form mit Attribut-Namen/Wert-Paaren oder in einer den Produktattributen angepassten Struktur gemacht werden. Die Auswertung der generischen Lösung muss im
SAP Business Connector
erfolgen. Mit der starren Lösung entfällt hier in geringem Maß Aufwand, der später in der BAdI-Programmierung zu leisten ist, da die APIs zur Benutzung der zusätzlichen Produktattribute diese immer im generischen Format erwarten.
Vorher sind jedoch einige Auswertungen zu jeder in der komplexen Struktur abgelegten Vorgangspositionen erforderlich:
Der Positionstyp bestimmt im Normalfall, ob die Position verteilt werden muss.
Status und Anwenderstatus der Position bestimmen, ob und welche Aktion ausgeführt bzw. welche Kommandos an externes System verschickt werden.
Evtl. sind mehrere Installationen an die Vorgangsposition geknüpft, die jeweils relevante ist zu ermitteln.
Der Funktionsbaustein
Lesen der in der Vertrags-Ibase eingetragenen Service-Attribute und Werte
(ISTCRM_IBASE_SERVICES_GET) liefert zu Installation und Produkt der Vorgangsposition:
externe Produktbezeichnung und logisches System (Service _SAP_EXT_PRD_)
Abrechnungsperiode und Datum (Service _SAP_EXT_BIL_)
zusätzliche Attribute (für Zusatzattribute angelegter Service), falls vorhanden
Schlüssel zu externen Entitäten (Service _SAP_EXT_REF_), falls vorhanden
Die Daten liegen entsprechend dem Settyp/Service-Mapping mit den externen Attributbezeichnungen vor und müssen entsprechend den Anforderungen der Schnittstelle in der komplexen Struktur abgelegt werden.
Wenn der Weg über die Ausprägung des External-Interface-BAdIs und die Erweiterung der Strukturen mit einem Append nicht durchführbar ist, besteht die Möglichkeit, die Daten vorab ungefiltert zum
SAP Business Connector
zu senden, also das BAdI nicht auszuprägen. Von dort aus können Sie RFC-Aufrufe ins CRM-System zurück initiieren. In diesen RFC-fähigen Bausteinen können Sie sämtliche Auswertungen bezüglich der Vorgangsposition/des Status/der Installation durchführen und die Zusatzattribute zurücksenden. Dies erspart die Erweiterung der komplexen Struktur des External Interface, jedoch steigt der Programmieraufwand im
SAP Business Connector
und im CRM-System. Auch aus Performance-Gründen sollten Sie die erste Lösung vorziehen.