WebHook Intervention

Résumé

Manipulation de l'entité Intervention (Interventions) en lecture/écriture/suppression via un objet métier depuis une application externe.

Tables

Les tables utilisées sont :

  • sw_data_intervention : Table des interventions

Les tables liées sont :

  • sw_data_interventionequipment : Table des équipements d'une intervention

  • sw_data_interventionpart : Table des pièces d'une intervention

Critères d'activation

WHK_Intervention est défini dans la gestion des webhooks du studio.

Fonctionnement

verb: GET
resultType: simple

"intervention": { "codeintervention": "INF000000001", "customer_ID": "C0000001", "customeraddress_ID": "C0000001-BDX", "title": "Intervention pour changement chaudière", "interventiontype_ID": "INST-CHAUDIERE", "interventionNumber": "INST20191011-00001", "generictype_ID_status": "CLOSED", "startDate": "2020-10-07 15:00:00", "endDate": "2020-10-07 17:00:00" }

verb: GET
resultType: extended

"intervention": { "codeintervention": "INF000000001", "customer_ID": "C0000001", "customeraddress_ID": "C0000001-BDX", "title": "Intervention pour changement chaudière", "interventiontype_ID": "INST-CHAUDIERE", "interventionNumber": "INST20191011-00001", "generictype_ID_status": "CLOSED", "startDate": "2020-10-07 15:00:00", "endDate": "2020-10-07 17:00:00", "comment": "Installation chaudière new power", "contract_ID": null, "internalRemarks": "client sensible", "externalRemarks": "Installation chaudière selon devis numéro G234", "phoneNumber": "0671727374", "contactName": "DESMOUCEAUX Alexandre", "contactEmail": "adesmouceaux@divalto.com", "estimatedDuration": 240, "interventionpriority_ID": "LOW", "requestedDate": "2019-10-26 00:00:00.000", "intervention_ID_parent": null, "branchoffice_ID": null, "interventionrequest_ID": null, "reportEmail": null, "estimatedDuration": null, "operationrange_ID": null, "generictype_ID_followup": null, "commentFollowup": null, "isFrontOfficeCreated": null, "generictype_ID_geoptimizationStatus": null, "equipmentwarrantytype_ID": null, "invoiceOutsideScope": "0", "contract_ID_equipment": null, "timetypeactivity_ID": null, "timeworktimeheader_ID": null, "orderheader_ID": null, "externalID": null, "deal_ID": null, "dealelement_ID": null, "contractToBill": null, "symptom_ID": null, "symptomNotes": null }

verb: GET
resultType: extendedRelated
en complément du résultat pour resultType: extended on aura le détail pour les tables interventiontype, timetypeactivity, customeraddress, generictype_status, contract, deal, dealelement, interventionpriority, symptom et interventionrequest

"related":[ { "interventiontype":{ "codeinterventiontype":"REP", "label":"Réparation", "printTimes":"1", "printProducts":"1", "defaultDuration":"60", "isBreakFix":"1", "color":"ff5252" }, "timetypeactivity":{ "codetimetypeactivity":"PLOM", "label":"Plomberie" }, "customeraddress":{ "codecustomeraddress":"0000360000000002", "customer_ID":"I0001700000000008", "name":"Nouveau site", "site":"1", "generictype_ID_country":"", "generictype_ID_province":"", "baseculture_ID":"", "address1":"25 Rue des pêcheurs", "address2":"", "address3":"", "postalCode":"67000", "city":"Strasbourg", "phoneNumber":"", "faxNumber":"", "mobilePhoneNumber":"", "email":"", "areaCode":"", "contact":"", "gpsLongitude":"7.76106", "gpsLatitude":"48.58294", "gpsAccuracy":"8", "gpsUpdateDate":"2019-04-11 18:36:31", "gpsManual":"", "billingAddress":"0", "defaultBillingAddress":"0", "deliveryAddress":"", "defaultDeliveryAddress":"", "accessCode":"", "floor":"", "apartment":"", "miscInfos":"", "baseuser_ID_favoriteTechnician":"", "erpAddressID":"", "branchoffice_ID":"SXB", "bankholidayparamheader_ID":"" }, "deal":{ "codedeal":"PJ000011", "customer_ID":"C0000001", "label":"Vitrine de magasin", "generictype_ID_dealType":"DEAL_DEALTYPE-PRJ", "dealNumber":"PJ000011", "description":"", "creationDate":"2020-09-18 00:00:00", "closingDate":"", "amount":"300", "probability":"55", "generictype_ID_lossReason":"", "customer_ID_introducer":"", "baseuser_ID":"", "amount2":"", "generictype_ID_status":"DEAL_STATUS-PRJ-1", "lossReasonComment":"", "realClosingDate":"", "dealstep_ID_current":"", "deal_ID_origin":"", "isProject":"1", "manualProbability":"0", "marketinglead_ID_origin":"", "customercontact_ID":"C0000001-DJ" } }]

verb: PUT
Selon webhookVersion renseigné dans le header :

  • webhookVersion = 1 -> les blocs json interventiontype, customer et site sont obligatoires.

  • webhookVersion = 2 -> les blocs json interventiontype, customer et site ne doivent plus être renseignés, sinon il y aura une erreur en retour. Ils doivent être appelés explicitement par leur webhooks correspondants (interventiontype, customer et customeraddress) en amont.

Compléments :

  • A la fin de la création/modification d'une intervention si codeintervention=intervention_ID (c'est le cas si on ne renseigne pas le codeintervention) et que interventionNumber n'est pas renseigné alors interventionNumber sera mis à jour avec la forme visuelle de intervention_ID.
    (ex: si intervention_ID=6690000005994, alors interventionNumber=669-05994)

  • Dans la réponse du webhook, on retourne également "interventionNumber"

verb: LIST
resultType: simple, extended reprendre les définitions du GET

Valeurs possibles pour le tri "orderBy" :

  • interventionNumberAsc : par n° d'intervention ascendant

  • startDateDesc : par date de début descendant

  • startDateAsc : par date de début ascendant

  • requestedDateDesc : par date souhaitée descendant

  • requestedDateAsc : par date souhaitée ascendant

verb: DELETE
Une suppression d'une intervention (sw_data_intervention) va supprimer en cascade les éléments dans les tables liées sw_data_interventionequipment et sw_data_interventionpart.