Aller directement à la fin des métadonnées
Aller au début des métadonnées

Vous regardez une version antérieure (v. /wiki/spaces/UDW62/pages/11005603578/WebHook+Intervention+V5.3) de cette page.

afficher les différences afficher l'historique de la page

Vous regardez la version actuelle de cette page. (v. 1) Actuel »

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,
    "dateToCheckContractOrWarrantyOnFollowUp": "",
    "generictype_ID_managementMode": "INTERVENTION_MANAGEMENT_MODE-BO_WITH_PLANNING",
    "additionalExternalID": "",
    "billingComment": "",
    "generictype_ID_billingFollowUp": "",
    "nonBillable": "0",
    "customer_ID_billed": "C0000002",
    "generictype_ID_nonBillableReason": ""
  }

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, interventionrequest et customer_billed

"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.

{ 
  "intervention": {
    "codeintervention": "INF000000001", /* Code globalement unique de l'intervention (Varchar (255))*/
    "customeraddress_ID": "C0000001-BDX", /* Code adresse client  (ForeignKey () - sw_data_customeraddress.codecustomeraddress)*/
    "title": "Intervention pour changement chaudière", /* Titre de l'intervention (Varchar (255))*/
    "comment": "Installation chaudière new power", /* Observations (Text (65535))*/
    "interventionNumber": "INST20191011-00001", /* N° d'intervention (Varchar (64))*/
    "interventiontype_ID": "INST-CHAUDIERE", /* Code type d'intervention (ForeignKey () - sw_data_interventiontype.codeinterventiontype)*/
    "internalRemarks": "client sensible", /* Commentaires internes non imprimés sur le rapport (Text (65535))*/
    "externalRemarks": "Installation chaudière selon devis numéro G234", /* Commentaires externes imprimés sur le rapport (Text (65535))*/
    "phoneNumber": "0671727374", /* N° de téléphone du contact client pour l'intervention (Varchar (64))*/
    "contactName": "DESMOUCEAUX Alexandre", /* Nom du contact client pour l'intervention (Varchar (255))*/
    "contactEmail": "adesmouceaux@divalto.com", /* Email du contact client pour l'intervention (Varchar (255))*/
    "generictype_ID_status": null, /* Statut de l'intervention. Si vide on le positionne à l'intégration dans weavy lors d'une création (READYTOPLAN par défaut) (ForeignKey () - sw_data_generictype.codegenerictype avec dataType = INTERVENTION_STATUS)*/
    "estimatedDuration": 240, /* Durée estimée. Si le type d'intervention a une durée, la remettre ici (Int ())*/
    "interventionpriority_ID": null, /* Priorité d'intervention. Si vide, on le positionne à l'intégration dans weavy (LOW par défaut) (ForeignKey () - sw_data_interventionpriority.codeinterventionpriority)*/
    "requestedDate": "2019-10-26 00:00:00", /*  Date d'intervention demandée (DateTime ())*/
    "contract_ID": null, /* Code du contrat si lié à un contrat (ForeignKey () - sw_data_contract.codecontract)*/
    "intervention_ID_parent": null, /* Code de l'intervention parente (nécessite que la parente a été créée avant celle-ci) (ForeignKey () - sw_data_intervention.codeintervention)*/
    "branchoffice_ID": null, /* Code de l'agence de rattachement. Si vide on le positionne à l'intégration dans weavy lors d'une création (ForeignKey () - sw_data_branchoffice.codebranchoffice)*/
    "reportEmail": "", /* Email pour le rapport (Varchar (255))*/
    "operationrange_ID": "", /* Code opération/gamme (ForeignKey () - sw_data_operationrange.codeoperationrange)*/
    "generictype_ID_followup": "INTERVENTION_FOLLOWUP-INTERVENTION", /* Code suite à donner (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = INTERVENTION_FOLLOWUP)*/
    "commentFollowup": "", /* Commentaire suite à donner (Text (65535))*/
    "invoiceOutsideScope": "", /* Facturation hors garantie/contrat (Valeurs possibles : 0,1) (Bool ())*/
    "deal_ID": "", /* Code affaire (ForeignKey () - sw_data_deal.codedeal)*/
    "dealelement_ID": "", /* Code élément d'affaire (ForeignKey () - sw_data_dealelement.codedealelement)*/
    "timetypeactivity_ID": "", /* Code activité (ForeignKey () - sw_data_timetypeactivity.codetimetypeactivity)*/
    "contractToBill": "", /* Contrat à facturer (Valeurs possibles : 0,1) (Varchar (64))*/
    "interventionrequest_ID": "", /* Code demande d'intervention (ForeignKey () - sw_data_interventionrequest.codeinterventionrequest)*/
    "externalID": "DTR                1         C12", /* Origine externe (Varchar (64))*/
    "symptom_ID": "", /* Code symptôme (ForeignKey () - sw_data_symptom.codesymptom)*/
    "symptomNotes": "", /* Notes liées aux symptômes (Text (65535))*/
    "dateToCheckContractOrWarrantyOnFollowUp": "", /* Date de vérification du contrat ou de la garantie (DateTime ())*/
    "generictype_ID_managementMode": "INTERVENTION_MANAGEMENT_MODE-BO_WITH_PLANNING", /* Mode de gestion (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = INTERVENTION_MANAGEMENT_MODE)*/
    "additionalExternalID": "", /* Origine externe complémentaire (Varchar (255))*/
    "billingComment": "", /* Commentaire facturation (Text (65535))*/
    "generictype_ID_billingFollowUp": "", /* Suivi de facturation (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = INTERVENTION_BILLING_FOLLOWUP)*/
    "nonBillable": "0", /* Non facturable (Valeurs possibles : 0,1) (Bool ())*/
    "customer_ID_billed": "C0000002", /* Tiers facturé (ForeignKey () - sw_data_customer.codecustomer)*/
    "generictype_ID_nonBillableReason": "" /* Motif non facturable (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = INTERVENTION_NONBILLABLEREASON)*/
    "internalcodeintervention": null /* codeintervention original de weavy pour transcodage (Varchar (255))*/
  },
  "interventionequipment": [
    {
      "codeinterventionequipment": "INF000000001-BAL01-201910", /* Code globalement unique d'un équipement dans une intervention. Composé : codeintervention + "-" + codeequipment (Varchar(255))*/
      "intervention_ID": "INF000000001", /* Code intervention. Optionnel : reprendre le code intervention du bloc json "intervention", si non fourni reprend automatiquement le code intervention (ForeignKey () - sw_data_intervention.codeintervention)*/
      "equipment_ID" : "BAL01-201910",  /* Code de l'équipement. Doit avoir été créé avant la création de l'intervention (ForeignKey () - sw_data_equipment.codeequipment)*/
      "addedByUser": false, /* Equipment ajouté par l'utilisateur (Valeurs possibles : 0,1) (Bool ()) */
      "contract_ID": null /* Code du contrat si lié à un contrat (ForeignKey () - sw_data_contract.codecontract)*/      
    },
    {
      "codeinterventionequipment": "INF000000001-CHA01-201910", /* Code globalement unique d'un équipement dans une intervention. Composé : codeintervention + "-" + codeequipment (Varchar(255))*/
      "intervention_ID": "INF000000001", /* Code intervention. Optionnel : reprendre le code intervention du bloc json "intervention", si non fourni reprend automatiquement le code intervention (ForeignKey () - sw_data_intervention.codeintervention)*/
      "equipment_ID" : "CHA01-201910",  /* Code de l'équipement. Doit avoir été créé avant la création de l'intervention (ForeignKey () - sw_data_equipment.codeequipment)*/
      "addedByUser": false, /* Equipment ajouté par l'utilisateur (Valeurs possibles : 0,1) (Bool ()) */
      "contract_ID": null /* Code du contrat si lié à un contrat (ForeignKey () - sw_data_contract.codecontract)*/
    }
  ], 
  "interventionpart": [
    {
      "codeinterventionpart": "INF000000001-BAL01-201910-BLO0001-L-BLANC-1", /* Code globalement unique de la pièce dans l'intervention. Composé : codeintervention + "-" + codeequipment + "-" + codeproduct + "-" + linenumber (Varchar (255) */
      "intervention_ID": "INF000000001", /* Code intervention. Optionnel : reprendre le code intervention du bloc json "intervention", si non fourni reprend automatiquement le code intervention (ForeignKey () - sw_data_intervention.codeintervention)*/
      "interventionequipment_ID" : "INF000000001-BAL01-201910",  /* Code de l'équipement de l'intervention. A renseigner si la pièce est rattachée à l'équipement (ForeignKey () - sw_data_interventionequipment.codeinterventionequipment)*/
      "product_ID": "BLO0001-L-BLANC", /* Code de l'article (ForeignKey () - sw_data_product.codeproduct)*/
      "productCode": "BLO0001-L-BLANC", /* Code article de la pièce (Varchar(255))*/
      "productDescription": "Filtre charbon universel", /* Libellé de l'article dans la pièce (Varchar(255))*/
      "lineNumber": 1, /* Numéro de ligne (Int)*/
      "estimatedQuantity": 1, /* Quantité estimée (Double)*/      
    },
    {
      "codeinterventionpart": "INF000000001--ALB0001-2", /* Code globalement unique de la pièce dans l'intervention. Composé : codeintervention + "-" + codeequipment + "-" + codeproduct + "-" + linenumber (Varchar (255) */
      "intervention_ID": "INF000000001", /* Code intervention. Optionnel : reprendre le code intervention du bloc json "intervention", si non fourni reprend automatiquement le code intervention (ForeignKey () - sw_data_intervention.codeintervention)*/
      "interventionequipment_ID" : null,  /* Code de l'équipement de l'intervention. A renseigner si la pièce est rattachée à l'équipement (ForeignKey () - sw_data_interventionequipment.codeinterventionequipment)*/
      "product_ID": "ALB0001", /* Code de l'article (ForeignKey () - sw_data_product.codeproduct)*/
      "productCode": "ALB0001", /* Code article de la pièce (Varchar(255))*/
      "productDescription": "Album", /* Libellé de l'article dans la pièce (Varchar(255))*/
      "lineNumber": 2, /* Numéro de ligne (Int)*/
      "estimatedQuantity": 3 /* Quantité estimée (Double)*/      
    }
  ]
}

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"

"response": 
{
  "data": 
  [{
    "action": "value", // inserted or updated
    "intervention_ID": "value", value is ID created/updated
    "codeintervention": "value", // value is code created/updated
    "interventionNumber": "value" // value is calculate or given by the user
  }]
}

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

"filters:" {
  "codeIntervention": "value", filter is equal
  "interventionNumber": "value", filter is equal
  "title": "value", filter is contains
  "codeCustomer": "value", filter is equal
  "codeCustomerAddress": "value", filter is equal
  "codeContract": "value", filter is equal
  "startDate": "value", filter is greater or equal to
  "startDateBetween": "value1|value2", filter is between value1 and value2
  "endDate": "value", filter is lesser or equal to
  "endDateBetween": "value1|value2", filter is between value1 and value2
  "interventionType": "value", filter is equal
  "codeDeal": "value", filter is equal
  "codeStatus": "value" filter is equal
},
"orderBy": "value"

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.

  • Aucune étiquette