Jump to content
  • 0

Importeer probleem


Wouter W.

Question

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 to comment

24 answers to this question

Recommended Posts

  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 0

"De wijze waarop je nu de import hebt gedefinieerd is namelijk "statisch" en wordt simpelweg op de kolomvolgorde uitgevoerd"

Ik heb "veldnamen" aangevinkt.


Dat houdt toch in dat de import, kolomnamen Excel en veldnamen FM aan elkaar koppelt. M.a.w. dan zou de kolomvolgorde niet uit mogen maken?

Link to comment
  • 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 to comment
  • 0

Ik zie toch echt dat je 'eigen volgorde' gebruikt bij het koppelen van bron- en doelvelden. Dat moet dus namen vergelijken ('matching names') zijn. Wanneer veldnamen in bron en doel niet overeenkomen gebruik je de tussentabel waarin je wél alle veldnamen precies gelijk hebt aan die in Excel.

Link to comment
  • 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 to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...