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

You are viewing an old version of this content. View the current version.

afficher les différences View Version History

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

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.

{ 
  "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))*/
    "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. Reprendre le code intervention du bloc json "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. Reprendre le code intervention du bloc json "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. Reprendre le code intervention du bloc json "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. Reprendre le code intervention du bloc json "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