Aller au contenu

Blogs

 

Et voici l’événement annuel FileMaker : la FM Conférence 2018

La semaine qui nous attend est l’un des temps forts de l’année FileMakeurienne… Il s’agit de la conférence annuelle francophone (ou presque) consacrée à FileMaker et s’adressant à tous les développeurs FileMaker qui souhaitent bien sûr connaître les dernières nouveautés et astuces de FileMaker mais également se rencontrer et échanger autour de leur passion commune […]
Afficher la totalité du billet

MagalieJ

MagalieJ

 

QR 91 – Signaler l’arrivée de la fin d’une liste dans FileMaker

Dans notre question du jour, Jean-Louis a une liste d’enregistrements. Jean-Louis souhaite d’une part qu’il soit signalé à l’utilisateur, lorsqu’il arrive en fin de liste, qu’il est en train de traiter le dernier enregistrement et d’autre part, lorsqu’il s’y trouve, de faire disparaître le bouton « Suivant », qui apparaît sur tous les enregistrements et permet effectivement […]
Afficher la totalité du billet

MagalieJ

MagalieJ

 

Dependency Injection in JavaScript, a Node.js example

As developers, we are tasked with reducing complexity. Complexity is all around us, and good code organization reduces complexity while at the same time supporting increased flexibility, ease of change, quicker onboarding, faster debugging, and my favorite, better testing. Reduced Complexity, Better Testing In this article, I discuss one of the widespread strategies for code […]
Afficher la totalité du billet

vincenzo

vincenzo

 

FileMaker Walmart Integration

FileMaker Walmart Integration Walmart is the largest retailer in the world with $485.9 billion in total revenue in 2017, and reaches over 100 million users a month on Walmart.com. This makes Walmart a useful tool to expand your customer base. And with FileMaker, you can streamline the process of working with Walmart.com by integrating your FileMaker app with Walmart Marketplace.  Becoming a Partner with Walmart Before you can connect your FileMaker app with Walmart, you must first have an account. The onboarding process for Walmart Marketplace is free; however it requires you to be approved based on a series of questions about your business. After you submit your application, Walmart will review it and will let you know if you qualify to be a partner and they will give you a sellers account. From there, you will be able to start integrating with the Marketplace API. Getting your Keys to the API Once you are a Walmart partner, the first step of the integration is to generate and obtain your API keys. Go to the Developer Center and select your account. From here you will be able to navigate to the API Keys page. From the API Keys page, you will see your Client ID and Client Secret (if either of these are empty, or you would like them changed, click the Reset Client Id and Client Secret button). You will then need to copy these to use later. Keep the secret in a safe place as this is essentially your password and should not be shared with anyone else. As of September 27th, 2018, Walmart has upgraded their authentication methods to use a token-based authentication vs the signature-based method. This greatly simplifies the authentication while still maintaining a high level of security, so you will want to make sure you grab the right information. Authentication Once you have your API information, you will need to authenticate your solution with Walmart Marketplace API. At a high level, in order to authenticate your solution, you will need to get the token by using an Insert from URL with token address and the correct cURL information. Set Variable [ $url ; Value: "https://marketplace.walmartapis.com/v3/token" ] Set Variable [ $data ; Value: "grant_type=client_credentials" ] Set Variable [ $auth ; Value: Base64Encode ( $clientID & ":" & $clientSecret ) ] Set Variable [ $cURL ; Value: "-X POST" & ¶ & "-H \"Accept: application/json\"" & ¶ & "-H \"Authorization: Basic " & $auth & "\"" & ¶ & "-H \"Content-Type: application/x-www-form-urlencoded\"" & ¶ & "-H \"WM_QOS.CORRELATION_ID: " & $randomString & "\"" & ¶ & "-H \"WM_SVC.NAME: Walmart Marketplace\"" & ¶ & "-H \"WM_SVC.VERSION: 1.0.0\"" & ¶ & "--data @$data" ] Insert from URL [ $result ; $url ; cURL options: $cURL ; Do not automatically encode URL ] The result will be a JSON-formatted text containing an access token. You will need to use this token to make other calls. The token only lasts for 15 minutes, so you will need to repeat this process in your code to get a new token. Making Requests and Parsing the Response Before you make requests, it is important that you understand JSON and cURL. Once you are comfortable with those, look through the Walmart Marketplace Docs. There you will be able to see all of the functions that you can use, such as pulling, tracking, and acknowledging orders, pulling and updating inventory, and more. The Get Inventory request will pull a item by its SKU and return the inventory information. Request: Set Variable [ $url ; Value: "https://marketplace.walmartapis.com/v2/inventory?sku=1234" ] Set Variable [ $cURL ; Value: "-X GET" & ¶ & "-H \"Accept: application/json\"" & ¶ & "-H \"Authorization: Basic " & $auth & "\"" & ¶ & "-H \"WM_QOS.CORRELATION_ID: " & $randomString & "\"" & ¶ & "-H \"WM_SVC.NAME: Walmart Marketplace\"" & ¶ & "-H \"WM_SEC.ACCESS_TOKEN: " & $accessToken & "\"" & ¶ & "-H \"Content-Type: application/x-www-form-urlencoded\"" ] Insert from URL [ $result ; $url ; cURL options: $cURL ; Do not automatically encode URL ] Response: { "sku":"1234" "quantity": { "unit": "EACH", "amount": "0" }, "fulfillmentLagTime":1 } I strongly suggest taking a look at our accompanying example file as certain portions of the API can be a bit tricky. For instance, the API does not handle the standard carriage return FileMaker uses for new lines, so you must use char ( 10 ) to denote a new line in order for the Walmart API to handle the request correctly. Conclusion Integrating your FileMaker app with Walmart Marketplace will streamline your workflow allowing you to take on more orders with the confidence that you will still make your deadlines. Feel free to contact us if you need further assistance or to discuss getting your Walmart account integrated with FileMaker. Download FileMaker Walmart Marketplace Integration Database Please complete the form below to download your FREE FileMaker database file. Name* First Last Company Phone* Email* Deployment Assistance?Please contact us to assist integrating into your FileMaker Database. Yes Terms of Use I agree OPT-IN: I agree that I am downloading a completely free FileMaker application file with no strings attached. This database is unlocked, and I may use it for my business or organization as I see fit. Because I am downloading a free database, I agree that I should receive occasional marketing. I understand that I can OPT-OUT of these emails at anytime.
Afficher la totalité du billet

DB Services

DB Services

 

La fracture numérique concerne-t-elle aussi FileMaker ?

Une nouvelle source d’exclusion massive… Aujourd’hui, 7% de la population française, âgée de 18 à 65 ans et ayant été scolarisée est considérée comme illettrée. Je n’ai pas les chiffres concernant l’analphabétisme, sachant qu’illettrisme et analphabétisme ne recouvrent pas tout à fait la même réalité mais que dans les deux cas, cela aboutit nécessairement à une […]
Afficher la totalité du billet

MagalieJ

MagalieJ

 

Faux Subsummaries via JSON + Virtual List

Today we’re going to take another look at a challenge we discussed last time (in Conditional Summary Report Header)… namely how to cajole FileMaker into displaying a subsummary, or a reasonable facsimile thereof, at the top of a report page when items in the group begin on an earlier page. Demo file: Faux Subsummaries via […]
Afficher la totalité du billet

FileMaker Hacks

FileMaker Hacks

 

Suivi technique, tutoriels et versions FileMaker…

Banalisation des nouvelles versions de FileMaker ? Sortie de FileMaker 17, mises à jour mineures, obsolescence de FileMaker 14, proposition de 2 licences pour le prix d’une seule, l’actualité FileMaker est importante ces derniers temps… Ou, je devrais plutôt dire, l’actualité concernant les versions de FileMaker… Et de fait, avec un rythme accéléré de parution, […]
Afficher la totalité du billet

MagalieJ

MagalieJ

 

Tableau to FileMaker | Scheduled Extracts

Once you have crafted a Tableau dashboard, pulling data from your FileMaker solution, then your next goal might be to make sure the dashboard data gets refreshed at regular intervals, and in an efficient manner. And that is what we’ll do in this blog post. Avoiding the Data Traffic Jam If you have never been […]
Afficher la totalité du billet

vincenzo

vincenzo

 

Accessing Google Services - Part 3

Having made the connection to Google's Services using Oauth 2, and spending a touch of time investigating how we can discover documents within Google Drive, we're in the home stretch of reading and writing data to a Google Sheet. By simplifying the way we make API calls to any of Google's services, we end up with a great solution for working with any of Google's available APIs. Also, by focusing on the simple example of working with one simple Google Sheet, we end up capturing data via a Google Form which dumps data into the Google Sheet. All we need to do is read and write to that sheet. This video covers the topic of watching for an expired access token and making sure that each call to the API has the greatest chance of success. Within no time you'll be reading and writing to a Google Sheet as if everything was right there within FileMaker Pro itself! Click the title or link to this article to view the video.
Afficher la totalité du billet
 

QR 90 – Rappeler le solde précédent dans FileMaker

Vendredi dernier, je rappelais dans mon article qu’un peu partout, on trouve dans nos bases FileMaker des listes. Nous avons rappelé qu’il pouvait s’agir de listes d’enregistrements ou de listes de valeurs contenues dans une rubriques ou proposées comme aide à la saisie… Alors justement, la question de Richard se situe dans le cadre d’une liste […]
Afficher la totalité du billet

MagalieJ

MagalieJ

 

Promotion 2 FileMaker Pro Advanced pour le prix d’1…

Voilà que l’éditeur FileMaker revient comme désormais chaque année avec une promotion très intéressante pour ceux parmi vous qui ont besoin d’acquérir deux licences FileMaker Pro Advanced et qui ne peuvent prétendre à un prix mise à jour (parce que leur version FileMaker est trop vieille) ou qui ne bénéficient pas d’un contrat par ailleurs… […]
Afficher la totalité du billet

MagalieJ

MagalieJ

 

Portal Column Techniques: Sort, Filter, and Batch Update

FileMaker Portal Columns I was recently asked to sort portal columns for a client, and I figured there has to be a newer and cooler technique out there to accomplish portal sort than when I did it last. I reached out to the other FileMaker developers at Soliant, and I got a great sample file from Ross Johnson. He shared a really cool technique with me, crediting mr_vodka (sounds like a fun guy!). Read mr_vodka’s original post here. For my client, I was also asked to filter the portal and batch update columns. The end product came out pretty cool, so I decided to create a sample file with all these techniques put together in one file to share with the FileMaker community. The data in my sample file is from Mislav Kos' post: Test Data Generator Figure 1 - Portal with filters and batch update columns Expand image Get the Demo File Download the demo file to follow along with the instructions outlined below. Sort Here’s the step to complete the portal sort. You’ll need to use the sample file to copy and paste some components.
Copy the field “zz_portal_sort_c” into your solution. You’ll need to copy it into the table on which your portal is based on. Open the field definition for zz_portal_sort_c. The only update you’ll need to make to this calculation is set the let variable “id” to the primary key of your table. For example, if your primary key is something like “_kp__ContactID” you’ll need to have “id = ¶ & _kp__ContactID & ¶ ;” (see Figure 2) Figure 2 – Set the let variable ID Expand image NOTE: Be sure this calculation returns a number (see Figure 3), that’s very important!
Figure 3 – Select “Number” for the calculation result Next, copy script “sortRecords ( field { ; object } )” into your app. You’ll need to update line 51 and change “ID” in the executeSQL statement to use your primary key field for the table on which your portal is based (see Figure 4) Figure 4 - Update Line 51 in the script Expand image You should also update line 6 (the header information) to reflect that you added this script to the file, and the date you did. Back in your layout, update your portal to sort by the new field you just added to the table. Figure 5 - Update your portal sort Expand image Name the portal object “portal”. If you prefer a different object name, it can be anything you’d like, but you’ll need to update almost all the scripts for this demo to reflect the new portal object name. Figure 6 – Name the portal object You can now assign the script to your labels with a parameter of: “List ( GetFieldName ( <table>::<field> ) ; "portal" )”. I also added some conditional formatting to the label to turn the label bold when the column is sorted. Additionally, as a visual cue that the sort is bidirectional, I added an up and down arrow for each column and assigned a conditional hide to it. You can copy and paste the buttons to use in your solution, and then update the hide calculation to use your fields. And that’s it! Once it’s all set up, sorting for each column should work. One thing I want to note: this method assumes that the relationship is one-to-many. I tried it using a Cartesean join, and it broke the sort. I haven’t tried anything more complicated than a one to many. Filter Columns Filtering each column allows the user to do an “AND” search in the portal, which means that your user can filter on multiple criteria. If you used a single search bar to filter, then it is considered an “OR” search. To be honest, I haven’t researched if there’s a better technique out there. This method made logical sense to me when I wrote it, and lucky for me it worked. If you know of a better approach to use, I’d love to hear it; please leave a comment below. Here are the steps to complete this filter technique: Create global fields for every column you’d like to filter. Figure 7 - Create global fields Place those fields on the layout Figure 8 - Place the fields on the layout Expand image Add the script “Trigg_CommitRefresh” to your script workspace and then assign that script as a trigger to the filter fields with a trigger type of OnObjectExit. This script trigger will only commit the record and refresh the portal every time a user exits a filter field. In this case, gender is a little different; it uses an OnObjectModify. You’ll learn why gender is different a little further down in this post. Now we update filter calculation for the portal. You can copy the code from the filter calculation into your portal calculation and then update it in your file to match your fields. The filter calculation is a single let statement that has four parts: Define “AllClear”, which is a flag that checks if all the globals are empty Define which filters have any text in them. In other words, which filters are being enacted by the user Define each filter result at the record level. If the user entered text to filter, does the current record pass that filter, and therefore returns 1, or that record getting filtered out and returns null? Finally, we compare our results. If AllClear is true, then always show the record (return 1). Otherwise, let’s count up how many filters the user is trying to complete, and count up how many columns pass the filter for the given record. If these two sums match, then the record passes the filter check. If not, then the current record has been filtered out. You’ll need to update the following for this calculation to work in your file: The globals you’d like to filter within the “All Clear” definition The filter check section: Filter<FieldName> = not IsEmpty (<Table>::<FilterGlobal> ) The filter result section: Filter<FieldName>_R = If( Filter<FieldName>; PatternCount ((<Table>:: <FieldName>; <Table>:: <FilterGlobal>)> 0) NOTE: You’ll notice the gender result is a little different, see item V. below which explains why. The results comparison will need to be updated: If( AllClear; 1; Filter<FieldName1> + Filter<FieldName2>….. =  Filter<FieldName1_R > + Filter<FieldName2_R>….. ) Gender Difference: For most of these filters, I’m using the patterncount() function because I want to include partial matches. However, with gender, if I searched for “male,” I would always get male and female results since the string “male” is inside the string “female.” Since in this case there are only two options, I turned the filter into a radio button so that I don’t have to worry about partial word entries and now I can make a complete word comparison in the calculation. That’s why gender does not use patterncount() and instead uses “=” to see if the filter and the value are identical. Batch Update The batch update feature goes hand in hand with filtering – the user will filter the data and then perform a batch update. When completing this feature, I figured there are two ways to accomplish it: go to related records in a new window and perform a replace field contents, or loop through the portal itself. I decided to loop through the portal because I liked that you don’t have to leave the current window. However, both methods would accomplish the same goal, and if you have a lot of related records to be updated, the replace field contents might be a little faster. But for a typical use case, looping through the portal works well. To complete the batch column update, you’ll need to copy over the script “BatchUpdate (field)” into your file. If you haven’t already, you’ll need to name your portal object “portal” for this script to work. You should also update the history in the script header to communicate that you added this script to your file and when you added it. I recommend duplicating line 3 and then adding your name/email, the current date, and a note about how you copied this script into the file. The rest of the script is ready for use. If you’d like, you can customize the dialog in step 9. Now you’ll need to add the batch buttons to the layout. Your button will call the BatchUpdate script you just copied over and will pass the parameter of the field you’d like to update, in quotes. That’s the summary of how these three features are set up in the sample file. I hope you find it useful.
Figure 9 – Button setup Questions? Leave a comment below or if you need help with your FileMaker solution, please contact our team. The post Portal Column Techniques: Sort, Filter, and Batch Update appeared first on Soliant Consulting.
Voir le billet d'origine
 

FileMaker Portal Columns: Sort, Filter, and Batch Update Demo

Take Your Portals to the Next Level FileMaker portals are invaluable for showing related data; there are several techniques for enhancing their functionality. Our demo contains three methods for adding the ability to sort, filter, and batch update portals. Follow along with our step-by-step guide and get started with expanding the functionality of the portals in your FileMaker solution.
Complete the form to receive the demo file: Trouble with this form? Click here. The post FileMaker Portal Columns: Sort, Filter, and Batch Update Demo appeared first on Soliant Consulting.
Voir le billet d'origine
 

Celebrating 10 Years!

A decade of discovery, inspiration, hard-work, and coffee. I remember the first time I had ever heard of FileMaker®. It was 1996 and I was sitting in the office at Cape Cod Life magazine with a list of instructions on to how to print the labels for a mailing list in FileMaker 2.1. I [...] The post Celebrating 10 Years! appeared first on The Scarpetta Group, Inc..
Afficher la totalité du billet
 

Les moteurs de recherche de FileMaker (5)

Deux autres outils « invisibles » pour circuler parmi les modèles Ces deux autres outils nous rappellent ceux nous permettant de « trouver » une rubrique puisqu’il s’agit, comme tantôt, de saisir la première lettre du nom d’un modèle : FileMaker sélectionne alors le nom le plus proche de là où se trouvait le curseur de la souris. Par […]
Afficher la totalité du billet

MagalieJ

MagalieJ

 

AD Bound macOS Systems not Authenticating? Restart opendirectoryd

We have quite a few macOS systems that are bound to our AD (Active Directory) domain. Occasionally, one, two, or perhaps several would lose the ability to authenticate users with AD credentials. Often this was with one of our FileMaker database servers, where the external authentication was being used for either database access or FMS […]
Afficher la totalité du billet

vincenzo

vincenzo

 

Apple Maps in FileMaker With MapKit JS

Recently we were asked: “Can you use Apple Maps inside FileMaker, rather than using Google Maps or MapQuest?” We decided to give it a shot, thanks to MapKit JS, the JavaScript implementation of the MapKit library widely used on macOS and iOS. Here is a technique our FileMaker and JavaScript development teams designed to enable […]
Afficher la totalité du billet

vincenzo

vincenzo

 

Listes et listes de valeurs dans FileMaker…

La finalité d’une base de données relationnelle est bien entendu de pouvoir saisir, importer, récupérer des données et de pouvoir les stocker là. Mais elle est également de donner la possibilité de les utiliser. La partie « structure » de notre base se préoccupe de leur organisation : on crée des tables, des rubriques, des liens pour […]
Afficher la totalité du billet

MagalieJ

MagalieJ

 

Accessing Google Services - Part 2

This video is a continuation of the first video in this series where we took a look at connecting to Google's myriad of available services. Once you know how to make the secure connection which Google requires, you can access all the possible services. The trick with working with web services, such as Google or AWS, is that you need to become familiar with how FileMaker requests data and then process the response. We tackle that task within this video then move on to working with Google Drive in order to determine which file it is we want to work with. After making a successful connection we also need to know how to maintain or re-establish that connection. Google doesn't keep the door open forever you know. So, settle in for another longer, but valuable exploration of connecting to Google's services. Click the title or link to this article to view the video.
Afficher la totalité du billet
 

Using FileMaker as a Low-Code/No-Code Platform for RAD Development

If you’re running a small or mid-sized business, you’ve probably discovered that the price of enterprise software makes you cringe. It often just doesn’t fit into your budget. You need to automate and streamline your business processes, but you don’t want to take out a loan to do it. On the other hand, if [...] The post Using FileMaker as a Low-Code/No-Code Platform for RAD Development appeared first on The Scarpetta Group, Inc..
Afficher la totalité du billet
 

Les moteurs de recherche de FileMaker (4)

Dans cette petite série d’articles, nous partons explorer un terrain de FileMaker qui attire peu l’attention. Il est vrai que sa méconnaissance n’entraîne pas vraiment à conséquence 😉 À travers des outils souvent négligés, nous partons simplement à la pêche de tout ce qui peut nous faire gagner un peu de temps dans notre travail. […]
Afficher la totalité du billet

MagalieJ

MagalieJ

×