Abonnements aus Business Central übernehmen
Die abonnierten Leistungen kommen aus der Abonnementverwaltung des ERP nach Customer Engagement.
Ein Abonnement bildet eine wiederkehrend abgerechnete Leistung ab: eine Lizenz, einen Cloud-Service, einen Wartungsvertrag. Diese Daten entstehen in der Abonnementverwaltung von Business Central — Customer Engagement führt sie mit, damit der Vertrieb Bestand, Laufzeiten und Kündigungsfristen im Blick hat.
Abonnements laufen ausschließlich von Business Central nach Customer Engagement.
Es gibt keinen Rückweg und keine Löschverarbeitung. Der Bereich besteht aus zwei Schritten, die aufeinander aufbauen:
| Schritt | Was passiert | Wann |
|---|---|---|
| Abonnements aus BC | die abonnierte Leistung selbst | alle 2 Minuten |
| Abonnementzeilen aus BC | Laufzeiten, Preise, Kündigungsfristen | alle 2 Minuten |
flowchart TB BC["Abonnementverwaltung<br/>in Business Central"] BC -->|"550 · <b>Abonnements aus BC</b>"| A["<b>Abonnement</b><br/>Was ist abonniert?<br/>Produkt, Menge, Seriennummer,<br/>Bereitstellungszeitraum"] BC -->|"560 · <b>Abonnementzeilen aus BC</b>"| Z["<b>Abonnementzeile</b><br/>Zu welchen Bedingungen?<br/>Laufzeit, Preis, Rabatt,<br/>Kündigungsfrist"] Z -->|"über die<br/>Abonnementnummer"| A
Ein Abonnement kann mehrere Zeilen mit unterschiedlichen Laufzeiten und Abrechnungsrhythmen haben. Die Zeile findet ihr Abonnement über die Abonnementnummer — deshalb muss Schritt 550 vor Schritt 560 laufen, was die Ordnungsnummern sicherstellen.
Die fachlich interessanteste Eigenschaft dieses Bereichs: Das Abonnement trennt zwei Rollen, die in Konzernstrukturen auseinanderfallen.
| Rolle | Bedeutung | Kommt aus BC von |
|---|---|---|
| Rechnungsempfänger | wer bezahlt | Rechnungsadresse des Belegs |
| Leistungsnehmer | wer die Leistung nutzt | Lieferadresse des Belegs |
Beide werden je als Firma und Kontakt übertragen — vier Verknüpfungen pro Abonnement. Business Central liefert dafür vier Kontaktnummern, die in CE aufgelöst werden.
Alle vier Zuordnungen laufen über die BC Kontaktnummer — auch die auf Firmen. Das unterscheidet diesen Bereich vom Angebot, das die Firma über die BC Debitorennummer sucht.
Praktisch ist das die günstigere Variante: Die BC Kontaktnummer ist an jeder nach BC übertragenen Firma vorhanden, die Debitorennummer erst, wenn die Firma im ERP zum Debitor gemacht wurde.
Nicht alle Felder der beiden Tabellen kommen aus Business Central. Diese werden CE-seitig gepflegt oder durch Automatik gefüllt:
| Feld | Tabelle | Bemerkung |
|---|---|---|
| Verkaufschance | Abonnement | Ursprung des Abonnements — Zuordnung in CE |
| Mitbewerber | Abonnement | aktueller Anbieter, falls die Leistung abgelöst werden soll |
| Leaderstellung | Abonnement | Stichtag der Leadgenerierung |
| Anzahl Zeilen | Abonnement | Anzahl der zugehörigen Abonnementzeilen |
| Produkt (Verweis) | Abonnement | siehe unten |
| Abzurechnendes Produkt | Abonnementzeile | — |
| Währung | Abonnementzeile | — |
Das passt zum Zweck des Bereichs: Business Central liefert den Vertragsbestand, Customer Engagement ergänzt die Vertriebssicht — aus einem auslaufenden Abonnement kann ein Lead entstehen, und dazu gehören Verkaufschance und Mitbewerber.
Das Abonnement führt Produktnummer und Produktbeschreibung als Text. Der Verweis auf einen Produktdatensatz (Produkt) wird nicht befüllt, weil Artikel nicht aus Business Central übernommen werden — siehe Stammdaten.
Für Abonnements und Abonnementzeilen gibt es keinen Löschjob. Wird ein Abonnement in Business Central gelöscht, bleibt es in Customer Engagement mit dem letzten übertragenen Stand erhalten.
Das Feld Abonnementart wird bei jedem Lauf auf einen festen Vorgabewert gesetzt — Business Central liefert dazu nichts. Eine Unterscheidung nach Ausprägung findet über diesen Abgleich also nicht statt; eine in CE geänderte Abonnementart wird beim nächsten Lauf überschrieben.
Alle übrigen Abgleiche lesen API Pages der Singhammer-Erweiterung unter
singhammerITConsulting/dyce/v2.0/. Die beiden Abonnement-Jobs lesen stattdessen
serviceObjects und serviceCommitments — die Schnittstelle der
Abonnementverwaltung von Business Central selbst.
Praktische Folge: Dieser Bereich hängt an einer anderen Erweiterung als der Rest der Integration. Wird sie in BC nicht bereitgestellt, laufen die beiden Jobs ins Leere, während alles andere weiterarbeitet.
Von den 27 Feldern der Abonnementzeile ist eines für den Vertrieb entscheidend: Kündigung möglich bis. Es nennt den konkreten Stichtag, bis zu dem der Kunde kündigen kann — und damit den Zeitpunkt, an dem eine Verlängerung spätestens verhandelt sein muss. Alle übrigen Laufzeit- und Fristenfelder sind die Herleitung dazu.
| Order | Job | Mapping | Zieltabelle | Felder | Seite |
|---|---|---|---|---|---|
| 550 | serviceobjectsfrombc | BCServiceObjects | wysa_bcserviceobject | 17 | Abonnements aus BC |
| 560 | servicecommitmentsfrombc | BCServiceCommitments | wysa_bcserviceobjectcommitment | 27 | Abonnementzeilen aus BC |
Mit 44 Feldzuordnungen ist das der umfangreichste Datenbereich der Integration.
Quellen: serviceObjects und serviceCommitments — nicht unter
singhammerITConsulting/dyce/v2.0/ wie alle übrigen Abgleiche.
| Schritt | Schlüssel im Ziel | Alternate Key |
|---|---|---|
| Abonnements aus BC | wysa_number ← BC no | wysa_numberkey |
| Abonnementzeilen aus BC | wysa_bcsystemid ← BC systemId | wysa_bcsystemidkey |
Auffällig ist die Uneinheitlichkeit: Das Abonnement wird über seine fachliche Nummer adressiert — wie das Angebot —, die Zeile über die BC System-ID, wie die Angebotsposition. Beide Konventionen kommen also innerhalb desselben Bereichs vor.
| Feld | Zieltabelle | Nachschlagefeld | Alternate Key |
|---|---|---|---|
| Rechnungsempfänger Kontakt | contact | wysa_bccontactnumber | wysa_bccodekey |
| Rechnungsempfänger Firma | account | wysa_bccontactnumber | wysa_bccodekey |
| Leistungsnehmer Kontakt | contact | wysa_bccontactnumber | wysa_bccodekey |
| Leistungsnehmer Firma | account | wysa_bccontactnumber | wysa_bccodekey |
| Abonnement (an der Zeile) | wysa_bcserviceobject | wysa_number | wysa_numberkey |
Damit setzen die Abonnements voraus, dass Firmen und Kontakte bereits abgeglichen sind. Die Ordnungsnummern 550 und 560 liegen hinter den Kontakt-Jobs (430 / 440), sodass das innerhalb desselben Durchlaufs zusammenfindet.
Das Datenmodell schreibt Logical Names in einer
lesefreundlichen Schreibweise (z. B. wysa_NextBilling für wysa_nextbillingdate). Die
folgende Übersicht ordnet die Felder dieses Mappings den Bezeichnungen im Datenmodell zu —
getrennt nach Abonnementzeile und dem übergeordneten Abonnement, da beide Entitäten hier
zusammenkommen.
Felder der Abonnementzeile (wysa_bcServiceObjectCommitment, dieses Mapping):
| Feld | Im Mapping | Im Datenmodell |
|---|---|---|
| Zeilennummer | wysa_contractlinenumber | wysa_LineNumber |
| Verlängerungslaufzeit | wysa_extensionterm | wysa_RenewalTerm |
| Leistungsbeginn / -ende | wysa_servicestartdate / wysa_serviceenddate | wysa_ServiceStart / wysa_ServiceEnd |
| Nächste Berechnung | wysa_nextbillingdate | wysa_NextBilling |
| Abrechnungszeitraum | wysa_billingbaseperiod | wysa_BillingPeriod |
| Berechnungsbasis | wysa_calculationbaseamount | wysa_CalculationBase |
Felder des übergeordneten Abonnements (wysa_bcServiceObject, aus
Abonnements aus BC übernehmen):
| Feld | Im Mapping | Im Datenmodell |
|---|---|---|
| Einheit | wysa_uom | wysa_Uom |
| Bereitstellung von | wysa_provisionstartdate | wysa_ProvisioningStart |
| Bereitstellung bis | wysa_provisionenddate | wysa_ProvisioningEnd |
| Rechnungsempfänger Firma | wysa_billtocustomerid | wysa_BillToAccountId |
| Leistungsnehmer Firma | wysa_endusercustomerid | wysa_EndUserAccountId |
Einheit ist ein reines Textfeld, kein Verweis auf einen Einheiten-Datensatz.
Zusätzlich schreibt das Mapping ein Feld wysa_entrynumber an der Abonnementzeile, das
im Datenmodell nicht aufgeführt ist.
Die abonnierten Leistungen kommen aus der Abonnementverwaltung des ERP nach Customer Engagement.
Laufzeiten, Preise, Rabatte und Kündigungsfristen der Abonnements kommen nach Customer Engagement.