Een import in Babeldat begint met een bronbestand waarin de gegevens op een vaste en herkenbare manier zijn opgebouwd.
Er is geen standaardindeling voor een bronbestand. De importmapping kan worden afgestemd op de gegevens en kolomindeling van het bestand dat je gebruikt. Hierdoor kunnen verschillende bestandsindelingen worden geïmporteerd zonder dat je het bronbestand aan één vaste Babeldat-indeling hoeft aan te passen.
Bestandstype
Babeldat kan verschillende typen bronbestanden verwerken. De mogelijkheden en aandachtspunten verschillen per bestandstype.
| Bestandstype | Toelichting |
|---|---|
| XLSX | Excel-bestand. Ondersteunt onder andere kolomkoppen, verschillende typen regels en denotatie segmenten. |
| CSV | Tekstbestand waarbij de gegevens door een scheidingsteken van elkaar worden gescheiden. Het gebruikte scheidingsteken en de encoding kunnen worden ingesteld. |
| XML | Gestructureerd bestand. Een XML-bestand kan eventueel worden gecontroleerd aan de hand van een XSD-bestand. |
| JSON | Gestructureerd bestand met gegevens in JSON-formaat. |
| Plain text | Tekstbestand met een eigen structuur en scheidingstekens. Dit kan bijvoorbeeld worden gebruikt voor EDIFACT-bestanden. |
| Attachment | Bestand dat als bijlage wordt verwerkt en niet als gestructureerde gegevens wordt ingelezen, bijvoorbeeld een PDF of afbeelding. |
Voor Excel-imports gebruik je een .xlsx-bestand.
Kolommen en gegevens
Elke kolom in het bronbestand bevat een bepaald gegeven dat je wilt importeren. Denk bijvoorbeeld aan:
- klantcode;
- ordernummer of referentie;
- productcode;
- aantal;
- prijs;
- leverdatum;
- afleveradres.
Welke gegevens nodig zijn, is afhankelijk van het type gegevens dat je importeert en de manier waarop deze in Babeldat worden gebruikt. De kolommen worden in de importmapping gekoppeld aan de bijbehorende velden in Babeldat.
Kolomkoppen
Je kunt in het bronbestand een eerste rij met kolomkoppen gebruiken. Hierdoor kunnen de kolommen op basis van hun naam worden herkend. Wanneer je kolomkoppen gebruikt, moeten deze bij iedere import hetzelfde zijn. Een wijziging in een kolomnaam kan ervoor zorgen dat deze niet meer overeenkomt met de inrichting van de importmapping.
Verschillende typen regels
Wanneer een bestand meerdere typen regels bevat, kunnen deze worden onderscheiden met een aparte kolom. Dit is bijvoorbeeld van toepassing bij een verkooporderbestand waarin zowel ordergegevens als orderregels staan.
Een bestand kan er bijvoorbeeld als volgt uitzien:
| Type | Referentie | Klantcode | Productcode | Aantal |
|---|---|---|---|---|
| H | ORD001 | KLANT01 | ||
| L | ART001 | 5 | ||
| L | ART002 | 2 | ||
| H | ORD002 | KLANT02 | ||
| L | ART003 | 10 |
In dit voorbeeld geeft de kolom Type aan welk soort regel het betreft:
Hgeeft aan dat een nieuwe order begint.Lgeeft aan dat de regel bij de laatst aangemaakte order hoort.
De gebruikte waarden (H en L) zijn slechts een voorbeeld. Je kunt hiervoor andere waarden gebruiken, zolang deze in het bronbestand consequent worden toegepast en in de importmapping juist worden ingericht. Met Denotatie segmenten in de importmapping kan worden aangegeven welke kolom het type regel bevat en welke waarde aangeeft dat een nieuwe hoofdregel begint.
Ordergegevens en orderregels
Bij een verkooporder kunnen gegevens op verschillende niveaus worden vastgelegd.
Ordergegevens zijn bijvoorbeeld:
- klant;
- referentie;
- leverdatum;
- afleveradres.
Orderregels bevatten bijvoorbeeld:
- product;
- aantal;
- prijs;
- batch.
Een order kan meerdere orderregels bevatten. Door de opbouw van het bronbestand en de inrichting van de importmapping worden deze regels aan de betreffende order gekoppeld.
Het afleveradres hoort bij de ordergegevens. Wanneer een bestand aparte adresregels bevat, kunnen deze eveneens als een afzonderlijk type regel worden ingericht, afhankelijk van de gewenste structuur van het bronbestand en de importmapping.
Gegevens die al in Babeldat aanwezig zijn
Gegevens in het bronbestand die verwijzen naar bestaande gegevens in Babeldat, moeten overeenkomen met de waarden die daar zijn vastgelegd.
Denk bijvoorbeeld aan:
- klantcodes;
- productcodes;
- meeteenheden;
- attribuutgroepen;
- ladingdragers;
- andere codes die in de importmapping worden gebruikt.
Een onbekende klantcode of productcode kan ervoor zorgen dat de import niet wordt verwerkt. Een onbekende meeteenheid of attribuutgroep wordt niet als fout gemeld. De betreffende waarde wordt dan niet aan de geïmporteerde gegevens toegevoegd. Controleer daarom vooraf of de gebruikte codes aansluiten op de gegevens in Babeldat. Zo voorkom je dat een import wel wordt verwerkt, maar bepaalde gegevens ontbreken.
Verkooporders importeren
Bij een nieuwe verkooporder is een afleveradres of een geldige GLN-code nodig. Wanneer een verkooporder opnieuw wordt geïmporteerd, moet Babeldat kunnen bepalen welke bestaande order bedoeld wordt. Gebruik daarom bij iedere import dezelfde gegevens om een order te identificeren. Bij het opnieuw importeren van een bestaande order is het daarnaast belangrijk om te bepalen of het bestand de volledige order bevat of alleen de gegevens die gewijzigd moeten worden. Bij een update kunnen orderregels die niet meer in het importbestand voorkomen namelijk worden verwijderd.
Een bestaande order wordt alleen bijgewerkt wanneer deze daarvoor nog in een geschikte status staat. Een order die bijvoorbeeld al is gepickt of geëxporteerd, wordt bij een herimport niet meer bijgewerkt.
Bronbestand testen
Test een nieuw bronbestand altijd met de bijbehorende importmapping voordat je het bestand voor reguliere imports gebruikt.
Controleer daarbij of:
- de kolommen correct zijn opgebouwd;
- de gebruikte kolomkoppen overeenkomen met de inrichting van de importmapping;
- verschillende typen regels correct worden herkend;
- ordergegevens en orderregels correct aan elkaar worden gekoppeld;
- gebruikte codes overeenkomen met de gegevens in Babeldat;
- verplichte gegevens aanwezig zijn;
- een bestaande order bij een herimport correct wordt herkend.
Zie voor het inrichten van de bijbehorende importmapping [Import Mapping aanmaken].
Importmapping
Wanneer de structuur van het bronbestand is bepaald, kan hiervoor een importmapping worden ingericht. De importmapping bepaalt welke kolommen uit het bronbestand aan welke velden in Babeldat worden gekoppeld en hoe verschillende typen regels met elkaar samenhangen.
Zie hiervoor Import Mapping aanmaken.