ExistingListDataProvider
Mit dem ExistingListDataProvider können Benutzer auf ihre eigenen Excel-Dateien zugreifen, ohne dass diese zentral erfasst und konfiguriert werden müssen. Die Auswahl der Excel-Datei erfolgt direkt über eine Dateiauswahl auf dem jeweiligen Gerät. Aus der gewählten Arbeitsmappe wird jeweils ein einzelnes Tabellenblatt eingelesen.
Für “verwaltete” CSV- oder Excel-Dateien, welche z.B. zentral hinterlegt sind, eignet sich der CsvDataProvider oder ExcelDataProvider besser.
Konfiguration
Der ExistingListDataProvider kann in der Dokumentfunktion Forms optional mit einem Namen versehen werden (z.B. “Excel-Export aus CRM”), um die Erkennung für Benutzer zu erleichtern. Eine weitere Konfiguration ist nicht zwingend erforderlich.
<ExistingListDataProvider DisplayName="Excel Export aus CRM"
DefaultSheetName="Daten" EnableCustomSheetSelection="true" AutoAddAllEntries="true"
SkipMappingIfComplete="true" />
Neben dem DisplayName können folgende optionale Attribute definiert werden. Diese steuern, wie die Excel-Datei beim Import verarbeitet wird und welche Auswahlmöglichkeiten dem Benutzer angezeigt werden:
- DefaultSheetName: Name des vorausgewählten Tabellenblatts der Excel-Datei. Ist kein Wert definiert oder wird das Tabellenblatt nicht gefunden, wird automatisch das erste Tabellenblatt verwendet. Bei CSV-Dateien wird dieses Attribut ignoriert.
- EnableCustomSheetSelection (
true/false): Zeigt dem Benutzer ein Dropdown zur manuellen Auswahl des Tabellenblatts an. - AutoAddAllEntries (
true/false): Fügt automatisch alle Listeneinträge hinzu, sodass keine manuelle Auswahl durch den Benutzer erforderlich ist. - SkipMappingIfComplete (
true/false): Überspringt den Mapping-Dialog, wenn alle Felder automatisch zugeordnet werden können, d.h. wenn die Spalten der Excel-Datei mit dem konfigurierten Mapping bzw. Schema übereinstimmen.
Zusammenspiel mit Mapping und Schema
Wie bei den übrigen Providern werden die eingelesenen Spalten über ein Mapping auf das Schema des Object bzw. der ObjectCollection abgebildet. Können anhand der Spaltenüberschriften alle Schema-Felder automatisch zugeordnet werden, lässt sich der Mapping-Dialog mit SkipMappingIfComplete="true" überspringen; andernfalls nimmt der Benutzer die Zuordnung im Mapping-Dialog vor.