# 410 · accountsfrombc

> Technisches Mapping des Jobs `accountsfrombc` (`BCAccounts`).

---

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

---

| Eigenschaft | Wert |
|---|---|
| Order | 410 |
| Job | `accountsfrombc` |
| Mapping | `BCAccounts` |
| Richtung | BC → CE |
| Quellverbindung | BC_Test |
| Zielverbindung | CRM_Test |
| Quelltabelle (API) | `acdcontactscomp` aus `singhammerITConsulting/dyce/v2.0` |
| Zieltabelle | `account` |
| Zeitplan | 0 */2 * * * * |
| Filter | `{{lastModifiedDateTime gt %watermark%}}` |
| Watermark | `lastModifiedDateTime` (Typ `datetime`) |
| Response-Job | — |
| Fachliche Doku | [Firma aus BC übernehmen](../firma/bcaccounts/) |

## Feldzuordnung

| Quellfeld | Zielfeld | Operation | Details |
|---|---|---|---|
| `address2` | `address1_line2` | — | — |
| `address` | `address1_line1` | — | — |
| `city` | `address1_city` | — | — |
| `companyNumber` | `parentaccountid` | Lookup | → `account` über `wysa_bccodekey` (`companyNumber` → `wysa_bccontactnumber`); NULL wenn = Feld `number` |
| `countryRegionCode` | `wysa_address1_countryid` | Lookup | → `wysa_country` über `wysa_bccodekey` (`countryRegionCode` → `wysa_bccode`) |
| `customerDiscountGroup` | `wysa_bccustomerdiscountgroupid` | Lookup | → `wysa_bccustomerdiscountgroup` über `wysa_bccodekey` (`customerDiscountGroup` → `wysa_bccode`) |
| `customerNumber` | `wysa_bccustomernumber` | — | — |
| — | `wysa_sync2bc` | DefaultValue | = `799840000` |
| `displayName` | `wysa_bcname1` | — | — |
| `eMail` | `emailaddress1` | — | — |
| `homePage` | `websiteurl` | — | — |
| `id` | `wysa_bcsystemid` | — | — |
| `name2` | `wysa_bcname2` | — | — |
| `number` | `wysa_bccontactnumber` | — · **Schlüssel** | — |
| `phoneNumber` | `telephone1` | — | — |
| `postCode` | `address1_postalcode` | — | — |
| `salespersonCode` | `wysa_bcsalespersonid` | Lookup | → `wysa_bcsalesperson` über `wysa_bccodekey` (`salespersonCode` → `wysa_code`) |
| `vendorNumber` | `wysa_bcvendornumber` | — | — |

## Alternate Key

```json
{
  "keyType": "CustomKey",
  "keyName": "wysa_bccodekey",
  "keyValues": [
    {
      "attributeName": "number",
      "keyName": "wysa_bccontactnumber",
      "rank": 1
    }
  ],
  "ignoreEmptySourceKey": false,
  "keyRank": 0
}
```

## Weitere technische Details

### Transformationen im Detail

**Voraussetzungen der Lookups** — Land (`countryRegionCode`), Debitorrabattgruppe
(`customerDiscountGroup`) und Verkäufer (`salespersonCode`) setzen voraus, dass die
jeweilige Stammdatentabelle bereits gefüllt ist:

| Lookup | Zieltabelle | Voraussetzung |
|---|---|---|
| Land | `wysa_country` | Job `countriesfrombc` (110) |
| Debitorrabattgruppe | `wysa_bccustomerdiscountgroup` | Job `customerdiscountgroupsfrombc` (125) |
| Verkäufer | `wysa_bcsalesperson` | Job `salespersonsfrombc` (130) |

**Übergeordnete Firma** (`companyNumber` → `parentaccountid`) — Lookup auf `account`
selbst, mit `SetNullIfEqualsValueOfField`. Der Parameter setzt die Referenz auf leer,
wenn `companyNumber` und `number` identisch sind — genau der Fall, in dem sich ein
BC-Firmenkontakt selbst als Unternehmen einträgt.

```json
{
  "Operations": [{
    "Name": "Lookup",
    "Parameters": {
      "SetNullIfEqualsValueOfField": "number",
      "TargetTable": "account",
      "TargetKey": {
        "KeyType": "CustomKey",
        "KeyName": "wysa_bccodekey",
        "KeyValues": [
          { "keyName": "wysa_bccontactnumber", "attributeName": "companyNumber", "rank": 1 }
        ]
      }
    }
  }]
}
```

**Freigabe** (`wysa_sync2bc`) — ohne Quellfeld, fester Wert `799840000` („Ja"):

```json
{
  "Operations": [{
    "Name": "DefaultValue",
    "Parameters": { "DefaultValue": "799840000" }
  }]
}
```
