# 🔧 SFTP Import

{% hint style="success" %}
*Modul: ETRON onRetail V2 SFTP Import*
{% endhint %}

> *Konfiguration -> Weitere Stammdaten -> SFTP Import*

<figure><img src="https://2281246901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlM26Mg6nljOOOe95HyIq%2Fuploads%2F5y7WynDePfFeRnnUQhXk%2Fimage.png?alt=media&#x26;token=2fa34916-c59a-42c1-b4e2-7b8b508118b0" alt=""><figcaption></figcaption></figure>

Über den SFTP Import lassen sich Datensätze aus einer XLSX- oder CSV-Datei, die auf einem SFTP-Server liegt, importieren. Der SFTP Import kann regelmäßig automatisch durchgeführt werden ([Reiter: Import Einstellungen](#reiter-import-einstellungen)) oder manuell über den Button <img src="https://2281246901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlM26Mg6nljOOOe95HyIq%2Fuploads%2FEXs4NhzxGYK4QOCanqmN%2Fimage.png?alt=media&#x26;token=619ec3cb-7e05-41d0-96ff-f52cae4c6927" alt="IMPORT" data-size="line"> ausgeführt werden.&#x20;

### Name

Name des SFTP Imports, z.B. "SFTP Import für Produkte"

### Modell

Legt fest, welchem Modell die Datensätze entsprechen, z.B. "Produkt" oder "Kontakt"

### Import Stapelgröße

Die Anzahl an Datensätzen, die gleichzeitig importiert werden.

### Import Datei Typ

Der Typ der Importdatei am SFTP-Server, es kann XLSX oder CSV ausgewählt werden.

### Datei nach dem Import löschen

Ist die Einstellung aktiviert, wird die Import-Datei nach dem Import gelöscht.

## Reiter: SFTP Import Einstellungen

<div data-with-frame="true"><figure><img src="https://2281246901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlM26Mg6nljOOOe95HyIq%2Fuploads%2FlzCUpCQAWn0S7Xqjagpo%2Fimage.png?alt=media&#x26;token=eeef3469-543f-49ef-9a43-fd6418ff0777" alt="Reiter: SFTP Import Einstellungen"><figcaption></figcaption></figure></div>

Im Reiter "SFTP Import Einstellungen" werden die Verbindungsdaten für den SFTP Server sowie der Pfad der Importdatei eingegeben.&#x20;

## Reiter: Import Einstellungen

<div data-with-frame="true"><figure><img src="https://2281246901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlM26Mg6nljOOOe95HyIq%2Fuploads%2FGvOXwJ3x5jM0EQT2pmzZ%2Fimage.png?alt=media&#x26;token=97805f14-a4bf-46bb-98e1-0c5743b46f7e" alt="Reiter: Import Einstellungen"><figcaption></figcaption></figure></div>

Im Reiter "Import Einstellungen" kann der Importintervall festgelegt werden. Der Importintervall wird berücksichtigt, wenn die Einstellung "Import Job aktiv" aktiviert ist, da nur dann ein automatischer SFTP Import durchgeführt wird.&#x20;

### Intervall

Die Anzahl legt fest, wie oft mit der gesetzten Interalleinheit (Minuten / Stunden / Tage / Wochen / Monate) der SFTP Import durchgeführt wird.

### Intervall Einheit

Ist die Intervall Einheit, in dem ein SFTP-Import durchgeführt wird (Minuten / Stunden / Tage / Wochen / Monate). Zusätzlich muss im Feld "Intervall" eine Anzahl eingestellt werden.&#x20;

### Import Job aktiv

Ist die Einstellung aktiv, wird der Import automatisch mit dem gesetzten Intervall durchgeführt.

## Reiter: Code-Editor

<div data-with-frame="true"><figure><img src="https://2281246901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlM26Mg6nljOOOe95HyIq%2Fuploads%2FUUhmoIyOpDJ7Lid3UK2b%2Fimage.png?alt=media&#x26;token=ab525de3-ce21-4de5-a045-52d56430e77f" alt="Reiter: Code-Editor"><figcaption></figcaption></figure></div>

Im Reiter "Code Editor" kann Python-Code verwendet werden, um die Importdaten zu beeinflussen.\
z.B. können die Spaltenüberschriften/Feldbezeichnungen der Import-Datei (= Feldnamen des Datenmodells) verändert werden, siehe [Mapping der Spaltenüberschriften/Feldbezeichnungen für den SFTP-Import über Python-Code](#mapping-der-spaltenuberschriften-feldbezeichnungen-fur-den-sftp-import-uber-python-code)

## Wichtige Informationen zur Import-Datei über den SFTP-Import

In der Import-Datei müssen für die Spaltenüberschriften (Excel) bzw. Feldbezeichnungen (CSV) die technischen Feldnamen des Datenmodells verwendet werden, da der Import sonst nicht durchgeführt werden kann.&#x20;

Beispiel: \
Soll ein Produkt mit Name, Artikelnummer und Verkaufspreis importiert werden, muss in der Datei "name", "default\_code" und "list\_price" angegeben werden.&#x20;

Alternativ kann im [Reiter "Code-Editor"](#reiter-code-editor) Python-Code verwendet werden, um jeder Spaltenüberschrift/Feldbezeichnung einen technischen Feldnamen zuzuweisen.

Um die technischen Feldnamen zu erhalten, wird vom benötigten Datenmodell (z.B. Produkt) ein "importkompatibler Export" durchgeführt.

<details>

<summary>Technische Feldnamen über den importkompatiblen Export eines Datensatzes erhalten</summary>

Um die technischen Feldnamen zu erhalten, führt man für einen Datensatz einen Export mit allen Feldern aus, die über die Import-Datei importiert werden sollen.

<figure><img src="https://2281246901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlM26Mg6nljOOOe95HyIq%2Fuploads%2FGMUqcYiVtELg1GzAetyW%2Fimage.png?alt=media&#x26;token=a033afa3-a801-4b3b-99c8-c8b745358cc8" alt=""><figcaption></figcaption></figure>

Dafür wird der Datensatz in der Listenansicht ausgewählt, und anschließend über das Aktions-Menü der Eintrag "Exportieren" ausgewählt.

Im sich öffnenden Export-Fenster wird die Checkbox "Ich will Daten aktualisieren (Import-kompatibler Export)" aktiviert, und über das ![Plus](https://2281246901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlM26Mg6nljOOOe95HyIq%2Fuploads%2FEThHv6MV9oB3ENpGtwcX%2Fimage.png?alt=media\&token=6e6fd746-7219-416d-8274-86d0b66bb2d0)-Icon alle Felder hinzugefügt, die exportiert werden sollen.

<figure><img src="https://2281246901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlM26Mg6nljOOOe95HyIq%2Fuploads%2FrDv1IajFCUBaWAu1UXLN%2Fimage.png?alt=media&#x26;token=95eb34cd-2026-4d1d-8bdd-a7e446f8573b" alt=""><figcaption></figcaption></figure>

Anschließend wird der Export über den Button <img src="https://2281246901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlM26Mg6nljOOOe95HyIq%2Fuploads%2FZKQZXGjo4viIbfCVLkoR%2Fimage.png?alt=media&#x26;token=51bede8b-d25a-4974-be49-2d16a09dbce0" alt="Exportieren" data-size="line"> durchgeführt. \
Der Export-Datei können nun die technischen Bezeichnungen der Felder entnommen werden.

<figure><img src="https://2281246901-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlM26Mg6nljOOOe95HyIq%2Fuploads%2FWX0530jfImMtRbLe96CI%2Fimage.png?alt=media&#x26;token=c2c91fc5-fe68-4f7c-82fb-f24fd6255fd0" alt=""><figcaption></figcaption></figure>

</details>

Die so erhaltenen technischen Bezeichnungen&#x20;

* können nun in der Importdatei für die Spaltenüberschrift/Feldbezeichnungen verwendet werden
* für das Mapping über Python Code im Reiter "Code-Editor" verwendet werden.

<details>

<summary>Mapping der Spaltenüberschriften/Feldbezeichnungen für den SFTP-Import über Python-Code</summary>

Für das Mapping über Python Code im Reiter "Code Editor" wird in diesem Reiter folgender Code hinterlegt:&#x20;

```
def process(headers, rows):
    mapping = {
        "Artikelnummer": "default_code",
        "Name": "name",
        "Einkaufsmaßeinheit": "uom_po_id",
        "Maßeinheit": "uom_id",
        "Barcode": "barcode",
        "Kosten": "standard_price",
        "Verkaufspreis": "list_price",
        "Kundensteuer": "single_tax_id",
        "Lieferantensteuer": "single_supplier_tax_id",
        "Produktart": "detailed_type",
    }

    new_headers = []
    i = 0
    while i < len(headers):
        h = headers[i]
        if h in mapping:
            new_headers.append(mapping[h])
        else:
            new_headers.append(h)
        i += 1

    for r in rows:
        for old in mapping:
            new = mapping[old]
            if old in r:
                if (new not in r) or (r.get(new) in (None, "")):
                    r[new] = r.get(old)
                r.pop(old, None)

    return new_headers, rows
```

Der Code-Abschnitt "mapping"

```
mapping = {
        "Artikelnummer": "default_code",
        "Name": "name",
        "Einkaufsmaßeinheit": "uom_po_id",
        "Maßeinheit": "uom_id",
        "Barcode": "barcode",
        "Kosten": "standard_price",
        "Verkaufspreis": "list_price",
        "Kundensteuer": "single_tax_id",
        "Lieferantensteuer": "single_supplier_tax_id",
        "Produktart": "detailed_type",
    }
```

muss hierfür individuell angepasst bzw. erweitert werden, je nachdem, welche Felder und Bezeichnungen in der Importdatei verwendet werden.&#x20;

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://helpcenter.etron.info/verwaltungsoberflache/konfiguration/weitere-stammdaten/sftp-import.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
