# 220 · accountsnewfromce

> Technisches Mapping des Jobs `accountsnewfromce` (`CEAccounts`).

---

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

---

| Eigenschaft | Wert |
|---|---|
| Order | 220 |
| Job | `accountsnewfromce` |
| Mapping | `CEAccounts` |
| Richtung | CE → BC |
| Quellverbindung | CRM_Test |
| Zielverbindung | BC_Test |
| Quelltabelle (API) | `account` aus `BC_Test-seitig, kein API-Pfad` |
| Zieltabelle | `acdcontactscomp` |
| Zeitplan | 0 */2 * * * * |
| Filter | `JSON-Filter: IsNull(wysa_bcsystemid) UND OptionSetValue(wysa_sync2bc=799840000)` |
| Watermark | — |
| Response-Job | `accountsresponsefrombc` |
| Fachliche Doku | [Neue Firma nach BC](../firma/ceaccounts/) |

## Feldzuordnung

| Quellfeld | Zielfeld | Operation | Details |
|---|---|---|---|
| `accountid` | `dataverseId` | — · **Schlüssel** | — |
| `address1_city` | `city` | — | — |
| `address1_line1` | `address` | — | — |
| `address1_line2` | `address2` | — | — |
| `address1_postalcode` | `postCode` | — | — |
| — | `contactType` | DefaultValue | = `Company` |
| — | `salutationCode` | DefaultValue | = `MANDANT` |
| `emailaddress1` | `eMail` | — | — |
| `telephone1` | `phoneNumber` | — | — |
| `websiteurl` | `homePage` | — | — |
| `_wysa_address1_countryid` | `countryRegionCode` | LookupValue | liest `wysa_bccode` aus `wysa_country` über `wysa_address1_countryid` |
| `wysa_bcname1` | `displayName` | — | — |
| `wysa_bcname2` | `name2` | — | — |
| `_wysa_bcsalespersonid` | `salespersonCode` | LookupValue | liest `wysa_code` aus `wysa_bcsalesperson` über `wysa_bcsalespersonid` |

## Alternate Key

```json
{
  "keyType": "Filter",
  "keyValues": [
    {
      "attributeName": "id",
      "keyName": "dataverseId",
      "rank": 1
    }
  ],
  "keyAttributeFromExisting": "id",
  "ignoreEmptySourceKey": false,
  "keyRank": 0
}
```

## Weitere technische Details

### Filter im Detail

```json
{
  "Operations": [
    { "Name": "IsNull", "Parameters": { "SourceField": "wysa_bcsystemid" } },
    { "Name": "OptionSetValue",
      "Parameters": { "SourceField": "wysa_sync2bc", "Value": 799840000 } }
  ]
}
```

### Transformationen im Detail

**Land** (`_wysa_address1_countryid` → `countryRegionCode`) — Umkehrung des Lookups aus
`accountsfrombc`: Die Dataverse-Referenz wird über das Feld `wysa_bccode` der Werteliste
`wysa_country` zum BC-Code aufgelöst. `UseCache: true` sorgt dafür, dass die Werteliste
je Lauf nur einmal gelesen wird.

```json
{
  "Operations": [{
    "Name": "LookupValue",
    "Parameters": {
      "LookupType": "Attribute",
      "SourceField": "wysa_address1_countryid",
      "LookupTable": "wysa_country",
      "LookupField": "wysa_bccode",
      "UseCache": true
    }
  }]
}
```

**Verkäufer** (`_wysa_bcsalespersonid` → `salespersonCode`) — identisches Muster,
Nachschlagetabelle `wysa_bcsalesperson`, Nachschlagefeld `wysa_code`.

**Kontaktart und Anrede** — ohne Quellfeld, feste Werte `Company` bzw. `MANDANT` per
`DefaultValue`. Da `CEAccountUpdates` diese Felder nicht enthält, werden sie
ausschließlich bei der Neuanlage gesetzt.

### Beobachtungen

Die Alternate Key auf `dataverseId` macht den Job wiederholbar: Läuft er zweimal, bevor
der Response-Job (`accountsresponsefrombc`) die `wysa_bcsystemid` zurückgeschrieben hat,
entsteht in BC keine Dublette.
