Ich habe versucht, Filemaker mit Python zu betreiben.
Server windows server 2012 R2 Filemaker server 17
Klient windows 10 pro office 2016
Python 3.8.1 Pycharm Community Edition 2020.2
Suchen und aktualisieren Sie die entsprechende Datenbank, die auf den Filemaker-Server hochgeladen wurde. Die erwartete Arbeit ist die Hauptwartung. Ich denke, dass Filemaker oft wie CRM verwendet wird, aber ich denke, es wäre praktisch, wenn der Master aus dem Buchhaltungssystem gegossen werden könnte. Na ja, vielleicht sollte ich es von Hand machen.
Es wird davon ausgegangen, dass Filemaker Server über eine geeignete Datenbank verfügt. Es wird davon ausgegangen, dass bereits Benutzer mit der veröffentlichten Web-API auf diese Datenbank zugreifen können. Es wird davon ausgegangen, dass das Zertifikat für die SSL-Kommunikation nicht installiert wurde.
Verwenden Sie Anfragen. Bitte importieren.
headers = {'Authorization': 'Basic XXXXXXXXXXXXXXXX', 'Content-Type': 'application/json'}
r_post = requests.post(https://[hostname]/fmi/data/v1/databases/[databasename]/sessions', headers=headers, verify=False)
Was in Excel geschrieben wurde, kann in nur zwei Zeilen realisiert werden! Großartiger Python. Kopieren Sie nach Basic die mit idpw base64 codierte Zeichenfolge. Hier gibt es vielleicht einen besseren Weg. Stellen Sie [Hostname] und [Datenbankname] entsprechend Ihrer Umgebung ein.
headers = {'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json'}
query = {'query': [{"Name des Suchfelds": Schlüsselwort}]} r_post = requests.post( https://[hostname]/fmi/data/v1/databases/[databasename]/layouts/[layoutname]/_find, json=query, headers=headers, verify=False)
Es ist sehr leicht. Es scheint, dass es zwei Möglichkeiten gibt, json und Daten in request.post anzugeben, aber wenn Filemaker die andere Partei ist, ist json einfach. Für das Suchschlüsselwort können Sie anscheinend die im Suchmodus von Filemaker angegebene Methode verwenden, z. B. * oder =.
headers = {'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json'}
fieldData = {'fieldData': {'Zielfeldname aktualisieren': Wert1, 'Zielfeldname aktualisieren': Wert2}} r_post = requests.patch(https://[hostname]/fmi/data/v1/databases/[databasename]/layouts/[layoutname]/records/[recordId], json=fieldData, headers=headers, verify=False) Ich habe zwei Stunden gebraucht, um herauszufinden, dass die Methode Patch war ... Nicht genug Hingabe.
Jetzt können Sie die vorliegende CSV-Datei Zeile für Zeile lesen und die Master-Datenbank in Filemaker teilweise aktualisieren. Wenn Sie alle Daten auf einmal ersetzen möchten, müssen Sie diese nervige Sache nicht tun.
Recommended Posts