J'ai essayé d'utiliser Filemaker en utilisant Python.
serveur windows server 2012 R2 Filemaker server 17
client windows 10 pro office 2016
Python 3.8.1 Pycharm Community Edition 2020.2
Recherchez et mettez à jour la base de données appropriée téléchargée sur le serveur Filemaker. Le travail attendu est la maintenance principale. Je pense que Filemaker est souvent utilisé comme CRM, mais je pense que ce serait pratique si le maître pouvait être versé du système comptable. Eh bien, je devrais peut-être le faire à la main.
On suppose que Filemaker Server dispose d'une base de données appropriée. On suppose que des utilisateurs peuvent déjà accéder à cette base de données avec l'API Web publiée. On suppose que le certificat pour la communication SSL n'a pas été installé.
Utilisez les demandes. Veuillez importer.
headers = {'Authorization': 'Basic XXXXXXXXXXXXXXXX', 'Content-Type': 'application/json'}
r_post = requests.post(https://[hostname]/fmi/data/v1/databases/[databasename]/sessions', headers=headers, verify=False)
Ce qui a été écrit dans Excel peut être réalisé en seulement deux lignes! Grand Python. Après Basic, copiez la chaîne encodée idpw base64. Il y a peut-être un meilleur moyen ici. Définissez [hostname] et [databasename] en fonction de votre environnement.
headers = {'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json'}
query = {'query': [{"Search field name": keyword}]} r_post = requests.post( https://[hostname]/fmi/data/v1/databases/[databasename]/layouts/[layoutname]/_find, json=query, headers=headers, verify=False)
C'est très facile. Il semble qu'il existe deux façons de spécifier json et data dans requests.post, mais si Filemaker est l'autre partie, json est facile. Pour le mot-clé de recherche, il semble que vous puissiez utiliser la méthode de spécification dans le mode de recherche de Filemaker, telle que * ou =.
headers = {'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json'}
fieldData = {'fieldData': {'Mettre à jour le nom du champ cible': value1, 'Mettre à jour le nom du champ cible': value2}} r_post = requests.patch(https://[hostname]/fmi/data/v1/databases/[databasename]/layouts/[layoutname]/records/[recordId], json=fieldData, headers=headers, verify=False) Il m'a fallu deux heures pour découvrir que la méthode était patch ... Pas assez de dévotion.
Vous pouvez maintenant lire le fichier CSV ligne par ligne et mettre à jour partiellement la base de données principale sur Filemaker. Si vous souhaitez remplacer toutes les données à la fois, vous n'avez pas à faire cette chose ennuyeuse.
Recommended Posts