# Verkaufschance

> Wie Verkaufschancen und ihre Positionen nach Business Central übertragen werden — Gesamtbild und die Schritte im Detail.

---

LLMS index: [llms.txt](/llms.txt)

---

Die Verkaufschance ist die **dritte Stufe der Freigabekette**: Firma → Kontakt →
Verkaufschance. Und sie ist der erste Datenbereich, der grundlegend anders funktioniert
als [Firma](../firma/) und [Kontakt](../kontakt/):

> Die Verkaufschance läuft **nur von Customer Engagement nach Business Central**.

Es gibt keine Übernahme aus BC und keine Löschverarbeitung. Verkaufschancen entstehen im
Vertrieb, nicht im ERP — Business Central braucht sie nur, um daraus Angebote zu
erzeugen.

Dazu kommt eine **zweite, eigene Kette für die Positionen**
(Verkaufschancenprodukte), die anders getaktet ist und ein anderes Freigabefeld nutzt.

| Schritt | Was passiert | Wann |
|---|---|---|
| [Neu nach BC](ceopportunities/) | freigegebene Verkaufschancen werden in BC angelegt | alle 2 Minuten |
| [Rückmeldung aus BC](bcopportunitiesresponse/) | BC meldet Verkaufschancennummer und System-ID zurück | direkt nach der Anlage |
| [Kalkulationselemente aus BC](bcopportunityelements/) | die in Positionen verwendbaren Elemente kommen nach CE | alle 2 Minuten |
| [Positionen neu nach BC](ceopportunityproducts/) | freigegebene Positionen werden in BC angelegt | alle 3 Minuten |
| [Rückmeldung Positionen](bcopportunityproductsresponse/) | BC meldet die System-ID der Position zurück | direkt nach der Anlage |
| [Positionsänderungen nach BC](ceopportunityproductsupdates/) | Änderungen an Positionen gehen nach BC | alle 3 Minuten |

## Der Ablauf

```mermaid
flowchart TB
  subgraph VC["Verkaufschance"]
    A["Verkaufschance in CE angelegt"] --> B{"Kontakt bereits<br/>in BC?"}
    B -->|nein| BLOCK["Freigabe wird abgelehnt"]
    B -->|ja| C{"<b>Sync zu BC</b><br/>freigegeben?"}
    C -->|nein| WAIT["bleibt in CE"]
    C -->|ja| D["<b>Neu nach BC</b><br/>Verkaufschance wird angelegt"]
    D --> E["<b>Rückmeldung aus BC</b><br/>BC Verkaufschancennummer<br/>und BC System-ID"]
  end

  subgraph POS["Positionen"]
    E --> F{"<b>Sync zu BC</b> an der<br/>Position freigegeben?"}
    F -->|ja| G["<b>Positionen neu nach BC</b>"]
    G --> H["<b>Rückmeldung Positionen</b><br/>BC System-ID der Position"]
    H --> I["<b>Positionsänderungen nach BC</b><br/>Menge und Beträge"]
  end

  ELEM["<b>Kalkulationselemente aus BC</b><br/>füllen die Produktliste"] -.->|"Voraussetzung"| G
```

## Erst Firma, dann Kontakt, dann Verkaufschance

Business Central kann eine Verkaufschance nur anlegen, wenn ihr Kontakt dort existiert —
und den Kontakt nur, wenn dessen Firma existiert. Die Freigaberegel setzt das in beiden
Stufen durch:

| Freizugeben | Voraussetzung |
|---|---|
| Kontakt | **BC System-ID** der Firma ist gefüllt |
| Verkaufschance | **BC Kontaktnummer** des Kontakts ist gefüllt |

Eine Verkaufschance ohne Kontakt kann gar nicht übertragen werden — die Freigabe wird
abgelehnt. Ausführlich unter
[Freigabe nach Business Central](../../business-logik/sync-nach-bc/).

## Was nach der Anlage passiert — und was nicht

> **Für die Verkaufschance selbst gibt es keinen Änderungspfad**
>
> Anders als Firma und Kontakt hat die Verkaufschance **keinen laufenden Abgleich**.
> 
> Praktische Folge: Was nach der ersten Übertragung in CE an Thema, Firma, Kontakt oder
> Verkäufer geändert wird, kommt **nicht** in Business Central an. Der dortige Stand
> bleibt auf dem Zeitpunkt der Anlage stehen.
> 
> Die **Positionen** dagegen werden laufend abgeglichen — dafür ist
> [Positionsänderungen nach BC](ceopportunityproductsupdates/) aktiv.



## Zwei Freigabefelder mit unterschiedlichem Namen

Verkaufschance und Position tragen jeweils ein eigenes Feld **Sync zu BC** — technisch
sind es aber zwei verschieden benannte Felder:

| Datensatz | Anzeigename | Logical Name |
|---|---|---|
| Verkaufschance | Sync zu BC | `wysa_sync2bc` |
| Verkaufschancenprodukt | Sync zu BC | `wysa_SynctoBC` |

Beide arbeiten mit demselben Wert für „Ja". Beim Erstellen von Auswertungen oder
Automatisierungen ist die abweichende Schreibweise zu beachten — siehe
[Datenmodell](../../datenmodell/verkaufschance-angebot/).

## Positionen verweisen nicht auf Artikel, sondern auf Kalkulationselemente

Eine Verkaufschancenposition zeigt in CE auf einen Datensatz der Produkttabelle. Gefüllt
wird diese Tabelle über die [Kalkulationselemente aus BC](bcopportunityelements/) (190).

Für Positionen sind nur diese Elemente verwendbar — Business Central erwartet in der
Position einen Elementcode, keine Artikelnummer. Am Produkt kennzeichnet das Feld
**Verkaufschancen-Element** (`wysa_OppElement`), welche Datensätze dafür zulässig sind.

## Welche Felder gehen nach BC?

### Verkaufschance

| Feld in Customer Engagement | Feld in Business Central |
|---|---|
| Thema | Beschreibung |
| Beschreibung | Erweiterte Beschreibung |
| Voraussichtliches Abschlussdatum | Erwartetes Abschlussdatum |
| Voraussichtlicher Umsatz | Erwarteter Umsatz |
| Firma | Unternehmensnummer des Kontakts |
| Kontakt | Kontaktnummer |
| Verkäufer (BC) | Verkäufercode |
| *(Link auf den CE-Datensatz)* | Dynamics-Sales-Link |

Acht Felder — deutlich weniger als bei Firma und Kontakt. Business Central braucht von
einer Verkaufschance nur das Nötigste, um daraus ein Angebot zu erzeugen.

> **Business Central erhält einen Link zurück ins CRM**
>
> Eine Besonderheit dieses Bereichs: Die Übertragung erzeugt einen **klickbaren Link auf
> den Verkaufschancen-Datensatz in Customer Engagement** und legt ihn in BC ab. Wer im ERP
> an einer Verkaufschance arbeitet, kommt damit direkt in den zugehörigen CRM-Datensatz.
> Bei Firma und Kontakt gibt es das nicht.



### Position

| Feld in Customer Engagement | Feld in Business Central | Neu nach BC | Änderungen nach BC |
|---|---|:--:|:--:|
| Verkaufschance | Verkaufschancennummer | ✓ | ✓ |
| Produkt | Elementcode | ✓ | ✓ |
| Menge | Menge | ✓ | ✓ |
| BC Betrag | Betrag (LW) | ✓ | ✓ |
| BC Betrag inkl. MwSt. | Betrag inkl. MwSt. (LW) | ✓ | ✓ |
| Beschreibung | Beschreibung | ✓ | ✓ |
| Marge | Deckungsbeitrag (LW) | ✓ | ✓ |

Beide Schritte übertragen denselben Feldsatz; auch Beschreibung und Marge gehen bei
späteren Änderungen mit nach BC.

## Unterschiede zu Firma und Kontakt

| | Firma / Kontakt | Verkaufschance | Position |
|---|---|---|---|
| Richtung | bidirektional | **nur CE → BC** | **nur CE → BC** |
| Übernahme aus BC | ✓ | – | – |
| Änderungspfad | ✓ | **–** | ✓ |
| Löschverarbeitung | ✓ deaktivieren | – | – |
| Takt | alle 2 Minuten | alle 2 Minuten | **alle 3 Minuten** |
| Freigabefeld | `wysa_sync2bc` | `wysa_sync2bc` | **`wysa_SynctoBC`** |

## Technische Zuordnung

<details>
<summary>Jobs und Mappings dieser Ketten</summary>

| Order | Job | Mapping | Seite |
|---|---|---|---|
| 190 | `opportunityelementsfrombc` | `BCOpportunityElements` | [Kalkulationselemente aus BC](bcopportunityelements/) |
| 260 | `opportunitiesnewfromce` | `CEOpportunities` | [Neu nach BC](ceopportunities/) |
| 261 | `opportunitiesresponsefrombc` | `BCOpportunitiesResponse` | [Rückmeldung aus BC](bcopportunitiesresponse/) |
| 710 | `opportunityproductsnewfromce` | `CEOpportunityProducts` | [Positionen neu nach BC](ceopportunityproducts/) |
| 750 | `opportunityproductsupdatesfromce` | `CEOpportunityProductsUpdates` | [Positionsänderungen nach BC](ceopportunityproductsupdates/) |
| 760 | `opportunityproductsresponsefrombc` | `BCOpportunityProductsResponse` | [Rückmeldung Positionen](bcopportunityproductsresponse/) |

Beteiligte Tabellen:

| Dataverse | Business Central API Page |
|---|---|
| `opportunity` | `.../acdopportunities` |
| `opportunityproduct` | `.../acdopportunitycalculationelements` |
| `product` | `.../acdopportunityelements` |

Alle API Pages unter `singhammerITConsulting/dyce/v2.0/`.

</details>

<details>
<summary>Schlüssel je Schritt</summary>

| Schritt | Schlüssel im Ziel | Typ |
|---|---|---|
| Neu nach BC | BC `dataverseId` ← CE `opportunityid` | `Filter` |
| Rückmeldung aus BC | CE `opportunityid` aus der Antwortnachricht | `PrimaryKey` |
| Kalkulationselemente aus BC | `wysa_bccode` ← BC `code` | `CustomKey` |
| Positionen neu nach BC | BC `systemId` ← CE `wysa_bcsystemid` | `Id` |
| Rückmeldung Positionen | CE `opportunityproductid` aus der Antwortnachricht | `PrimaryKey` |
| Positionsänderungen nach BC | BC `id` ← CE `wysa_bcsystemid` | `Id` |

Bemerkenswert: Die Verkaufschance folgt dem bekannten Muster aus
[Firma](../firma/) und [Kontakt](../kontakt/) — Anlage über `dataverseId`, danach über
die BC System-ID. Die **Positionen tun das nicht**: Sie verwenden schon bei der Anlage
`KeyType: Id` auf ein Feld, das der Filter des Jobs als leer voraussetzt. Es gibt bei
ihnen also keine Wiedererkennung über eine mitgeschickte CE-GUID. Was das für
wiederholte Läufe bedeutet, steht auf
[Positionen neu nach BC](ceopportunityproducts/).

</details>

<details>
<summary>Auflösung von Referenzen</summary>

| CE-Feld | Nachschlagetabelle | Nachschlagefeld |
|---|---|---|
| Firma (`parentaccountid`) | `account` | `wysa_bccontactnumber` |
| Kontakt (`parentcontactid`) | `contact` | `wysa_bccontactnumber` |
| Verkäufer BC (`wysa_bcsalespersonid`) | `wysa_bcsalesperson` | `wysa_code` |
| Verkaufschance (`opportunityid`) | `opportunity` | `wysa_bcopportunitynumber` |
| Produkt (`productid`) | `product` | `wysa_bccode` |

Alle mit `LookupType: Attribute` und `UseCache: true` — außer der Verkaufschance: Sie
wird ohne Cache aufgelöst (`UseCache: false`), damit eine gerade erst zurückgemeldete
BC Verkaufschancennummer sofort gefunden wird. Die letzten beiden erklären, warum
die Reihenfolge zählt: Eine Position kann erst übertragen werden, wenn die
Verkaufschance ihre BC Verkaufschancennummer hat und das Produkt seinen BC Code — deshalb
laufen die Positions-Jobs (710 – 760) ganz am Ende und die Kalkulationselemente (190)
ganz am Anfang.

</details>

---

Section pages:

- [Neue Verkaufschancen nach Business Central übertragen](/docs/mapping/verkaufschance/ceopportunities/): In Customer Engagement angelegte und freigegebene Verkaufschancen werden im ERP angelegt.
- [Rückmeldung aus Business Central](/docs/mapping/verkaufschance/bcopportunitiesresponse/): Nach der Anlage im ERP kommen Verkaufschancennummer und BC System-ID zurück nach Customer Engagement.
- [Kalkulationselemente aus Business Central übernehmen](/docs/mapping/verkaufschance/bcopportunityelements/): Die Bausteine, aus denen eine Verkaufschance kalkuliert wird, kommen als Produkte nach Customer Engagement.
- [Neue Positionen nach Business Central übertragen](/docs/mapping/verkaufschance/ceopportunityproducts/): Freigegebene Verkaufschancenpositionen werden als Kalkulationszeilen im ERP angelegt.
- [Rückmeldung der Positionen aus Business Central](/docs/mapping/verkaufschance/bcopportunityproductsresponse/): Nach der Anlage der Kalkulationszeile meldet BC deren System-ID zurück.
- [Positionsänderungen nach Business Central übertragen](/docs/mapping/verkaufschance/ceopportunityproductsupdates/): Änderungen an bereits im ERP bekannten Verkaufschancenpositionen gehen nach Business Central.
