API des Rendez-vous
đ Pourquoi utiliser lâAPI des Rendez-vous?â
Les rendez-vous sont au cĆur des opĂ©rations dâentrepĂŽt dans DataDocks. Ils reprĂ©sentent les crĂ©neaux horaires planifiĂ©s Ă vos quais ou dans votre cour pour la rĂ©ception ou lâexpĂ©dition dâinventaire. LâAPI des rendez-vous vous offre un contrĂŽle programmatique sur lâensemble de votre flux de planification dâentrepĂŽtâde la rĂ©servation des crĂ©neaux au suivi des mouvements de camions, jusquâĂ la finalisation des expĂ©ditions.
ProblĂšmes rĂ©els rĂ©solus par cette APIâ
- Ăliminer la double saisie : Synchronisez directement les rendez-vous entre votre ERP/WMS et DataDocks
- Réduire la surcharge de communication : Automatisez les notifications entre le personnel d'entrepÎt et les transporteurs
- Optimiser lâutilisation des quais : Planifiez les rendez-vous de façon programmatique pour maximiser lâefficacitĂ©
- Suivre les indicateurs clĂ©s en temps rĂ©el : Surveillez la ponctualitĂ©, les temps dâattente et le dĂ©bit
- Améliorer la visibilité : Offrez aux transporteurs et clients un accÚs en libre-service au statut des rendez-vous
DĂ©marrage rapide en 5 minutesâ
Vous voulez voir lâAPI en actionâ? Suivez ces Ă©tapes pour crĂ©er votre premier rendez-vousâŻ:
- Demandez et obtenez votre jeton API auprĂšs du support
- Trouvez votre sous-domaine dâemplacement (par ex.,
votre-entrepot.datadocks.com) - Créez un rendez-vous de base avec cette commande :
Voir lâexemple cURL pour dĂ©marrage rapide
curl -X POST \
https://your-warehouse.datadocks.com/api/v1/appointments \
-H 'Authorization: Token VOTRE_JETON_API' \
-H 'Content-Type: application/json' \
-d '{
"appointment": {
"scheduled_at": "2023-12-15T10:00:00-05:00",
"duration": 60,
"dock_name": "Quai 1",
"shipping_number": "EXP-12345"
}
}'
- VoilĂ âŻ! Vous avez créé votre premier rendez-vous. VĂ©rifiez votre tableau de bord DataDocks pour le voir.
Aperçu de lâarchitecture de lâAPIâ
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â Votre systĂšme ââââââââ¶â API DataDocks ââââââââ¶â OpĂ©rations EntrepĂŽt â
â (ERP/WMS/TMS) ââââââââ†(REST/JSON) ââââââââ†(Planification) â
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â âČ
â â
⌠â
âââââââââââââââââââ
â Applis Transporteurs â
â (Enregistrement) â
âââââââââââââââââââ
Authentificationâ
Toutes les requĂȘtes API doivent inclure votre jeton API dans lâen-tĂȘte AuthorizationâŻ:
Authorization: Token VOTRE_JETON_API
Les jetons dâAPI sont spĂ©cifiques Ă chaque organisation et apparaĂźtront dans les journaux dâaudit comme «âŻDatadocks API - VOTRE_NOM_ORGâŻÂ».
Limitations importantesâ
- Les rendez-vous rĂ©currents ne peuvent pas ĂȘtre créés ou modifiĂ©s via lâAPI
- La suppression de rendez-vous nâest pas prise en charge via lâAPI (utilisez lâannulation Ă la place)
- Les paramĂštres DateTime doivent ĂȘtre correctement formatĂ©s avec lâinformation de fuseau horaire
- Seuls les rendez-vous non récurrents sont retournés par les endpoints de listes
Lister les Rendez-vousâ
Objectifâ
RécupÚre une liste paginée de rendez-vous, avec possibilité de filtrage par plage de dates ou par numéro de bon de commande. Utilisez ce endpoint pour synchroniser les rendez-vous avec vos systÚmes ou générer des rapports.
Cas dâutilisation mĂ©tierâ
- Synchroniser les rendez-vous avec votre WMS ou TMS pour la semaine Ă venir
- Générer des rapports sur les expéditions à venir par quai ou transporteur
- Afficher les rendez-vous sur un tableau de bord avec suivi du statut
- Suivre des indicateurs tels que ponctualitĂ©, temps dâattente et taux dâutilisation des quais
RequĂȘte HTTPâ
GET https://[location_subdomain].datadocks.com/api/v1/appointments
ParamĂštres de requĂȘteâ
| ParamĂštre | Type | Requis | Description | Exemple |
|---|---|---|---|---|
page | Integer | Non | Numéro de page pour la pagination (défaut : 1) | page=2 |
po_number | String | Non | Filtre par numéro de bon de commande (sensible à la casse, concordance exacte) | po_number=PO-12345 |
from | String | Non | Filtre les rendez-vous planifiĂ©s Ă partir de cette date/heure (fuseau de lâemplacement) | from=2023-10-01 08:00 AM |
to | String | Non | Filtre les rendez-vous planifiĂ©s avant cette date/heure (fuseau de lâemplacement) | to=2023-10-05 06:00 PM |
Format de la rĂ©ponseâ
La rĂ©ponse contient un tableau paginĂ© dâobjets rendez-vous, chacun avec les champs suivantsâŻ:
| Champ | Type | Description |
|---|---|---|
id | Integer | Identifiant unique du rendez-vous |
appointment_number | Integer | Numéro de rendez-vous facile à lire |
state | String | Ătat actuel du rendez-vous (ex.âŻ: «âŻscheduledâŻÂ», «âŻarrivedâŻÂ», «âŻcompletedâŻÂ») |
duration | Integer | Durée en minutes |
scheduled_at | String | Horodatage ISO8601 de la planification du rendez-vous |
shipping_number | String | NumĂ©ro de rĂ©fĂ©rence pour lâexpĂ©dition |
trailer_number | String | NumĂ©ro dâidentification de la remorque |
bol_number | String | Numéro du connaissement (BOL) |
carrier_name | String | Nom de lâentreprise de transport |
carrier_number | String | Identifiant du transporteur dans votre systĂšme |
driver_name | String | Nom du chauffeur |
driver_phone | String | Téléphone du chauffeur |
driver_email | String | Courriel du chauffeur |
created_by | String | Nom de lâutilisateur ayant créé le rendez-vous |
outbound | Boolean | Rendez-vous sortant (true) ou entrant (false) |
drop_trailer | Boolean | Sâil sâagit dâun rendez-vous de dĂ©pĂŽt de remorque |
queued | Boolean | Si ce rendez-vous est en file dâattente |
dock_name | String | Nom du quai assigné (null si la cour assignée) |
yard_name | String | Nom de la cour assignée (null si le quai assigné) |
internal_id | String | Identifiant interne pour ce rendez-vous |
free_until | String | Horodatage ISO8601 de libération du quai/cour |
approved_at | String | Horodatage ISO8601 dâapprobation du rendez-vous |
arrived_at | String | Horodatage ISO8601 de lâarrivĂ©e du rendez-vous |
started_at | String | Horodatage ISO8601 du début des opérations |
completed_at | String | Horodatage ISO8601 de fin des opérations |
left_at | String | Horodatage ISO8601 de départ |
cancelled_at | String | Horodatage ISO8601 dâannulation (null si actif) |
custom_values | Object | Paires clé/valeur de champs personnalisés |
checklist_values | Object | Paires clĂ©/valeur dâitems de liste de contrĂŽle |
packing_lists | Array | Listes dâobjets de listes dâemballage associĂ©es au rendez-vous |
notes | Array | Liste de notes associées |
documents | Array | Liste de documents associés |
(Le contenu des blocs de code, exemples cURL ou JavaScript, ainsi que les objets JSON doivent ĂȘtre traduits uniquement au niveau des commentaires. Les clĂ©s/champs/restent en anglais, seuls les commentaires ou le contexte autour des exemples doivent ĂȘtre en français.)
Exemples de codeâ
cURLâ
Voir lâexemple cURL
# Liste de base
curl -H "Authorization: Token VOTRE_JETON_API" \
https://VOTRE_EMPLACEMENT.datadocks.com/api/v1/appointments
# Filtré par plage de dates et bon de commande
curl -H "Authorization: Token VOTRE_JETON_API" \
"https://VOTRE_EMPLACEMENT.datadocks.com/api/v1/appointments?from=2023-10-01%2008:00%20AM&to=2023-10-05%2006:00%20PM&po_number=PO-12345"
JavaScriptâ
Voir lâexemple JavaScript
// Utilisation de fetch API avec filtres
const getAppointments = async (fromDate, toDate, poNumber) => {
// ...pas de modification
};
Exemple de rĂ©ponseâ
Voir exemple de réponse
[
{
"id": 1,
"appointment_number": 1,
"state": "left",
"duration": 120,
"shipping_number": "57886",
"trailer_number": "2222222",
"bol_number": "922",
"carrier_name": "FastCo",
"carrier_number": "FC123",
"driver_name": "Jason Smith",
"driver_phone": "+1 (555) 123-4567",
"driver_email": "jason.smith@fastco.example.com",
"created_by": "Sysadmin",
"outbound": false,
"drop_trailer": false,
"queued": false,
"dock_name": "Dock 2",
"yard_name": null,
"internal_id": "ERP-A12345",
"free_until": null,
"scheduled_at": "2020-09-30T06:00:00-04:00",
"approved_at": "2020-09-22T13:35:00-04:00",
"arrived_at": null,
"started_at": "2020-09-24T13:35:00-04:00",
"completed_at": "2020-09-24T13:35:00-04:00",
"left_at": "2020-09-25T13:35:00-04:00",
"cancelled_at": null,
"custom_values": {
"expected_at": "2020-10-01",
"travel_type": "Truck",
"forklift_operator": "Sue",
"inspection_passed": "1"
},
"checklist_values": {
"safety_check": "Passed",
"dock_seal_status": "Good",
"temperature": "-5"
},
"packing_lists": [
{
"id": 4,
"po_number": "A-2000",
"customer_name": "FishCo",
"customer_number": "FC001",
"product_name": "Trout",
"unit_name": "Skid",
"booked_quantity": 10,
"booked_weight": 152,
"actual_quantity": 12,
"actual_weight": 160,
"custom_values": {
"barcode": "11223344",
"dimensions": "S",
"temperature_celcius": "-5"
}
}
],
"notes": [
{
"id": 3,
"body": "First note."
}
],
"documents": []
}
]
Paginationâ
La rĂ©ponse est paginĂ©e pour mieux gĂ©rer le volume de donnĂ©es. Pour plus dâinformations sur la pagination, consultez la documentation sur la pagination.
PiĂšges courants et dĂ©pannageâ
-
ProblĂšmes dâanalyse de date/heureâŻ: les paramĂštres
fromettosont interprĂ©tĂ©s selon le fuseau horaire de lâemplacement. Assurez-vous de toujours fournir lâinformation de fuseau horaire pour Ă©viter des rĂ©sultats inattendus.â Bon : from=2023-10-01T08:00:00-04:00
â Bon : from=2023-10-01 08:00 AM EDT
â Mauvais : from=2023-10-01 -
Filtrage par numĂ©ro de commandeâŻ: la recherche nâest pas sensible Ă la casse, mais la correspondance doit ĂȘtre exacte. Les correspondances partielles ne fonctionnent pas.
â Fonctionnera : po_number=PO-12345
â Fonctionnera : po_number=po-12345 (sans sensibilitĂ© Ă la casse)
â Ne fonctionnera pas : po_number=12345 (partiel) -
Format de date incorrectâŻ: lâAPI ne retourne pas dâerreur de validation pour un format de date incorrect. Assurez-vous que vos chaĂźnes de date sont bien formatĂ©es.
-
Rendez-vous non rĂ©currents uniquementâŻ: seul ce type de rendez-vous est retournĂ© par ce endpoint.
-
ConsidĂ©rations de performanceâŻ: pour de grandes plages de dates, privilĂ©giez des requĂȘtes sur des pĂ©riodes plus courtes (ex.âŻ: par semaine au lieu du mois entier).
CrĂ©ation dâun Rendez-vousâ
Objectifâ
CrĂ©er un nouveau rendez-vous sur un quai ou une cour, avec listes dâemballage et mĂ©tadonnĂ©es facultatives. Câest la mĂ©thode principale de planification depuis votre systĂšme.
Arbre de dĂ©cisionâŻ: quand crĂ©er via lâAPIâ
âââââââââââââââââââ
â Besoin de planifier â
â un rendez-vousâŻ? â
ââââââââââŹâââââââââ
â
âŒ
âââââââââââââââââââââââââââ Oui âââââââââââââââââââ
â Cela fait-il partie ââââââââââ¶â Utilisez lâinterface â
â dâun motif rĂ©currentâŻ? â â de rĂ©servation standard â
ââââââââââŹââââââââââââââââ âââââââââââââââââââ
â Non
âŒ
ââââââââââââââââââââââ Oui âââââââââââââââââââ
â CrĂ©ez-vous beaucoupââââââââââ¶â Utilisez lâimport â
â de rendez-vous en â â en lot via le web â
â une seule foisâŻ? â âââââââââââââââââââ
ââââââââââŹâââââââââââ
â Non
âŒ
âââââââââââââââââââ
â Parfait pour â
â lâAPIâŻ! â
âââââââââââââââââââ
Cas dâutilisation mĂ©tierâ
- IntĂ©gration systĂšmeâŻ: Planifier depuis ERP, WMS ou TMS
- Planification automatisĂ©eâŻ: CrĂ©er selon les rĂšgles mĂ©tier ou des dĂ©clencheurs
- Libre-service transporteursâŻ: Permettre la rĂ©servation via leur portail
- Applications mobilesâŻ: Permettre la crĂ©ation depuis mobiles dâentrepĂŽt
- ExĂ©cution de commandesâŻ: GĂ©nĂ©rer un rendez-vous sortant quand la commande est prĂȘte
RequĂȘte HTTPâ
POST https://[location_subdomain].datadocks.com/api/v1/appointments
Corps de la requĂȘteâ
(Voir tableau original â les champs, contraintes et exemples sont identiques. Traduisez les titres/entĂȘtes, contextualisez les exemples.)
* Soit dock_name, soit yard_name est généralement requis, selon la configuration de votre emplacement.
** Peut ĂȘtre requis selon les prĂ©fĂ©rences dâemplacement
Approbation automatique des rendez-vousâ
Par dĂ©faut, selon les paramĂštres de votre emplacement, les rendez-vous créés via API peuvent ĂȘtre approuvĂ©s automatiquement si scheduled_at est prĂ©sent. Pour modifier ce comportement, contactez le support.
Format liste dâemballageâ
(Lâexemple JSON reste aussi, seul le commentaire gĂ©nĂ©ral est adaptĂ©.)
DĂ©tails des champs de liste dâemballageâ
(Voir le tableau original. Les titres et explications sont traduits, les clés restent identiques.)
Logique dâaffectation clientâ
Lorsque vous crĂ©ez une liste dâemballage, fournissez soit customer_name, soit customer_number, soit les deuxâŻ:
- Si seul
customer_numberest fourni, le systĂšmeâŻ:- Cherche une correspondance sur le numĂ©ro dâentreprise
- Sâil trouve, il remplit automatiquement nom et ID du client
- Sinon, il renseigne
customer_nameavec le numéro fourni
Traitement des produits et unitĂ©sâ
La correspondance se fait sans tenir compte de la casse. Si le produit ou lâunitĂ© nâexiste pas et que la validation automatique nâest pas dĂ©sactivĂ©e, vous obtiendrez une erreur. Pour activer la crĂ©ation automatique, contactez le support.
Format de noteâ
{
"body": "Le chauffeur nécessite un hayon élévateur"
}
Les notes sont attachĂ©es automatiquement Ă lâutilisateur API courant.
RĂ©ponseâ
Une requĂȘte rĂ©ussie retourne un 200 OK avec lâobjet rendez-vous complet, incluant lâid systĂšme gĂ©nĂ©rĂ©.
Exemples de codeâ
(Par souci de lisibilité, ne traduisez que les commentaires/contextes, laissez le code original en anglais.)
Gestion des erreursâ
| Code dâerreur | Description | Cause possible |
|---|---|---|
| 400 | RequĂȘte invalide | Champs obligatoires manquants ou valeurs invalides |
| 404 | Introuvable | Quai/cour/produit référencé inexistant à cet emplacement |
| 422 | Entité non traitable | Validation métier échouée (conflit de planning, quai plein, etc.) |
| 401 | Non autorisé | Jeton API invalide ou manquant |
| 403 | Interdit | Permissions insuffisantes pour créer des rendez-vous |
Exemple de rĂ©ponse dâerreurâ
{
"errors": {
"scheduled_at": ["ne peut ĂȘtre vide", "doit ĂȘtre dans le futur"],
"dock_name": ["Le quai 'Dock 99' n'existe pas Ă cet emplacement"],
"packing_lists.product_name": [
"Le produit 'Produit inconnu' n'existe pas et la création automatique est désactivée"
]
}
}
PiĂšges et dĂ©pannage courantsâ
- Affectation quai vs cour : fournissez lâun OU lâautre. Les deux donnent des rĂ©sultats inattendus.
- Formats dâheure : toutes les heures doivent inclure lâinformation de fuseau horaire.
- Création de produit/unité : à activer par administrateur DataDocks si non existant.
- Recherche client : le numéro est comparé sans tenir compte de la casse.
- Suppression dâune liste dâemballage : passez lâ
idet_destroy: truelors de la mise Ă jour. - Rendez-vous rĂ©currentsâŻ: non supportĂ©s par lâAPI, utilisez lâinterface web.
- Champs personnalisĂ©sâŻ: seuls les champs configurĂ©s sont pris en compte.
- Approbation automatiqueâŻ: dĂ©pend du paramĂ©trage local.
Conseils dâoptimisationâ
- Regroupez les requĂȘtesâŻ: espacez-les pour Ă©viter les limites de dĂ©bit
- Minimisez les valeurs personnalisĂ©esâŻ: nâenvoyez que ce qui est nĂ©cessaire
- PrĂ©chargez les ressourcesâŻ: vĂ©rifiez lâexistence de produits/unitĂ©s/transporteurs
- Validez localementâŻ: limitez les Ă©checs en validant cĂŽtĂ© client
RĂ©cupĂ©ration dâun rendez-vousâ
Objectifâ
Obtenir lâensemble des informations dâun rendez-vous par ID : statut, listes dâemballage, mĂ©tadonnĂ©es, etc.
Cas dâutilisationâ
- Suivi du statutâŻ: vĂ©rifier lâĂ©tat en temps rĂ©el
- Suivi des heuresâŻ: analyser les heures dâarrivĂ©e et de dĂ©part
- VĂ©rification documentaireâŻ: contrĂŽler les documents ou listes dâemballage joints
- TransporteurâŻ: rĂ©cupĂ©rer les infos chauffeur/remorque
- Champs personnalisĂ©sâŻ: accĂ©der aux champs spĂ©cifiques
RequĂȘte HTTPâ
GET https://[location_subdomain].datadocks.com/api/v1/appointments/:id
ParamĂštres dâURLâ
| ParamĂštre | Type | Requis | Description |
|---|---|---|---|
id | Integer | Oui | Identifiant unique du rdv |
RĂ©ponseâ
Un 200 OK avec lâobjet rendez-vous complet (mĂȘme format que la liste).
Exemples de codeâ
(Seuls les commentaires alentours sont traduits pour le contexte.)
RĂ©ponses dâerreurâ
| Code | Description | Cause possible |
|---|---|---|
| 404 | Introuvable | LâID ne correspond Ă aucun rendez-vous |
| 401 | Non autorisé | Jeton API manquant ou invalide |
| 403 | Interdit | Permissions insuffisantes |
Limitationsâ
- Seuls les rendez-vous non récurrents sont accessibles
- Les modĂšles rĂ©currents ne sont disponibles que via lâinterface web
Mise Ă jour dâun rendez-vousâ
Objectifâ
Modifier les dĂ©tails, le statut ou les donnĂ©es associĂ©es dâun rendez-vous, Ă toutes les Ă©tapes de son cycle de vie.
Cas dâutilisationâ
- Mise Ă jour des statutsâŻ: arrivĂ©, commencĂ©, terminĂ©, parti
- Changement de planificationâŻ: ajustez lâhoraire ou la durĂ©e
- Mise Ă jour des dĂ©tailsâŻ: infos transporteur/remorque/rĂ©fĂ©rence
- Listes dâemballageâŻ: modifiez produits, quantitĂ©s, valeurs personnalisĂ©es
- Gestion des notesâŻ: ajoutez des remarques historiques
RequĂȘte HTTPâ
PUT https://[location_subdomain].datadocks.com/api/v1/appointments/:id
ParamĂštres dâURLâ
| ParamĂštre | Type | Requis | Description |
|---|---|---|---|
id | Integer | Oui | Identifiant unique du rdv |
Corps de requĂȘteâ
MĂȘme format que pour la crĂ©ation. Seuls les champs Ă modifier doivent ĂȘtre inclus.
Logique de transition de statutâ
Le cycle normal suit cet ordreâŻ:
scheduled_at â approved_at â arrived_at â started_at â completed_at â left_at
MĂȘme si les champs sont modifiables Ă tout moment, il est prĂ©fĂ©rable de tenir ce flux logique.
ScĂ©narios frĂ©quents de mise Ă jourâ
Marquer comme «âŻarrivĂ©âŻÂ»â
{
"appointment": {
"arrived_at": "2023-10-15T08:45:00-04:00",
"trailer_number": "TRAILER-789"
}
}
Modification des quantitĂ©s dâune liste dâemballageâ
{
"appointment": {
"packing_lists": [
{
"id": 123,
"actual_quantity": 9,
"actual_weight": 450
}
]
}
}
Ajout dâune nouvelle noteâ
{
"appointment": {
"notes": [
{
"body": "Le camion est arrivé avec un scellé endommagé. Inspection faite."
}
]
}
}
Suppression dâune liste dâemballageâ
{
"appointment": {
"packing_lists": [
{
"id": 123,
"_destroy": true
}
]
}
}
Marquer comme «âŻTerminĂ©âŻÂ»â
{
"appointment": {
"completed_at": "2023-10-15T10:30:00-04:00",
"left_at": "2023-10-15T10:45:00-04:00",
"checklist_values": {
"dock_condition": "Clean",
"paperwork_complete": "Yes"
}
}
}
Exemples de codeâ
(Comme précédemment, seuls les commentaires contextuels sont adaptés si pertinent.)
Gestion des erreursâ
| Code | Description | Cause possible |
|---|---|---|
| 400 | RequĂȘte invalide | Valeurs ou formats invalides |
| 404 | Introuvable | LâID du rendez-vous nâexiste pas |
| 422 | EntitĂ© non traitable | Validation mĂ©tier Ă©chouĂ©e (exâŻ: transition impossible) |
| 401 | Non autorisé | Jeton API manquant ou invalide |
| 403 | Interdit | Permissions insuffisantes |
Limitations importantesâ
- Rendez-vous rĂ©currentsâŻ: pas de support pour leur modification via lâAPI
- Mise Ă jour partielleâŻ: seuls les champs prĂ©sentĂ©s sont mis Ă jour
- Objets imbriquĂ©sâŻ: pour modifier (exâŻ: listes dâemballage), indiquez bien leur
id - Suppression non supportĂ©eâŻ: pas dâendpoint pour supprimerâŻ; pour annuler, posez la date dans
cancelled_at
Bonnes pratiques de transition de statutâ
ProcĂ©dure conseillĂ©eâŻ:
- Créer le rendez-vous (
scheduled_at) - Lâapprouver (
approved_at) - Marquer comme arrivé (
arrived_at) - Commencer lâopĂ©ration (
started_at) - Terminer le rendez-vous (
completed_at) - Marquer comme parti (
left_at)
Ă chaque Ă©tape dâĂ©tat, incluez les mĂ©tadonnĂ©es appropriĂ©es (exâŻ: quantitĂ©s rĂ©elles Ă la complĂ©tion).
Cycle de vie et flux de travail des rendez-vousâ
Comprendre ce cycle est essentiel pour une intégration efficace. Chaque rendez-vous suit une machine à états qui gouverne ses transitions.
Workflow visuel des Ă©tatsâ
ââââââââââââââ ââââââââââââââ ââââââââââââââ ââââââââââââââ ââââââââââââââ
â PlanifiĂ© âââââ¶â ArrivĂ© âââââ¶â CommencĂ© âââââ¶â TerminĂ© âââââ¶â Parti â
ââââââââââââââ ââââââââââââââ ââââââââââââââ ââââââââââââââ ââââââââââââââ
â
â ââââââââââââââ
âââââââââââââââââââââââââââââââ¶â AnnulĂ© â
ââââââââââââââ
ĂvĂ©nements de transition dâĂ©tatâ
| De | Ă | Champ horodatage | Description |
|---|---|---|---|
| Besoin de réservation | En attente d'approbation | scheduled_at | Rendez-vous avec date prévue |
| PlanifiĂ© | ApprouvĂ© | approved_at | Approbation du rendez-vous (peut ĂȘtre auto) |
| Approuvé | Arrivé | arrived_at | Camion arrivé sur site |
| Arrivé | Démarré | started_at | Le chargement/déchargement démarre |
| Démarré | Terminé | completed_at | Chargement/déchargement terminé |
| Terminé | Parti | left_at | Camion a quitté le site |
| Tout état | Annulé | cancelled_at | Rendez-vous annulé (état terminal) |
Collecte de donnĂ©es lors des transitionsâ
Ă chaque Ă©tapeâŻ:
Arrivé
- Mettre Ă jour les infos chauffeur si besoin
- Valider le numéro de remorque
- Documenter lâheure dâarrivĂ©e
- Ajouter des remarques
Démarré
- Documenter les changements dâaffectation
- Horodater le dĂ©but de lâopĂ©ration
Terminé
- Renseigner les quantités/manquants
- Noter les problÚmes qualité
- Recueillir signatures
- Charger les documents nécessaires
Parti
- Calculer le temps total sur site
- Horodater le départ
- Finaliser la liste de contrĂŽle
Meilleures pratiques dâimplĂ©mentationâ
- Validez les transitions logiquement
- Ajoutez les métadonnées à chaque changement
- Documentez chaque étape via des notes
- Déclenchez des notifications avec les webhooks
- Enregistrez les temps pour chaque état
Bonnes pratiques de sĂ©curitĂ©â
ProtĂ©gez vos donnĂ©es dâentrepĂŽt via de bonnes mesures de sĂ©curitĂ© API.
Stockage sĂ©curisĂ©â
- Ne codez jamais en dur les jetonsâŻ: stockez-les dans des variables dâenvironnement, coffre-fort, etc.
- Chiffrez au repos les jetons API
- Utilisez une gestion des secrets (ex. HashiCorp Vault, AWS Secrets Manager)
SĂ©curitĂ© des connexionsâ
- Utilisez HTTPS en tout temps
- Vérifiez les certificats SSL/TLS
Mesures complĂ©mentairesâ
- Mettez en place la surveillance de lâactivitĂ© API
- PrĂ©parez un plan dâintervention en cas de fuite de jeton
Endpoints connexesâ
- API Produits â GĂ©rer les produits des listes dâemballage
- API Bons de commande â GĂ©rer les bons de commande liĂ©s
- API Entreprises â GĂ©rer transporteurs et clients
- Webhooks â Notifications temps rĂ©el des changements de rendez-vous
Suppression de rendez-vous (non supportĂ©e)â
Limitation importanteâ
LâAPI des rendez-vous ne prend pas en charge la suppression pure et simple, pour assurer lâintĂ©gritĂ© des historiques.
Alternatives Ă la suppressionâ
- Annulez le rendez-vous en définissant
cancelled_at - Mettez Ă jour les dĂ©tails si le planning doit ĂȘtre modifiĂ©
- Gérez le suivi via des champs personnalisés
Annuler un rendez-vousâ
Voir lâexemple cURL
curl -H "Authorization: Token VOTRE_JETON_API" \
-H "Content-Type: application/json" \
-X PUT \
-d '{
"appointment": {
"cancelled_at": "2023-10-14T15:30:00-04:00",
"notes": [
{
"body": "Annulé en raison de conditions météorologiques."
}
]
}
}' \
https://VOTRE_EMPLACEMENT.datadocks.com/api/v1/appointments/123
Livre de recettes APIâŻ: scĂ©narios frĂ©quentsâ
(Cette section contient des recettes rĂ©utilisables pour divers scĂ©nariosâŻ: synchronisation ERP, tableau bord, gestion status, etc. Le code reste tel quel, seuls les commentaires contextuels sont adaptĂ©s.)
--- Les recettes suivantes montrent commentâŻ:
- Synchroniser des expĂ©ditions sortantes depuis lâERP
- Calculer lâutilisation temps rĂ©el des quais
- Automatiser le traitement dâarrivĂ©e des camions
- Mettre Ă jour par lots les statuts de rendez-vous
(reportez-vous au texte anglais source pour le détail des fonctions JavaScript)
Optimisation de la performanceâ
Adoptez ces conseils pour des intĂ©grations API efficacesâŻ:
Chargement efficace des donnĂ©esâ
- Filtrez par date : fournissez
fromettopour limiter le résultat - Cachez les données stables
- Utilisez la pagination pour limiter le volume par appel
Optimisation des requĂȘtesâ
- Regroupez les mises à jour au lieu de faire des appels multiples isolés
- ContrÎlez la concurrence pour éviter les limites de débit
- PrĂ©parez Ă lâavenir : prise en charge Ă venir de demandes conditionnelles/Etag
Performance rĂ©seauâ
- Conservez les connexions si vous faites de nombreux appels
- Compressez les corps de grosse taille (gzip)
- Exponential backoffâŻ: augmentez le dĂ©lai entre tentatives en cas de limite
DĂ©pannage des problĂšmes courantsâ
ProblĂšmes dâauthentificationâ
SymptĂŽmesâ
- Erreurs 401 «âŻNon autorisĂ©âŻÂ»
- Messages «âŻJeton invalideâŻÂ»
Solutionsâ
- Vérifiez votre jeton et sa validité
- Vérifiez les permissions sur ce jeton
- Confirmez le sous-domaine
- VĂ©rifiez le format de lâen-tĂȘteâŻ:
Authorization: Token VOTRE_JETON_API
Limites de dĂ©bitâ
SymptĂŽmesâ
- Erreurs 429 «âŻTrop de requĂȘtesâŻÂ»
- Ăchecs soudains de requĂȘtes auparavant fonctionnelles
Solutionsâ
- ImplĂ©mentez la gestion des limites (60 requĂȘtes/min/IP)
- Ajoutez des délais entre les mises à jour par lots
- Utilisez un backoff exponentiel pour la reprise
- RĂ©partissez les requĂȘtes sur plusieurs jetons si possible
ProblĂšmes de date/heureâ
Sympt ĂŽmesâ
- Rendez-vous créés à de mauvaises heures
- Filtres de recherche inopérants
Solutionsâ
- Incluez toujours le fuseau horaire
- Attention aux changements dâheure dâĂ©tĂ©
- Utilisez le format ISO8601
- Assurez lâordre chrono dans les filtres
Erreurs de validation des donnĂ©esâ
SymptĂŽmesâ
- 422 Entité non traitable
- Erreurs de champ spécifiques
Solutionsâ
- Consultez la réponse détaillée pour identifier le champ fautif
- Fournissez les champs requis (scheduled_at, duration)
- VĂ©rifiez lâexistence des ressources rĂ©fĂ©rencĂ©es
- Validez cÎté client
Assistance et supportâ
Trouver des solutions aux erreursâ
Si vous rencontrez des erreurs non traitées :
- Lisez la rĂ©ponse dâerreur : elle est gĂ©nĂ©ralement explicite
- Consultez les limitations de lâAPI
- Procédez par étapes pour isoler la cause
- Vérifiez les limites de débit
Obtenir du supportâ
Pour toute aide complĂ©mentaire concernant DataDocks APIâŻ:
- Documentation complĂšteâŻ: docs.datadocks.com/api
- SupportâŻ: support@datadocks.com
Lors de votre demande, précisez :
- Votre sous-domaine
- Les dĂ©tails de la requĂȘte (mĂ©thode, endpoint, paramĂštres)
- La rĂ©ponse complĂšte de lâerreur
- Lâheure exacte du problĂšme
RemarqueâŻ: Tous les exemples de code, noms de champs, requĂȘtes JSON/Payload REST restent en anglais pour des raisons dâintĂ©gration technique, les notes, explications, et titres, ainsi que les tables et contextes, sont en français canadien, techniquement prĂ©cis, et suivent le lexique fourni.