Dans un Zapier, j'utilise un appel GET de l'API vers Tsheets pour obtenir une liste de feuilles de temps. Je voudrais diviser chaque feuille de temps en postes de ligne, comme les postes de ligne dans une facture Xero, car je voudrais enregistrer les données de chaque feuille de temps dans sa propre ligne dans une feuille Google. (Idéalement, je voudrais sauvegarder les données de ligne directement dans une base de données MySQL, mais je vois que Zapier ne prend actuellement en charge que les feuilles Google sauvegardant plusieurs lignes à la fois). Cependant, je n'ai aucun plaisir à le faire. Je soupçonne l'un des deux problèmes suivants :
- Zapier attend le mot lineitems dans la réponse ou
- Le format de la réponse n'est pas correct - il semble que j'aie deux catégories de "résultats".
Dans mon étape de configuration de la rangée de feuilles de calcul de Google Sheets, je n'obtiens pas une sélection d'éléments séparés par des virgules comme le montre l'exemple illustré ici : Ajoutez une application d'action qui prend en charge les postes, et chaque poste sera sauvegardé individuellement. L'image provient de cette page : https://zapier.com/blog/formatter-line-item-automation/ avec la légende "Ajouter une application d'action qui supporte les articles de ligne, et chaque article sera sauvegardé individuellement" Pour ce que je reçois voir la photo https://cdn.zapier.com/storage/photos/f055dcf11a4b11b86f912f9032780429.png Dans l'étape qui renvoie les données de l'API, la réponse textuelle est affichée dans le tableau suivant https://cdn.zapier.com/storage/photos/33129fb7425cfae44be4a81533d6e892.png et si je renvoie des données json, c'est comme ça : https://cdn.zapier.com/storage/photos/34da1b98f8941324c35befef8efe350d.png
Quelqu'un peut-il confirmer que mes soupçons sont corrects et si 1 ou 2 est le coupable probable ?
Est-il possible que ce lien Zapier - Catch Hook - JSON Array - Boucle sur chaque élément du tableau me conduira à la solution ? On dirait que oui, mais je ne vois pas exactement comment l'auteur l'a incorporé dans son Zap.
Edit : Mes données renvoyées par l'API ressemblent à ceci :
{
"results": {
"timesheets": {
"11515534": {
"id": 11515534,
"user_id": 1260679,
"jobcode_id": 11974818,
"start": "2018-07-13T14:58:00+10:00",
"end": "2018-07-13T14:58:00+10:00",
"duration": 0,
"date": "2018-07-13",
"tz": 10,
"tz_str": "Australia\/Brisbane",
"type": "regular",
"location": "(Brisbane, Queensland, AU?)",
"on_the_clock": false,
"locked": 0,
"notes": "",
"customfields": {
"118516": "",
"121680": "",
"118530": "",
"118518": "Field supplies, materials"
},
"last_modified": "2018-07-13T04:59:27+00:00",
"attached_files": [
]
},
"11515652": {
"id": 11515652,
"user_id": 1260679,
"jobcode_id": 11974830,
"start": "2018-07-13T14:59:00+10:00",
"end": "2018-07-13T14:59:00+10:00",
"duration": 0,
"date": "2018-07-13",
"tz": 10,
"tz_str": "Australia\/Brisbane",
"type": "regular",
"location": "(Brisbane, Queensland, AU?)",
"on_the_clock": false,
"locked": 0,
"notes": "",
"customfields": {
"118516": "",
"121680": "",
"118530": ""
},
"last_modified": "2018-07-13T05:00:30+00:00",
"attached_files": [
]
},
"39799840": {
"id": 39799840,
"user_id": 1260679,
"jobcode_id": 19280104,
"start": "2018-10-24T11:45:00+11:00",
"end": "2018-10-24T12:00:00+11:00",
"duration": 900,
"date": "2018-10-24",
"tz": 11,
"tz_str": "Australia\/Brisbane",
"type": "regular",
"location": "(Sydney, New South Wales, AU?)",
"on_the_clock": false,
"locked": 0,
"notes": "",
"customfields": {
"118516": "",
"121680": "FP - Field plant Installation",
"118530": "Site cleanup"
},
"last_modified": "2018-10-24T05:56:27+00:00",
"attached_files": [
]
},
"39801850": {
"id": 39801850,
"user_id": 1260679,
"jobcode_id": 19280204,
"start": "2018-10-24T12:00:00+11:00",
"end": "2018-10-24T13:45:00+11:00",
"duration": 6300,
"date": "2018-10-24",
"tz": 11,
"tz_str": "Australia\/Brisbane",
"type": "regular",
"location": "(Sydney, New South Wales, AU?)",
"on_the_clock": false,
"locked": 0,
"notes": "",
"customfields": {
"118516": "",
"121680": "OP - Plant, Vehicles",
"118530": "Load\/Unload"
},
"last_modified": "2018-10-24T05:57:04+00:00",
"attached_files": [
]
},
"40192757": {
"id": 40192757,
"user_id": 1260679,
"jobcode_id": 19280110,
"start": "2018-10-25T08:00:00+11:00",
"end": "2018-10-25T10:00:00+11:00",
"duration": 7200,
"date": "2018-10-25",
"tz": 11,
"tz_str": "Australia\/Brisbane",
"type": "regular",
"location": "TSheets Android App",
"on_the_clock": false,
"locked": 0,
"notes": "From my mobile",
"customfields": {
"118516": "",
"121680": "FW - Plant Assembly",
"118530": "Panels"
},
"last_modified": "2018-10-24T23:02:56+00:00",
"attached_files": [
]
},
"40193033": {
"id": 40193033,
"user_id": 1260679,
"jobcode_id": 19280108,
"start": "2018-10-25T10:00:00+11:00",
"end": "2018-10-25T10:00:00+11:00",
"duration": 0,
"date": "2018-10-25",
"tz": 11,
"tz_str": "Australia\/Brisbane",
"type": "regular",
"location": "TSheets Android App",
"on_the_clock": false,
"locked": 0,
"notes": "",
"customfields": {
"118516": "",
"121680": "FW - Plant Assembly",
"118530": "Panels"
},
"last_modified": "2018-10-24T23:06:05+00:00",
"attached_files": [
]
}
}
},
"more": false
}
Et voici mon code Python : https://imgur.com/a/8W1X1em