Exploitez Filemaker depuis Python

J'ai essayé d'utiliser Filemaker en utilisant Python.

environnement

serveur windows server 2012 R2 Filemaker server 17

client windows 10 pro office 2016

Python 3.8.1 Pycharm Community Edition 2020.2

Chose que tu veux faire

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.

Préparation

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.

Obtenez un jeton d'accès

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.

Rechercher

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 =.

Mise à jour

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.

en conclusion

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

Exploitez Filemaker depuis Python
Faites fonctionner le neutron de Python!
Faire fonctionner LXC depuis Python
Utiliser un écran connecté I2C à partir de Python
Utilisez DynamoDB à partir de Python comme SQL.
sql à sql
MeCab de Python
Exploitez le stockage d'objets cloud de Sakura à partir de Python
Utilisez Thingsspeak de Python
Touchez MySQL depuis Python 3
Manipuler Redmine à l'aide de Python Redmine
Utiliser fluentd de python
Accéder à bitcoind depuis python
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Python depuis ou import
Utilisez MySQL depuis Python
Exécutez Python à partir d'Excel
Installer Python à partir de la source
Utiliser Kinesis avec Python
Exécuter des commandes depuis Python
Utiliser MySQL depuis Python
Faire fonctionner Blender avec Python
Manipuler riak depuis python
Forcer Python depuis Fortran
Utilisez BigQuery depuis Python.
Exécuter la commande depuis Python
Utiliser Excel avec Python (1)
[Python] Lire depuis Stdin
Utilisez mecab-ipadic-neologd de Python
Utiliser Excel avec Python (2)
Faire fonctionner mongoDB à partir de python dans l'environnement ubuntu ① Introduction de mongoDB
[AWS] Exploitez SQS à partir du SDK (envoi / réception) [Python] [Node.js]
Aplatir à l'aide du rendement Python de
Appeler CPLEX depuis Python (DO cplex)
Deep Python appris de DEAP
Exploitez Excel avec Python open pyxl
Publier de Python vers Slack
Exploitez TwitterBot avec Lambda, Python
Fonctionnalités de grammaire ajoutées à partir de Python3.6
Flirter de PHP à Python
Rendre MeCab disponible à partir de Python 3
Informations obtenues à partir de tweet_id (Python)
OCR à partir de PDF en Python
Exécutez le script illustrator à partir de python
Utiliser MySQL depuis Anaconda (python)
Anaconda mis à jour de 4.2.0 à 4.3.0 (python3.5 mis à jour vers python3.6)
Étude de Python Hour4: orientée objet ②
Interroger Athena depuis Lambda Python
Accéder à Oracle DB depuis Python
[Note] Faites fonctionner MongoDB avec Python
Étude de Python Hour3: Fonctions
Démarrer / arrêter GCE à partir de python
Arrêtez Omxplayer à partir du code Python
Passer de python2.7 à python3.6 (centos7)
Connectez-vous à sqlite depuis python
Installez pyenv depuis Homebrew, installez Python depuis pyenv
Étude de Python Hour4: orientée objet ①
Convention de dénomination Python (à partir de PEP8)
[Python] [SQLite3] Exploiter SQLite avec Python (basique)