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. Valeur par défaut si non renseigné.
La description pour webhookVersion = 1 peut être consultée dans les pages de la version Divalto weavy 5.5 et antérieures.
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. Exemple : si intervention_ID=6690000005994, alors interventionNumber=669-05994
A la fin de la création/modification d’une intervention, on crée également les gammes d’opérations selon le paramétrage existant.
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.