Het Import/Export definities detailscherm: Algemeen tabblad: Import tabbladen
Op het Algemeen tabblad van het Import/Export definities detailscherm zie je de basisgegevens van een import/export definitie.
Een deel van deze gegevens staat op extra subtabbladen. Sommige subtabbladen zijn alleen zichtbaar bij importdefinities.
Hieronder lees je meer over deze subtabbladen.
Bij CSV-importdefinities vul je op verschillende plekken kolomposities in. Een kolompositie geeft aan waar een waarde in het CSV-bestand staat.
Je geeft een kolompositie op met:
- Een getal, waarbij de eerste kolompositie begint met
0, of, - een letter, zoals in Microsoft Excel, waarbij de eerste kolompositie begint met
A.
CSV Ontvangen subtabblad
Het CSV Ontvangen subtabblad hoort bij de block definitie of fase CSV Ontvangen van de importdefinitie.
In deze fase leest ReflexBlue de CSV-bestanden in die via de ReflexBlue Import/Export Service zijn aangeleverd. Daarna bereidt ReflexBlue de gegevens voor op de import.
Voeg voor elk CSV-bestand dat deel uitmaakt van de import een regel toe.
- Selecteer Nieuw om een regel toe te voegen.
- Selecteer Verwijder om een regel te verwijderen.
Voor elke regel vul je de volgende gegevens in.
| Naam | Omschrijving |
|---|---|
| Type naam | Eén of meer entiteitstypes die op dezelfde regel in het CSV-bestand voorkomen. |
| Heeft kopregel | Geeft aan of de eerste regel van het CSV-bestand een kopregel bevat. Een kopregel bevat meestal de namen van de kolommen. |
| Scheidingsteken | Het teken waarmee kolommen zijn gescheiden, meestal een komma (,) of puntkomma (;). Specificeer AUTO om ReflexBlue het teken automatisch te laten lezen. |
| Aanhalingsteken | Het teken waarmee waarden in het CSV-bestand zijn omgeven, meestal een dubbel aanhalingsteken ("). |
| Aanhalingsteken gebruik | Geeft aan wanneer waarden aanhalingstekens hebben. Worden alle waarden in het CSV-bestand omgeven door aanhalingstekens? Selecteer dan Alle. Alleen sommige waarden? Kies Waar nodig. Nooit? Selecteer Geen. |
| Bestandscodering | De codering waarmee ReflexBlue tekens in het CSV-bestand leest. Zonder de juiste codering kunnen er vreemde tekens verschijnen na importeren. In West-Europa wordt vaak de Windows-1252 codering gebruikt voor CSV-bestanden. De opties UTF-8 en ISO-8859-1 zijn ook beschikbaar. Met de optie Bewerk alle bestandscoderingen kan je dit aanpassen voor alle bestanden. |
De entiteiten die je bij Type naam kan selecteren, hangen af van het type importdefinitie. Bij een artikelimport zie je andere entiteiten dan bij een verkooporderimport. Alle mogelijke typen vind je in de lijst met beschikbare entiteiten.
Koppel voor elk entiteitstype de entiteitvelden aan de juiste kolommen in het CSV-bestand. Dit doe je op het Velden koppelen subtabblad.
Verwijder regels voor entiteiten die je niet importeert. Zo blijft de importdefinitie overzichtelijk.
Meerdere CSV-bestanden gebruiken
Staan de gegevens voor één import verspreid over meerdere CSV-bestanden? Voeg dan voor elk bestand een regel toe op het CSV Ontvangen subtabblad.
Bij het configureren van de importdefinitie in de ReflexBlue Import/Export Service geef je voor elke regel een bestandsmasker op.
Voorbeeld:
Bij het importeren van verkooporders kan je werken met twee CSV-bestanden:
- Een CSV-bestand met verkooporderkoppen.
- Een CSV-bestand met verkooporderregels.
De regels in deze twee bestanden koppel je aan elkaar op het Regels koppelen subtabblad.
Configureer de importdefinitie in de ReflexBlue Import/Export Service met bestandsmaskers, zodat ReflexBlue de opgehaalde CSV-bestanden aan elkaar kan relateren.
Zie voor meer informatie Het gebruik van Regular Expressions voor het importeren van CSV-bestanden.
Je kan ook meerdere entiteiten importeren met één CSV-bestand.
Voeg in dat geval één CSV-bestandsregel toe, en voer bij Type naam meerdere entiteiten achter elkaar in.
Bij een verkooporderimport kan je zo bijvoorbeeld de verkooporderkoppen en verkooporderregels in hetzelfde CSV-bestand opnemen.
Regels koppelen subtabblad
Het Regels koppelen subtabblad hoort bij de fase Regels koppelen van de importdefinitie.
In deze fase koppel je regels uit CSV-bestanden aan elkaar met ouder-kind-relaties. Zo weet ReflexBlue welke regels bij elkaar horen. De CSV-bestanden stel je in op het CSV Ontvangen subtabblad.
Relaties
Voeg voor elke ouder-kind-relatie een regel toe.
- Selecteer Nieuw om een relatie toe te voegen.
- Selecteer Verwijderen om een relatie te verwijderen.
Voor elke relatie vul je de volgende gegevens in.
| Naam | Omschrijving |
|---|---|
| Oudertype | Het entiteitstype van de ouder. Je kiest dit uit een drop-down lijst. |
| Ouder positie | Eén of twee kolommen die samen de unieke sleutel positie van de ouder binnen de hiërarchie vormen. |
| Kindtype | Het entiteitstype van het kind. Je kiest dit uit een drop-down lijst. |
| Kind positie | Eén of twee kolommen die samen de unieke sleutel positie van het kind binnen de hiërarchie vormen. |
Verwijder relaties voor entiteiten die je niet importeert of die geen relaties hebben. Zo blijft de importdefinitie overzichtelijk.
Over kolomposities:
Je geeft kolomposities op met een nummer of letter. Bij de positie kan je maximaal twee kolommen opgeven gescheiden door een ;.
Een hoofdentiteit wordt meestal geïdentificeerd met één kolompositie, bijvoorbeeld A. Bij elke import mag er maar één hoofdentiteit aanwezig zijn.
De opgegeven kolomposities bepalen waar entiteiten aan hun ouder worden gekoppeld. Daarnaast worden deze kolommen gebruikt om een entiteit binnen de hiërarchie uniek te onderscheiden.
Wanneer een entiteit een kind is van een andere entiteit, is het daarom vaak nodig om naast de sleutel van de bovenliggende entiteit ook een eigen aanvullende sleutelkolom op te nemen.
De hiërarchie kan maar tot maximaal 3 niveaus diep zijn.
Onderstaand voorbeeld toont een CSV-bestand met drie entiteiten: order, orderregel en orderregelregistratie.
"O1", "L1", "R1"
"O1", "L2", "R2"
"O1", "L1", "R3"
"O1", "L2", "R4"
"O2", "L1", "R5"
"O2", "L2", "R6"
"O2", "L1", "R7"
"O2", "L2", "R8" Dit bestand bevat twee orders, elk met twee orderregels (vier in totaal) en twee registraties per orderregel (acht in totaal).
Stel dat je de volgende relaties definieert:
-
Oudertype:
entity://orders.order
Ouder positie:A
Kindtype:entity://orders.orderline
Kind positie:A;B -
Oudertype:
entity://orders.orderline
Ouder positie:A;B
Kindtype:entity://orders.orderlineregistration
Kind positie:A;B
Hierbij geldt:
- Een order wordt geïdentificeerd door kolom
A. - Een orderregel wordt geïdentificeerd door de combinatie
A;Bals kindpositie. Hierdoor blijft elke orderregel uniek binnen een order. - Een orderregelregistratie gebruikt eveneens de combinatie
A;Bals kindpositie. Deze sleutel wordt niet gebruikt om de registratie zelf uniek te identificeren, maar om de bijbehorende orderregel terug te vinden.
Het is belangrijk om te begrijpen dat de opgegeven posities de sleutels vormen waarmee ouder-kindrelaties worden opgebouwd. Ze beschrijven dus waar een entiteit aan haar ouder wordt gekoppeld.
In bovenstaand voorbeeld:
| Relatie | Match op |
|---|---|
| Order → Orderregel | A |
| Orderregel → Orderregelregistratie | A;B |
Hoewel de orderregel bij de relatie met de order alleen op A wordt gekoppeld, gebruikt deze toch A;B als sleutel. Dit is nodig om verschillende orderregels binnen dezelfde order van elkaar te kunnen onderscheiden omdat ze in dit voorbeeld alleen per order een unieke waarde hebben.
Bijvoorbeeld:
| Order | Orderregel |
|---|---|
| O1 | L1 |
| O1 | L2 |
Als de orderregel alleen sleutel A zou gebruiken, zouden beide orderregels dezelfde sleutel (O1) hebben en niet meer van elkaar te onderscheiden zijn. Door A;B te gebruiken ontstaan unieke sleutels:
| Entiteit | Sleutel |
|---|---|
| Order | O1 |
| Orderregel L1 | O1;L1 |
| Orderregel L2 | O1;L2 |
De orderregelregistratie gebruikt vervolgens dezelfde sleutel (A;B) zodat deze aan de juiste orderregel kan worden gekoppeld. In dit geval is A;B voldoende voor de orderregelregistratie omdat die unieke waarden bevat (R1–R8).
De opgegeven kolomposities moeten bestaan in het CSV-bestand dat je voor de entiteit hebt ingesteld op het CSV ontvangen subtabblad.
Instellingen
De instelling Controleer op dubbele regels is standaard ingeschakeld wanneer je één of meer relaties hebt ingesteld.
Je kan deze instelling alleen uitschakelen als er geen relaties zijn geconfigureerd.
Als Controleer op dubbele regels is ingeschakeld, controleert ReflexBlue tijdens het importeren of dezelfde entiteit meer dan één keer voorkomt in het CSV-bestand. ReflexBlue gebruikt hiervoor de identificatie van de entiteit, meestal een ID of code.
Als ReflexBlue dubbele regels vindt, mislukt de import met een foutmelding.
Velden koppelen subtabblad
Het Velden koppelen subtabblad hoort bij de fase Velden koppelen van de importdefinitie.
In deze fase koppel je per entiteit de velden in ReflexBlue aan de kolommen in het CSV-bestand. Zo weet ReflexBlue uit welke kolom de waarde komt en in welk veld van de entiteit de waarde moet worden opgeslagen.
Entiteiten toevoegen
Voeg onder Velden koppelen de entiteiten toe waarvoor je velden wil koppelen.
- Selecteer Nieuw om veldkoppelingen voor een entiteit toe te voegen.
- Selecteer Verwijderen om veldkoppelingen te verwijderen.
Wanneer je veldkoppelingen voor een entiteit toevoegt, verschijnt er een subtabblad voor die entiteit. Op dat subtabblad configureer je de veldposities.
Wil je veldkoppelingen verwijderen? Selecteer dan eerst het subtabblad van de entiteit waarvan je de veldkoppelingen wil verwijderen. Selecteer daarna Verwijderen.
Welke entiteiten je kan toevoegen, hangt af van het importdefinitietype. Bij een artikelimport zie je andere entiteiten dan bij een verkooporderimport.
Daarom kunnen ook de subtabbladen voor veldposities verschillen per importdefinitietype.
Verwijder veldposities voor entiteiten die je niet importeert. Zo blijft de importdefinitie overzichtelijk.
Veldposities
Voor elke entiteit die je toevoegt onder Velden koppelen, zie je een subtabblad. Op dat subtabblad koppel je de kolommen uit het CSV-bestand aan de velden van de entiteit.
- Selecteer Nieuw om een veld toe te voegen.
- Selecteer Verwijderen om de geselecteerde velden te verwijderen.
Voor elke veldpositie vul je de volgende gegevens in.
| Naam | Omschrijving |
|---|---|
| Sleutel | De sleutel van het entiteitveld. Deze sleutel bepaalt in welk veld ReflexBlue de waarde uit het CSV-bestand opslaat. |
| Positie | De kolompositie in het CSV-bestand waaruit ReflexBlue de waarde leest. Laat deze leeg als de waarde niet in het CSV-bestand staat. Geef dan verplicht een Standaard waarde op. |
| Standaard waarde | De waarde die ReflexBlue gebruikt wanneer er geen waarde in het CSV-bestand staat, of wanneer de waarde leeg is. Is een waarde verplicht in ReflexBlue, maar mogelijk leeg in de CSV? Geef dan een standaard waarde op. |
| Overschrijven | Geeft aan of ReflexBlue bestaande waarden mag overschrijven tijdens de import. |
Veldposities controleren en gebruiken
Wanneer je alle velden en posities hebt ingevuld, kan je de lijst ordenen of automatisch laten invullen.
- Selecteer Sorteer op positie om de velden te sorteren op kolompositie.
- Selecteer Posities toewijzen om posities automatisch toe te wijzen op basis van de volgorde van de velden in de lijst.
Controleer daarna altijd of de posities overeenkomen met de kolommen in het CSV-bestand.
Selecteer Naar klembord kopiëren om de sleutels als CSV-kopregel naar het klembord te kopiëren. Je kan deze kopregel daarna in een CSV-bestand plakken. Dit is handig wanneer je een CSV-bestand wil maken met de verwachte kolommen.
Script subtabblad
Het Script subtabblad hoort bij de block definitie of fase Script van de importdefinitie. In deze fase bewerk je de ingelezen gegevens uit de CSV-bestanden met een script in C#, voordat ReflexBlue de gegevens verwerkt en opslaat.
Gebruik een script bijvoorbeeld wanneer waarden in het CSV-bestand niet het formaat hebben dat ReflexBlue verwacht.
Voorbeeld 1:
In dit voorbeeld wijzigt het script bij het importeren van verkooporders het decimaalteken in het veld Portie gewicht (met sleutel ORDERARTICLELINE_PORTIONWEIGHT) van de orderregel van , naar ..
var sets = GetSet("entity://orders.orderline");
foreach (var set in sets)
{
if (ColumnExists(set, "ORDERARTICLELINE_PORTIONWEIGHT"))
{
var articlePortionWeight = GetColumnValue(set, "ORDERARTICLELINE_PORTIONWEIGHT");
if (!string.IsNullOrEmpty(articlePortionWeight))
{
var updatedValue = articlePortionWeight.Replace(",", ".");
SetColumnValue(set, "ORDERARTICLELINE_PORTIONWEIGHT", updatedValue);
}
}
} Voorbeeld 2:
Onderstaand voorbeeld converteert een datum van dag-maand-jaar naar jaar-maand-dag.
var bezorgDatum = GetColumnValue("ORDER_DELIVERYDATE");
if (!string.IsNullOrEmpty(bezorgDatum))
{
var parsedDate = DateTime.ParseExact(bezorgDatum, "dd-MM-yyyy", CultureInfo.InvariantCulture);
parsedDate = parsedDate.AddDays(0);
var universalDateFormat = parsedDate.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
SetColumnValue("ORDER_DELIVERYDATE", universalDateFormat);
} Importinstellingen subtabblad
Afhankelijk van het type importdefinitie zie je een subtabblad met instellingen voor die import. De naam van dit subtabblad komt meestal overeen met de naam van de importdefinitie.
Bij de importdefinitie Artikel import zie je bijvoorbeeld het subtabblad Artikelen importeren. Op dit subtabblad configureer je de artikelimport.
Zoekfuncties
Op het subtabblad met importinstellingen kan je ook zoekfuncties instellen.
Een zoekfunctie koppelt een waarde uit het CSV-bestand aan een bestaande entiteit in ReflexBlue. Dit gebeurt meestal op basis van een code of naam.
Voorbeeld:
Je importeert artikelen en wil per artikel ook de leverancier koppelen.
Neem in het CSV-bestand een kolom op met de leverancierscode. Deze code moet bekend zijn in ReflexBlue. Tijdens de import zoekt ReflexBlue de leverancier op basis van deze code op en koppelt deze aan het artikel.
Koppel hiervoor de veldsleutel ARTICLEPURCHASE_SUPPLIER aan de zoekfunctie SupplierIdByCodeLookup.
De beschikbare zoekfuncties verschillen per importdefinitietype.
Gebruik de volgende acties om zoekfuncties te beheren:
- Selecteer Toevoegen om een zoekfunctie voor een entiteit toe te voegen.
- Selecteer Verwijderen om de geselecteerde zoekfunctie te verwijderen.
Vul voor elke zoekfunctie de volgende gegevens in.
| Naam | Omschrijving |
|---|---|
| Sleutel | De veldsleutel van de entiteit die je aan een zoekfunctie wil koppelen. Dit is dezelfde sleutel die je ook gebruikt op het subtabblad Velden koppelen. |
| Type | Het type zoekfunctie dat ReflexBlue gebruikt. ReflexBlue vult dit automatisch in op basis van de entiteit waarvoor je de zoekfunctie toevoegt. |
Je mag maar één zoekfunctie opgeven per veldsleutel.
Gegevens opruimen subtabblad
Het Gegevens opruimen tabblad hoort bij de block definitie of fase Gegevens opruimen van een importdefinitie.
Tijdens deze fase verwijdert ReflexBlue tijdelijke gegevens die tijdens het importproces zijn aangemaakt.
Je hoeft op dit tabblad geen instellingen in te vullen.