Aller au contenu principal

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 :

  1. Demandez et obtenez votre jeton API auprĂšs du support
  2. Trouvez votre sous-domaine d’emplacement (par ex., votre-entrepot.datadocks.com)
  3. 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"
}
}'
  1. 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ĂštreTypeRequisDescriptionExemple
pageIntegerNonNuméro de page pour la pagination (défaut : 1)page=2
po_numberStringNonFiltre par numéro de bon de commande (sensible à la casse, concordance exacte)po_number=PO-12345
fromStringNonFiltre les rendez-vous planifiĂ©s Ă  partir de cette date/heure (fuseau de l’emplacement)from=2023-10-01 08:00 AM
toStringNonFiltre 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 :

ChampTypeDescription
idIntegerIdentifiant unique du rendez-vous
appointment_numberIntegerNuméro de rendez-vous facile à lire
stateStringÉtat actuel du rendez-vous (ex. : « scheduled », « arrived », « completed »)
durationIntegerDurée en minutes
scheduled_atStringHorodatage ISO8601 de la planification du rendez-vous
shipping_numberStringNumĂ©ro de rĂ©fĂ©rence pour l’expĂ©dition
trailer_numberStringNumĂ©ro d’identification de la remorque
bol_numberStringNuméro du connaissement (BOL)
carrier_nameStringNom de l’entreprise de transport
carrier_numberStringIdentifiant du transporteur dans votre systĂšme
driver_nameStringNom du chauffeur
driver_phoneStringTéléphone du chauffeur
driver_emailStringCourriel du chauffeur
created_byStringNom de l’utilisateur ayant créé le rendez-vous
outboundBooleanRendez-vous sortant (true) ou entrant (false)
drop_trailerBooleanS’il s’agit d’un rendez-vous de dĂ©pĂŽt de remorque
queuedBooleanSi ce rendez-vous est en file d’attente
dock_nameStringNom du quai assigné (null si la cour assignée)
yard_nameStringNom de la cour assignée (null si le quai assigné)
internal_idStringIdentifiant interne pour ce rendez-vous
free_untilStringHorodatage ISO8601 de libération du quai/cour
approved_atStringHorodatage ISO8601 d’approbation du rendez-vous
arrived_atStringHorodatage ISO8601 de l’arrivĂ©e du rendez-vous
started_atStringHorodatage ISO8601 du début des opérations
completed_atStringHorodatage ISO8601 de fin des opérations
left_atStringHorodatage ISO8601 de départ
cancelled_atStringHorodatage ISO8601 d’annulation (null si actif)
custom_valuesObjectPaires clé/valeur de champs personnalisés
checklist_valuesObjectPaires clĂ©/valeur d’items de liste de contrĂŽle
packing_listsArrayListes d’objets de listes d’emballage associĂ©es au rendez-vous
notesArrayListe de notes associées (voir le format de note ci-dessous)
documentsArrayListe 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.",
"note_type": "user_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 from et to sont 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 :

  1. Si seul customer_number est 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_name avec 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.

Les réponses retournent aussi un champ note_type en lecture seule pour chaque note :

ValeurSignification
user_noteUne note Ă©crite par une personne. C’est la valeur par dĂ©faut, et le seul type que vous pouvez crĂ©er.
cancellation_noteEnregistrĂ©e par DataDocks lorsqu’un rendez-vous est annulĂ© avec un motif depuis le portail de rĂ©servation.

note_type est attribuĂ© par DataDocks et est ignorĂ© si vous l’envoyez. Les notes d’annulation ne peuvent pas ĂȘtre supprimĂ©es — elles documentent ce qui est arrivĂ© au rendez-vous, donc un _destroy envoyĂ© pour l’une d’elles est rejetĂ© et la mise Ă  jour entiĂšre Ă©choue.

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’erreurDescriptionCause possible
400RequĂȘte invalideChamps obligatoires manquants ou valeurs invalides
404IntrouvableQuai/cour/produit référencé inexistant à cet emplacement
422Entité non traitableValidation métier échouée (conflit de planning, quai plein, etc.)
401Non autoriséJeton API invalide ou manquant
403InterditPermissions 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’id et _destroy: true lors 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ĂštreTypeRequisDescription
idIntegerOuiIdentifiant 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​

CodeDescriptionCause possible
404IntrouvableL’ID ne correspond à aucun rendez-vous
401Non autoriséJeton API manquant ou invalide
403InterditPermissions 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ĂštreTypeRequisDescription
idIntegerOuiIdentifiant 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​

CodeDescriptionCause possible
400RequĂȘte invalideValeurs ou formats invalides
404IntrouvableL’ID du rendez-vous n’existe pas
422EntitĂ© non traitableValidation mĂ©tier Ă©chouĂ©e (ex : transition impossible)
401Non autoriséJeton API manquant ou invalide
403InterditPermissions 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 :

  1. Créer le rendez-vous (scheduled_at)
  2. L’approuver (approved_at)
  3. Marquer comme arrivé (arrived_at)
  4. Commencer l’opĂ©ration (started_at)
  5. Terminer le rendez-vous (completed_at)
  6. 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 horodatageDescription
Besoin de réservationEn attente d'approbationscheduled_atRendez-vous avec date prévue
PlanifiĂ©ApprouvĂ©approved_atApprobation du rendez-vous (peut ĂȘtre auto)
ApprouvéArrivéarrived_atCamion arrivé sur site
ArrivéDémarréstarted_atLe chargement/déchargement démarre
DémarréTerminécompleted_atChargement/déchargement terminé
TerminéPartileft_atCamion a quitté le site
Tout étatAnnulécancelled_atRendez-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​

  1. Validez les transitions logiquement
  2. Ajoutez les métadonnées à chaque changement
  3. Documentez chaque étape via des notes
  4. Déclenchez des notifications avec les webhooks
  5. 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​

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​

Annulez en renseignant cancelled_at. Toute note envoyĂ©e avec cette requĂȘte est une user_note ordinaire : les notes d’annulation ne sont produites que par le flux d’annulation du portail de rĂ©servation, oĂč l’installation peut exiger un motif de la part des transporteurs.

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 from et to pour 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​

  1. Vérifiez votre jeton et sa validité
  2. Vérifiez les permissions sur ce jeton
  3. Confirmez le sous-domaine
  4. 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​

  1. ImplĂ©mentez la gestion des limites (60 requĂȘtes/min/IP)
  2. Ajoutez des délais entre les mises à jour par lots
  3. Utilisez un backoff exponentiel pour la reprise
  4. 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​

  1. Incluez toujours le fuseau horaire
  2. Attention aux changements d’heure d’étĂ©
  3. Utilisez le format ISO8601
  4. 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​

  1. Consultez la réponse détaillée pour identifier le champ fautif
  2. Fournissez les champs requis (scheduled_at, duration)
  3. VĂ©rifiez l’existence des ressources rĂ©fĂ©rencĂ©es
  4. Validez cÎté client

Assistance et support​

Trouver des solutions aux erreurs​

Si vous rencontrez des erreurs non traitées :

  1. Lisez la rĂ©ponse d’erreur : elle est gĂ©nĂ©ralement explicite
  2. Consultez les limitations de l’API
  3. Procédez par étapes pour isoler la cause
  4. Vérifiez les limites de débit

Obtenir du support​

Pour toute aide complĂ©mentaire concernant DataDocks API :

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.