Importgegevens bewerken met VB Script

Als de te importeren gegevens niet de juiste indeling hebben, kun je deze bewerken met een VB script.

Het kan voorkomen dat de te importeren velden niet de juiste indeling hebben. Enkele voorbeelden:

  • Postcode en woonplaats zijn opgenomen in één veld, terwijl Profit verwacht dat je deze gegevens gescheiden aanbiedt.
  • Je wilt codes bewerken, bijvoorbeeld omdat je voor elke (numerieke) debiteurcode de letter D wilt plaatsen en voor elke medewerkercode de letter M wilt plaatsen.

Bij een eenmalige import is het vaak het makkelijkst om de gegevens in bijvoorbeeld Microsoft Excel voor te bewerken. Excel biedt immers veel functionaliteit om bijvoorbeeld velden te splitsen of te combineren en om zoek-en-vervangacties uit te voeren op kolommen.

Bij een import die je vaker uitvoert, kun je acties laten uitvoeren door een script op te nemen in de importwizard. Hierbij maak je gebruik van de taal VB script.

Inhoud

VB script maken

Je neemt een VB-script op in de importdefinitie. Kennis van VB is hiervoor noodzakelijk.

VB script instellen:

  1. Start de importfunctie.
  2. Voer de stappen in de wizard uit, tot je bij de stap komt voor het vastleggen van het script.
  3. Vink Gebruik script aan.
  4. Klik in het vak Script en schrijf het script.

    Voeg velden in via de zoeklijsten met velden (links boven). Je hebt twee lijsten, één met velden in Profit en één met velden in het importbestand. Als je velden invoegt via deze lijsten, worden deze direct met de juiste syntax ingevoegd in de script-editor.

    Let op:

    Een veld kan in de veldenlijst (in de vorige stap) de instelling Niet wijzigen hebben. In die situatie zal het veld nooit worden gevuld via een import, ook niet via een script.

    Als je geen waarde kunt importeren omdat deze niet in het importbestand staat, vul het veld dan tijdelijk met een vaste waarde of map het veld naar een lege kolom. In de volgende stap gebruik je dan het script om het veld alsnog te vullen met de juiste waarde.

  5. Je kunt een commentaar invullen als dit vooraf wordt gegaan door een " (dubbel aanhalingsteken).
  6. Controleer het script met de knop Test script. Bij een fout in het script treedt een foutmelding op, en kun je het script verbeteren. Als geen fouten worden geconstateerd, krijg je ook daarvan een melding.

    Let op: 

    Met de knop Test script voer je alleen een technische controle uit. Hiermee controleer je niet of de bewerking inderdaad het gewenste resultaat oplevert. Test een importdefinitie altijd in een test-omgeving om het resultaat te controleren.

  7. Met Reset script kun je de aanpassingen in het script verwijderen.
  8. Voer de rest van de importprocedure uit.

Voorbeeld van een VB script:

Het importbestand bevat verkooprelaties met een numerieke code; deze codes staan in het tweede veld in het bestand. Je wilt echter dat alle verkooprelaties in Profit een code krijgen die met de letter D begint, gevolgd door de code uit het importbestand.

Het script moet tussen de volgende aanduidingen staan:

Sub Import()

'Hier je script

End Sub

  1. Plaats de cursor op de lege regel onder Sub Import().
  2. Klik in de zoeklijst Veld uit Profit toevoegen op DbId:Debiteurnummer (Verkooprelatie).
  3. Hiermee voeg je de veldnaam ToFields("DbId").value in het script in.
  4. Plaats de cursor achter deze veldnaam.
  5. Vul in: = D +
  6. Open de zoeklijst Veld uit invoerbestand toevoegen.
  7. Klik op: het te importeren veld met de debiteurcode.
  8. Hiermee voeg je de veldnaam FromFields("VELD_2").Value in.

    Het VB script is klaar. De volledige tekst van het script is:

    Sub Import()

    ToFields("DbId").Value = "D" + FromFields("VELD_2").Value

    End Sub

Memoveld met meerdere regels onder elkaar importeren met script

Het is mogelijk om meerdere regels in één memoveld te importeren, en daarbij de regels onder elkaar te zetten in plaats van achter elkaar. Dit doe je via een script in de importdefinitie.

Memoveld met meerdere regels onder elkaar importeren met script:

  1. Zet in het te importeren .csv-bestand een bepaald teken achter de regels. Gebruik hiervoor een uniek teken dat verder niet in het bestand voorkomt, bijvoorbeeld # of ^.
  2. Zet de script-optie aan in de importdefinitie via de importwizard.
  3. Neem bijvoorbeeld de onderstaande regel op in het script. Dit script vervangt dan het betreffende teken door een regelwissel (vbcrlf).

    Voorbeeld: 

    Met # als scheidingsteken:

    <veld>=replace(<veld>,"#",vbCrLf)

    Als er bij de export alleen een line feed staat bij regelwissel in een memo veld (vaak zichtbaar als een blokje in Profit), dan kun je de line feed vervangen door crlf:

    <veld>=replace(<veld>,vbLf,vbCrLf)

Direct naar

  1. Import via nieuwe importdefinitie
  2. Importdefinitie toevoegen en bestand importeren
  3. Importopties voor velden
  4. Instellen VB script
  5. Importhistorie raadplegen