Ga naar inhoud
  • 0

Importeer probleem


Wouter W.

Vraag

Beste Forumleden,

Ik heb deze vraag ook gevraagd bij "FM 17", maar aangezien het probleem zich nog steeds voordoet en ik met "FM pro 18" plaats ik het hier....

Het probleem is het volgende:

Ik heb een script gemaakt om vanuit een Excel bestand inhoud van cellen te importeren naar velden in FM.
Hierbij heb ik bij "importeer volgorde" de bronvelden toegewezen aan de doelvelden.
De 1e rij in Excel zijn in dat geval de veldnamen.

Het Excel bestand heb ik voor het gemak opgeslagen met de bestandsnaam "data".
Nu zijn er iedere keer andere Excel bestanden met andere inhoud.
Het aantal rijen in Excel verschilt de ene keer met de andere keer echter de 1e rij met kolomnamen blijven wel gelijk. 

Het Excel bestand sla ik dan op op dezelfde plek op de server,
vervang het vorige Excel bestand en onder dezelfde naam zodat de script verwijzing werkt. 


Echter na een aantal positieve testen,  waren een aantal doelvelden niet meer aan bijbehorende bronvelden toegewezen.
In het ene geval had het de status "Niet importeren" gekregen, in het andere geval werden bronvelden aan andere doelvelden gekoppeld.

Voorbeeld:

Bronvelden Excel: 1A, 1B, 1C, 1D, 1E, 1F
Doelvelden FM: Auto, Bus, Fiets

Ik heb toegewezen:

1A --> Auto
1B --> Bus
1C --
1D --
1E --
1F --> Fiets

Na een aantal positieve testen, klopte de inhoud niet meer. Bijvoorbeeld:

1A --> Auto
1B -- 
1C --
1D --> Fiets
1E --
1F --
 

Ik hoop dat ik hiermee mijn probleem duidelijk heb gemaakt en dat iemand de oorzaak, nog beter, de oplossing weet :) 

Link naar reactie

24 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Helaas dat gaat ook fout.

Wat mij wel opvalt dat ik bij het opgeven van de importeer volgorde aangeef: "eigen volgorde"
Als ik later dit venster weer open om bevestigd te krijgen dat bepaalde bron en doelvelden niet meer kloppen zoals ik ze eerder heb gedefinieerd,
zie ik dat de status is veranderd naar "laatste volgorde"

Link naar reactie
  • 0

Laatste volgorde is prima. Dit houdt in dat er precies zo als de keer ervoor wordt geimporteerd. Wanneer dan niet de zelfde kolommen in de zelfde velden terecht komen kan dit alleen betekenen dat het Excel document niet dezelfde kolommen heeft als de vorige keer. Voor dit soort inconsequente bestanden denk ik dat je dit alleen kunt oplossen door in een tussentabel alle kolommen uit Excel te importeren en dan de juiste kolommen welke je in FM wilt hebben selecteren aan de hand van de kolomlabels.

Link naar reactie
  • 0

Beste Banach,

Ik heb een "tussentabel" gemaakt in FM met alle (90) velden. Deze velden heb ik dezelfde naam gegeven als de kolom titels in het Excel bestand.
Bij een stuk of 10 heb ik in de naam in FM een "_" gezet omdat in het Excel bestand een aantal kolom titels een "-" erin hebben zitten.
(Ik dacht dat dit laatste misschien nog de oorzaak is, maar ook bij bron- en doelvelden met exact dezelfde naam gaat het mis.)

Vervolgens alle bronvelden (kolomnamen) toegewezen aan de doelvelden (veldnamen) en geïmporteerd.

De 1e keer gaat dit goed. Echter een volgende keer zijn er toch een stuk of 8 waarbij de bron - doel toewijzing niet meer klopt.

Dit gebeurt dus al in de "tussentabel" en voordat ik de benodigde 20 velden uit de tussentabel naar de definitieve tabel wil importeren.

Link naar reactie
  • 0
1 hour ago, Wouter W. said:

De 1e keer gaat dit goed. Echter een volgende keer zijn er toch een stuk of 8 waarbij de bron - doel toewijzing niet meer klopt.

Gaat het dan om hetzelfde Excel bestand? Of is dit een ander Excel bestand?

In de eerste situatie is er iets mis met je FM want dit is niet het normale gedrag van FM.

In de tweede situatie (hier ging ik telkens van uit) is het na importeren in de tussentabel nodig om de benodigde velden te matchen met de labels zoals die in het Excelbestand staan. De veldnamen in de tussentabel maken daarbij niet uit. Je kijkt naar het eerste geïmporteerde record. Dit bevat de kolomnamen zoals deze in Excel staan, mits je dat bij het importeren hebt aangegeven. Vervolgens kunnen we gaan kijken naar een procedure om de betreffende kolommen in je definitieve tabel te importeren.

Link naar reactie
  • 0

Het gaat om iedere keer een ander Excel bestand.
Met andere inhoud maar wel met dezelfde kolomnamen.

Deze sla ik op op een vaste plek op de server en overschrijf de oude met dezelfde naam, aangezien ik in het script daar naar verwijs.

Het tweede deel van je antwoord begrijp ik niet helemaal. Ik heb een nu m.b.v. een script de records geïmporteerd. Dan moet ik toch sowieso bron en doelvelden aan elkaar koppelen?
Ook al is het een "tussentabel" of begrijp ik het verkeerd?

Link naar reactie
  • 0

Ik ben hier eens wat dieper ingedoken omdat ik vind dat wanneer je importeert op matching field names je geen tussentabel nodig zou moeten hebben. Ook is het correct vanuit de tussentabel importeren in de hoofdtabel nog niet zo eenvoudig!

Uiteindelijk denk ik dat we hier op een onvolkomenheid in FM zijn gestoten welke in ieder geval in FM18 bestaat en wellicht al eerder niet naar verwachting werkte.

Ik kreeg het uiteindelijk wel goed zoals je in bijgevoegde bestandjes kunt nagaan, maar waarom het ineens wél goed werkte na verschillende pogingingen waarin het niet goed ging, weet ik eerlijk gezegd niet precies.

In het import.fmp12 bestand zit een scriptje dat door de knoppen "import data1" en "import data2" wordt aangeroepen. Enige verschil is de scriptparameter data1 of data2. Hiermee wordt even voor dit testje het Data1.xlsx of het Data2.xlsx Excel bestand geïmporteerd.

Beide Excel bestanden hebben dezelfde kolommen echter in een verschillende volgorde. Toch importeert FM de gewenste velden (4 van de 9) in de juiste velden. Maar dit ging niet zonder slag of stoot.

(a) Wanneer de importeerstap zonder dialoog wordt uitgevoerd en er geen file specificatie in is opgenomen worden de juiste velden gematched.

(b) Ook wanneer er wel een dialoog moet worden uitgevoerd en er tevens een file specificatie in de scriptstap staat gaat het goed.

(c) Echter wanneer je geen dialoogvenster maar wel een file specificatie geeft krijg je een foutmelding: Er zijn geen velden welke geïmporteerd kunnen worden (o.i.d.)

Ik denk dat ik het tot mijn stomme verbazing goed gekregen heb door eerst (a) of (b) uit te laten voeren en daarna het script op (c) aan te passen. Raar, maar waar.

Wellicht heeft een van de andere forumleden een verklaring van wat hier fout gaat.

import.zip

Link naar reactie
  • 0

De importvolgorde wordt gekoppeld aan de naam van de sheet in het excel-bestand. Gebruik je verschillende bestandsnamen, maar de sheets met dezelfde naam, dan wordt je oude importvolgorde hersteld. Gebruik je dezelfde bestandsnaam, maar verschillende sheetnamen, dan is de importvolgorde weg.

Link naar reactie
  • 0

Importeren is iets wat de meesten hier "dagelijks" doen en maken. Dus in jouw situatie is er iets wat het proces verstoort of je doet gewoon iets verkeerd. Het probleem is alleen dat wij tot nu toe van jou niet het complete plaatje krijgen en wij dus aannames moeten doen.

Dus zal je jouw situatie een beetje beter moeten beschrijven:

Welk Operating System van de computer met FileMaker?
En welk OS draait er op de bestands-server?
Hoe ziet je bestandspad eruit? 
Gebruik je file:/filemac: of filewin: aan het begin van je pad?
Is de importvolgorde daadwerkelijk vastgezet, m.a.w. staat het vinkje bij de importvolgorde aan?
Gebruik je het het FM-bestand lokaal of geshared vanaf een FMServer?
Welke excel-versie is de bestandsstructuur?

Soms vertellen screenshots ook heel veel en die kan je gewoon in de teksten plakken die je hier schrijft

 

Link naar reactie
  • 0

Je importeert iets uit een testbestand, daarna open je een bestaand of nieuw scipt en je voegt daar een nieuwe regel toe "Importeer records". Als je dan "Specify import order" of "importeervolgorde opslaan" aanvinkt, dan is de laatstgebruikte importvolgorde daadwerkelijk opgeslagen en wordt hij de volgende keer weer gebruikt.

Link naar reactie
  • 0

Goed Menno, ik zal het probleem nog duidelijker weergeven:

Stap 1 : Ik download van een website een Excel (xlsx) bestand.
1 tabblad (Simple); 90 kolommen (namen staan vast); Aantal rijen variëren. Inhoud van de rijen is van sommige kolommen verschilt.

 1688365744_Schermafbeelding2019-08-05om13_02_59.thumb.png.8eebd58316c6cca45ec26ca652826306.png


Stap 2 : Ik sla het bestand op op onze server onder de naam "data" d.m.v. "opslaan als" en vervang hierbij het vorige bestand "data"

2108617659_Schermafbeelding2019-08-05om13_06_16.png.555f8abd93f25c23e5e2f8e2a729fdb8.png

Stap 3 : Ik activeer het script wat ik heb gemaakt

1096790292_Schermafbeelding2019-08-05om13_20_57.thumb.png.73b3814a36296a308b14e7e93fa5292b.png
 

560985825_Schermafbeelding2019-08-05om13_09_01.thumb.png.4e941415df917db535bf5dfff1bb94a6.png

 

2085579702_Schermafbeelding2019-08-05om13_09_16.png.14fac2a16a5d1d8ef5d7eacc636a433a.png

1398973516_Schermafbeelding2019-08-05om13_11_22.thumb.png.f8d950c8b7a0ca6ff5c9814358741272.png



869454502_Schermafbeelding2019-08-05om13_25_06.thumb.png.3c722ae8f6494dbef0dd25e781e3bff8.png

Deze laatste afbeelding laat zien waar het fout gaat: Eerder ha dik namelijk de bron en het doel aan elkaar gekoppeld. Nu zie je dat sommige bronnen niet aan dezelfde dolen zijn gekoppeld of de status is veranderd naar "niet importeren".

Overige gegevens:
Welk Operating System van de computer met FileMaker?
Computer: Mac OS Mojave Versie 10.14.5
FileMaker versie 18

En welk OS draait er op de bestands-server?
Bestandsserver: Mac OS High Sierra Versie 10.13.3
FileMaker versie 16

Hoe ziet je bestandspad eruit?
Zie afbeelding
 

Gebruik je file:/filemac: of filewin: aan het begin van je pad?
Zie afbeelding


Is de importvolgorde daadwerkelijk vastgezet, m.a.w. staat het vinkje bij de importvolgorde aan?
Zie afbeelding


Gebruik je het het FM-bestand lokaal of geshared vanaf een FMServer?
Geshared


Welke excel-versie is de bestandsstructuur?
xlsx



Ik hoop dat dit genoeg info is, anders hoor ik het wel :)



 

Link naar reactie
  • 0

Ja dat is duidelijk en nu hebben we ook alle info. Verander je de structuur van de FileMaker DB weleens, als in verwijder je wel een kolommen (velden)? Ik zie namelijk achter "shipping-addressid" in FM een lege plek staan.

In het verleden was FileMaker niet erg goed bestand tegen het verwijderen van velden. Als je dat in een bepaalde tabel had gedaan, dan was vaak een importvolgorde in die tabel ook meteen gemold. Velden toevoegen was meestal geen probleem, tenzij er spontaan bij imports data in terecht kwam die er niet in hoorde.

Wat je nog zou kunnen proberen:
1) De eerste rij tóch gewoon importeren en die na de import verwijderen... je zou die regel kunnen gebruiken om te controleren of de importvolgorde nog wel correct is. De wijze waarop je nu de import hebt gedefinieerd is namelijk "statisch" en wordt simpelweg op de kolomvolgorde uitgevoerd.
2) Proberen de import vanuit een lokaal excel-bestand te definiëren en kijken of die wél wordt vastgehouden. Als dat lukt, dan wijzig je het pad weer naar het netwerkpad en kijk je of het nog lukt. Je moet ter controle wel even FileMaker bij iedere controle opnieuw opstarten om te voorkomen dat er iets uit de cache vandan komt.

Imports over het netwerk zijn bij mij ook wisselend succesvol, dus het kan zijn dat je eerst het importbestand lokaal moet halen en dan de import moet uitvoeren.

Link naar reactie
  • 0

Ik verander de structuur van de FileMaker DB niet.

"Ik zie namelijk achter "shipping-addressid" in FM een lege plek staan"
Dat is nu net het probleem ik heb deze namelijk eerder wel "goed" gekoppeld aan een doelbestand...

Wat betreft jouw suggestie "1", zou je die nog iets kunnen verduidelijken?

Wat betreft jouw suggestie "2", ga ik proberen

"Imports over het netwerk zijn bij mij ook wisselend succesvol, dus het kan zijn dat je eerst het importbestand lokaal moet halen en dan de import moet uitvoeren."
Volgens mij doe ik dat ook. Ik download het Excelbestand (staat dan in mijn downloads) vervolgens sla ik het op op de server.

Link naar reactie
  • 0

Als je de eerste regel van de excel wel importeert, dan komen altijd dezelfde waarden (veldnamen van de excel) in de dezelfde aangewezen velden in FM terecht wanneer de importvolgorde niet is gewijzigd. Je kan dat gegeven controleren en als die waarden dezelfde zijn als altijd, dan kan je dat overbodige record weggooien. Klopt het niet, dan zou je alle geïmporteerde records kunnen wissen (is ook maar een suggestie).

Link naar reactie
  • 0

Nee, als je veldnamen aanvinkt, dan gaat FileMaker de veldnamen van de eerst rij met gegevens uit Excel matchen aan de identieke veldnamen in FileMaker. Als de veldnamen niet overeenkomen, dan wordt er in die velden niks geïmporteerd.

Jij moet eigen importvolgorde c.q. laatste volgorde gebruiken. FileMaker vindt veldnamen met - tekens niet leuk zodat die veldnamen in berekeningen als ${veld-naam} moeten worden geschreven en anders vervang je de - voor een _. Het laatste heb jij gedaan, maar dan werkt de "veldnamen" import dus niet meer.

Link naar reactie
  • 0

Menno en Banach,

Ik heb de 1e rij met kolomnamen "mee geïmporteerd". (veldnamen vinkje uit)
Vervolgens een script gemaakt om alle kolomnamen te controleren op aanwezigheid en juiste positie.
Daarna tests gedaan. Dit ging 8x keer goed en 1x fout, maar door deze check heb ik wel kunnen achterhalen waar het probleem zit:
In dit laatste geval bleken er in Excel 87 kolomnamen te zitten i.p.v. 90...

M.a.w. mijn aannames over de Excel bestanden, altijd dezelfde aantal kolommen en kolomnamen en positie, klopt niet.

Nu maar weer met degene aan de slag die de Excel export aanlevert.

Tot zover
Dank jullie voor het meedenken en het oplossen ?

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...