
Artikelgegevens importeren in FileMaker
In het artikel FileMaker en MySQL Ik heb al beschreven hoe FileMaker werkt met een MySQLDatabase verbonden kan worden met het internet. Dit artikel gaat ervan uit dat je een volledig geconfigureerde ODBC-Interface naar uw webserver waarop de MySQL-database van xt:commerce zich bevindt. Laten we eerst eens kijken naar de tabellen waarin xt:Commerce relevante productgegevens opslaat:
producten - In deze Tabel is de article master met de Primaire sleutel <>. De tabel slaat gegevens op zoals het artikelnummer, productnaam, status, VPE, afbeeldingslink, enz.
producten_attributen - In deze tabel worden de productattributen opgeslagen die in xt:Commerce zijn toegewezen aan de afzonderlijke producten - bijvoorbeeld "Maat: o M o L o XL", die de klant in het product kan selecteren voordat hij bestelt. Deze tabel is niet relevant voor zoekmachineoptimalisatie.
producten_omschrijving - Dit is de relevante tabel die we nodig hebben voor zoekmachineoptimalisatie. Het bevat de beschrijving (lange artikeltekst in HTML-formaat), de korte beschrijving in HTML-formaat, de naam van het artikel en alle meta-informatie (zoektermen, meta trefwoorden, meta beschrijving, meta titel).
xt:Commerce heeft nog een paar productgerelateerde tabellen, zoals products_options, products_to_categories of products_xsell, waarin meer informatie over artikelen wordt opgeslagen, maar die niet relevant zijn voor ons artikel.
Als de ODBC-gegevensbron met succes is ingesteld op je computer, zoals hierboven vermeld, kun je nu een nieuwe database maken in FileMaker:
Bestand > Nieuwe database...
Voer een naam naar keuze in, bijvoorbeeld "fmseo.fp7". Wanneer het venster voor de databasedefinitie wordt geopend, sluit u het, want we gaan nu automatisch onze gegevenstabellen uit xt:Commerce importeren in FileMaker. Om het eenvoudig te houden, werken we in dit artikel alleen met de products_description tabel uit xt:Commerce. Als u een volledige Artikel beheer Je hebt zeker ook de andere tabellen nodig, maar dat valt buiten het bestek van dit artikel. Om de gewenste tabel in FileMaker te importeren, selecteert u het volgende menu-item:
Bestand > Gegevensrecords importeren > ODBC-gegevensbron
Er verschijnt dan een dialoogvenster waarin u de ODBC-gegevensbron kunt selecteren die u hebt gemaakt voor de xt:Commerce-shop:
Voer in het volgende dialoogvenster de gebruikersnaam en het wachtwoord voor de MySQL database in:
Zodra u met succes uw toegangsgegevens hebt ingevoerd en bevestigd met de knop [OK], wordt het dialoogvenster voor het maken van een SQL-vraag:
Selecteer in dit dialoogvenster in de kolom "Tabellen" aan de linkerkant de tabel producten_omschrijving van. Dubbelklik vervolgens op alle velden in de kolom "Kolommen" aan de rechterkant totdat je SQL-query compleet is in het tekstveld eronder. De SQL-query zou er nu zo uit moeten zien:
SELECT `products_description`.`taal_id`, `products_description`.`products_description`, `products_description`.`products_id`, `products_description`.`products_keywords`, `products_description`.`products_meta_description`, `products_description`.`products_meta_keywords`, `products_description`.`products_meta_title`, `products_description`.`products_name`, `products_description`.`products_short_description`, `products_description`.`products_url`, `products_description`.`products_viewed` FROM `products_description`.
Nadat u op de knop [Uitvoeren] hebt geklikt, wordt de SQL-query uitgevoerd op de Server en het bekende dialoogvenster voor het toewijzen van de invoervelden uit FileMaker verschijnt nu. Omdat er nog geen tabel bestaat in de nieuwe database, selecteer je rechtsboven onder "Doel" "Nieuwe tabel".
Nadat u op de knop [Importeren] hebt geklikt, maakt FileMaker nu een nieuwe tabel met de oorspronkelijke veldnamen van de tabel uit xt:Commerce en importeert tegelijkertijd alle gegevensrecords in deze tabel. U hebt nu een nieuwe FileMaker-database gemaakt met de tabel Products_description inclusief alle records uit xt:Commerce zonder dat u ook maar één tabel of velddefinitie in FileMaker hoeft te maken!
Als je nu de velden op je nieuwe lay-out een beetje naar wens aanpast, zou je database er nu ongeveer zo uit kunnen zien:
In deze nieuwe database kun je nu naar hartenlust metatags of andere details voor je artikelen bijhouden. Natuurlijk heeft u ook de mogelijkheid om meta data automatisch te laten berekenen. U kunt bijvoorbeeld ook de artikeltabel producten importeren uit xt:Commerce en deze via de primaire sleutel <> koppelen aan de reeds aangemaakte tabel producten_beschrijving. Op deze manier kun je bijvoorbeeld velden automatisch vullen met inhoud met behulp van een automatische berekening ("Veldinhoud vervangen"). Er zijn praktisch geen grenzen aan je mogelijkheden!
Hoe de gegevens terug te krijgen naar de MySQL server
Als u nu met succes de gegevens in uw FileMaker database hebt bewerkt of aangemaakt, wilt u de gegevens natuurlijk terugschrijven naar de online shop. We kunnen dit heel gemakkelijk direct in FileMaker doen als een Script realiseren. Op deze manier heb je ook de optie om één (het geselecteerde) gegevensrecord of alle geselecteerde gegevensrecords tegelijk bij te werken.
Om gegevens naar een SQL-server te schrijven, biedt FileMaker ons in ScriptMaker de opdracht
SQL-query uitvoeren
beschikbaar is. Om bijvoorbeeld de productbeschrijving, d.w.z. het veld <>, op de SQL-server bij te werken, hebben we de volgende opdracht in ScriptMaker nodig:
SQL-query uitvoeren [Zonder dialoogvenster; DSN: YourMySQLServer; Berekende SQL-tekst: "UPDATE `products_description` SET `products_description` = "" & EXCHANGE(xtc_products_description::products_description; """; "") & "" WHERE `products_id` = " & xtc_products::products_id]
Om compatibiliteitsproblemen met de SQL-query te voorkomen, vervangt onze scriptopdracht automatisch dubbele aanhalingstekens (") door enkele aanhalingstekens ('), die mogelijk in de beschrijvingstekst staan. Deze eenvoudige scriptopdracht werkt het veld <> op de SQL-server bij met de inhoud van het veld met dezelfde naam in uw FileMaker-database. Natuurlijk werkt dit met alle velden in de database, inclusief alle metatagvelden.
Als het veld van alle opgeroepen gegevensrecords in FileMaker moet worden bijgewerkt op de SQL-server, kan dit heel eenvoudig worden gerealiseerd met behulp van een lus, bijvoorbeeld als volgt:
Lus (start)
SQL-query uitvoeren [Zonder dialoogvenster; DSN: YourMySQLServer; Berekende SQL-tekst: "UPDATE `products_description` SET `products_description` = "" & EXCHANGE(xtc_products_description::products_description; """; "") & "" WHERE `products_id` = " & xtc_products::products_id]
Ga naar gegevens/query/pagina [Volgende(r); Einde na laatste]
Lus (einde)
Je hebt ook onbeperkte mogelijkheden als het gaat om het bijwerken van gegevensrecords op de SQL-server en je kunt deze functies eenvoudig integreren in je gebruikersinterface. U hoeft geen SQL-crack te zijn om de SQL-query's te gebruiken - voor de hier getoonde oplossing zijn alleen heel eenvoudige SQL-query's nodig. Om bestaande gegevens van FileMaker naar de MySQL database over te zetten, hebt u alleen de SQL-opdracht UPDATE nodig. Met de opdracht WHERE beperking zorgt u ervoor dat alleen de gegevensrecord wordt bijgewerkt waarvan de primaire sleutel <> overeenkomt met die van de opgeroepen gegevensrecord in FileMaker.
Ik hoop dat de tutorial tot dit punt begrijpelijk en begrijpelijk is. In een ander artikel zal ik laten zien hoe je nieuwe gegevens van FileMaker naar een MySQL database schrijft - bijvoorbeeld om leveringsstatussen of andere gegevens van FileMaker direct in MySQL te genereren.

Markus Schall ontwikkelt sinds 1994 databases, interfaces en bedrijfstoepassingen op maat op basis van Claris FileMaker. Hij is Claris-partner, FMM Award-winnaar 2011 en ontwikkelaar van de ERP-software gFM-Business. Hij is ook auteur van boeken en oprichter van de M. Schall Uitgevers.






Bedankt voor het interessante verslag!