SAP CRM: Merkmal als Signatur für Mailvorlagen in Service-Emails

SAP CRM bietet die Möglichkeit der Kommunikation mit dem Kunden über die Emailfunktionalität aus einem Serviceticket. Dabei können vordefinierte Emailvorlagen benutzt werden, die die Übergabe verschiedener Variablen an den aus dem Ticket aufgerufenen Emaileditor unterstützen. Somit kann beim Aufruf einer Vorlage diese mit bestimmten Werten wie persönliche Anrede, Vor- und Nachname oder Betriebszugehörigkeit automatisch vorbelegt werden.

Die Definition und Pflege der Mailformulare passiert im WebClient unter Anmelderolle SSC_ADMIN und dort über den Link „Mailformulare“. Für die Übergabe der Variablen aus dem Businesskontext sind so genannte Textmerkmale verantwortlich, diese können im Emailtext oder auch im Betreff eingefügt werden.

Problemstellung

Die Einbindung der Merkmale passiert über eine flache Struktur, dadurch können in einem Formular nur einzelne Variablen übergeben werden, deren maximale Länge auch begrenzt ist. Leider ist dieses Konzept für die Einbindung längerer Texte, wie zum Beispiel die Vorstandsleiste eines Unternehmens, nicht geeignet. Bei einem personellen Wechsel im Vorstand sollen nachträglich alle bereits erstellten Mailvorlagen einzeln in jedem Folgesystem und allen vordefinierten Anmeldesprachen angepasst werden. Diese können nicht transportiert werden und  dadurch kann der IT-Aufwand übermäßig groß ausfallen.

Lösung

Zur Lösung dieses Problems kann folgendes Konstrukt angewendet werden:

Es soll ein einzeiliges Merkmal definiert werden, das in ein Formular eingefügt werden kann und dieses nachträglich im Code des CRM-Maileditors durch eine Textvariable dynamisch ersetzt werden. Aus technischer Sicht sind folgende Schritte notwendig:

  • Definition und Anbindung eigener Merkmalstruktur: im CRM-Customizing Transaktion SPRO unter ( IMG-Referenz-> Customer Relationship Management-> Marketing-> Marketingplanung und Kampagnenmanagement-> Personalisierte Mail-> Merkmalkontexte für Mailformulare bearbeiten) soll eine eigene Struktur angebunden werden, in der das Merkmal als Feld definiert ist. Auf diese Weise lässt sich dieses Feld im Mailformular als Merkmal einpflegen.
  • BAdI Implementierung: Die Feldverarbeitung wird im untergeordneten BAdI implementiert, zu finden ist dieses im Unterverzeichnis von Marketingplanung und Kampagnenmanagement-> Kampagnendurchführung-> Business Add-Ins-> BAdI: Zusätzliche Attribute für Mailformular-Merkmalskontexte bearbeiten. Hier soll das vom Standard vorbereitete BAdI CRM_IM_ADD_DATA_BADI und die Methode CRM_IM_BPSELE implementiert werden. In der Methode enthält zur Laufzeit die globale Tabelle CT_ATT_VALUES die eingebundene Struktur und das Merkmal im Tabellenfeld „name“, in das Feldpaar „value“ soll eine entsprechende Feldbezeichnung, z.B. „M.VORSTAND“, hineingeschrieben werden, die im späteren Verlauf im HTML-Part des Maileditors leicht gefunden und durch ein HTML-Tag ersetzt werden kann.
  • Verarbeitungslogik im Maileditor: Im Komponenten-Workbench Transaktion BSP_WD_CMPWB ist die BSP-Komponente CRMCMP_CCS_EML von Interesse, diese soll falls noch nicht geschehen mit bekannten SAP-Standardmitteln über ein Set erweitert werden. Dadurch fällt die Änderung des SAP-Standardkodes nicht unter Modifikation. Die Komponente enthält unter anderem ein View „MailBody“. In der Implementierungsklasse soll die Methode „SET_MODELS“ redefiniert werden, somit kann das von SAP bereitgestellte Konstrukt zum Besorgen des aktuellen HTML-Parts der Emailstruktur genutzt werden. Im Standard wird die ERMS-Klasse zum Lesen des Kundenkontextes genutzt, die in der Methode „ON_RESPONSE_SELECTEDX“ den aktuell geladenen HTML-Code in einem der Exportingparameter zurückliefert. Hier soll das Merkmal „M.VORSTAND“ durch einen in SAP Dokumentenpflege zuvor definierten Text ersetzt werden. Gelesen soll dieser am Besten mit einem Textbaustein und unter Berücksichtigung der HTML-Bibliothek in einem String zusammen gesetzt werden.
  • Nachträglich soll die Methode „GET_MAIN_BODY_PART“ der ERMS-Klasse aufgerufen werden. Diese erwartet  als Import eine Variable des gleichen Typs wie die Methode zum Lesen des HTML-Parts im Schritt zuvor. Durch diese letzte Aktion wird der aktuelle Email-Kontext mit neuen Werten aktualisiert.
  • Um die ganze Änderung letztendlich auch auf der übergeordneten Sicht dynamisch zu aktualisieren, soll wiederum der SAP Standardkonstrukt genutzt werden. Unten in der redefinierten Methode werden sequentiell die Viewfelder mit der Viewmethode „SET_ATTRIBUTE“ sichtbar gemacht. Hier soll das Attribut „html_response“ mit dem Rückgabewert der oben aufgerufenen Methode „GET_MAIN_BODY_PART“ befüllt werden. Den Rest erledigt die Standard Viewkomponente.

SSC    steht für Shared Service Center

ERMS steht für Email Response Management System