Résumé
Manipulation de l'entité Equipment (Equipements) en lecture/écriture/suppression via un objet métier depuis une application externe.
Tables
Les tables utilisées sont :
sw_data_equipment : Table des équipements
Les tables liées sont :
sw_data_equipmentaddress : Table des adresses des équipements
sw_data_modulecoldequipmentcharacteristic : Module Froid - Table des caractéristiques froid des équipements
Critères d'activation
WHK_Equipment est défini dans la gestion des webhooks du studio.
Fonctionnement
settings parameters
"settings": { "getContracts": "1", // pour le verb GET et LIST permet de retourner les informations des contrats actifs de l'équipement "getWarranties": "1" // pour le verb GET et LIST permet de retourner les informations des garanties actives de l'équipement "getModuleColdEquipmentCharacteristic": "1" // pour le verb GET et LIST permet de retourner les informations des caractéristiques module froid équipement }
verb: GET
resultType: simple
"equipment":{ "codeequipment": "BAL01-201910", "description": "Ballon 300 litres", "equipmenttype_ID": "BALL", "serialNumber": "BAL-169-2", "equipmentstatus_ID": "BEING_CREATED" }
verb: GET
resultType: extended
"equipment":{ "codeequipment": "BAL01-201910", "description": "Ballon 300 litres", "equipmenttype_ID": "BALL", "serialNumber": "BAL-169-2", "equipment_ID_parent": "", "location": "Cave", "gpsLongitude": "", "gpsLatitude": "", "gpsAccuracy": "", "gpsUpdateDate_fixed": "", "gpsManual": "", "baseuser_ID_favoriteTechnician": "", "installationDate": "2020-08-04 00:00:00", "equipmentstatus_ID": "BEING_CREATED", "customerReference": "", "brand": "", "maker": "", "inServiceDate": "", "terminationDate": "", "replacementDate": "", "product_ID": "", "quantityRepresented": "1", "orderheader_ID": "", "externalID": "DTR 1 C1", "equipmentkind_ID": "DEFAULT", "useModuleCold": "0" }
verb: GET
resultType: extendedRelated
en complément du résultat pour resultType: extended on aura le détail pour les tables equipmenttype, equipmentkind, equipment_parent, baseuser_favoriteTechnician, equipmentstatus et product
"related":[ { "equipmenttype":{ "codeequipmenttype": "BALL", "label": "Ballons d'eau chaude", "translationKey": "", "equipmentkind_ID": "DEFAULT" }, "equipmentkind":{ "codeequipmentkind": "DEFAULT", "label": "Par défaut" "translationKey": "Gen_ByDefault" } }]
verb: GET
resultType: simple, extended, extendedRelated
getContracts: "1",
getWarranties: "1"
getModuleColdEquipmentCharacteristic: “1”
"equipment": { ... }, "contracts": [ { "codecontract": "2950000000014", "label": "Contrat maintenance", "contractNumber": "CONTRACT_000057", "startDate": "2020-07-13 00:00:00", "endDate": "" }, { ... }], "warranties": [ { "codeequipmentwarranty": "5550000000022", "equipmentwarrantytype_ID": "Garantie classique", "startDate": "2020-05-18 16:20:05", "endDate": "2021-05-18 16:20:05", "partIncluded": "0", "workIncluded": "0", "travelIncluded": "0" }, { ... }], "modulecoldequipmentcharacteristic": [ { "codemodulecoldequipmentcharacteristic": "BAL01-201910", "modulecoldfluidnature_ID": "Fluide 01", "coolingCapacity": "2", "hasAutoLeakDetector": "0", "totalWeigt": "35" } ]
verb: PUT
Selon webhookVersion renseigné dans le header :
webhookVersion = 1 -> les blocs json equipmenttype, customer et site sont obligatoires.
webhookVersion = 2 -> les blocs json equipmenttype, customer et site ne doivent plus être renseignés, sinon il y aura une erreur en retour. Ils doivent être appelés explicitement par leurs webhooks correspondants (equipmenttype, customer et customeraddress) en amont.
La description pour webhookVersion = 1 peut être consultée dans les pages de la version Divalto weavy 5.5 et antérieures.
{ "equipment": { "codeequipment": "BAL01-201910", /* Code globalement unique de l'équipement (Varchar (255))*/ "equipmentkind_ID": "DEFAULT", /* Code du genre d'équipement (ForeignKey () - sw_data_equipmentkind.codeequipmentkind)*/ "equipmenttype_ID": "BALL", /* Code du type d'équipement (ForeignKey () - sw_data_equipmenttype.codeequipmenttype)*/ "description": "Ballon 300 litres", /* Description de l'équipement (Text (65535))*/ "serialNumber": "BAL-169-2", /* N° de série (Varchar (64))*/ "equipment_ID_parent": null, /* Code de l'équipement parent (nécessite que le parent a été créée avant celui-ci) (ForeignKey () - sw_data_equipment.codeequipment)*/ "location": "Cave", /* Localisation sur le site (Varchar (255))*/ "equipmentstatus_ID": "BEING_CREATED", /* Statut de l'équipement (ForeignKey () - sw_data_equipmentstatus.codeequipmentstatus)*/ "customerReference": null, /* Référence chez le client (Varchar (64))*/ "brand": "", /* Marque (Varchar (255))*/ "maker": "", /* Constructeur (Varchar (255))*/ "installationDate": "2020-08-04", /* Date d'installation (DateTime ())*/ "inServiceDate": null, /* Date de mise en service (DateTime ())*/ "terminationDate": null, /* Date de fin d'existence (DateTime ())*/ "replacementDate": null, /* Date de remplacement (DateTime ())*/ "product_ID": null, /* Code article (ForeignKey () - sw_data_product.codeproduct)*/ "quantityRepresented": "1", /* Quantité représentée (Int ())*/ "externalID": "DTR 1 C12", /* Origine externe (Varchar (64))*/ "useModuleCold": "0", /* Utilise le module froid (Valeurs possibles : 0,1) (Bool ())*/ "internalcodeequipment": null, /* codeequipment original de weavy pour transcodage (Varchar (255))*/ /* Optionnel : pour mettre à jour les champs dynamiques selon paramétrage */ /* Exemple 1 : */ "dynamicfields": [{ "fieldname": "MATPRIX", "fieldvalue": "45.12" }, { "fieldname": "MATCODE", "fieldvalue": "Nickel" }, { ... }] /* Exemple 2 : */ /* A partir de la version SUMMER'21, le mappage direct des champs dynamiques est possible en utilisant le nom du champ en bdd */ "v_MATPRIX": "45.12", "v_MATCODE": "Nickel", ... }, "equipmentaddress": { "codeequipmentaddress": "BAL01-201910-SITE", /* Code globalement unique de l'adresse de l'équipement (Varchar (255))*/ "equipment_ID": "BAL01-201910", /* Code de l'équipement. Optionnel : reprendre le code équipement du bloc json "equipment", si non fourni reprend automatiquement le code équipement (ForeignKey () - sw_data_equipment.codeequipment)*/ "customeraddress_ID" : "C0000001-BDX", /* Code adresse client (ForeignKey () - sw_data_customeraddress.codecustomeraddress)*/ "startDate": "2019-10-26", /* Date de début (DateTime ())*/ "endDate": null, /* Date de fin (DateTime ())*/ "internalcodeequipmentaddress": null /* codeequipmentaddress original de weavy pour transcodage (Varchar (255))*/ }, /* Une seule caratéristique froid pour un équipement */ "modulecoldequipmentcharacteristic": [ { "codemodulecoldequipmentcharacteristic" : "BAL01-201910", /* Code globalement unique de la caractéristique froid de l'équipement (Varchar (255))*/ "modulecoldfluidnature_ID": "NATURE01", /* Code nature de fluide (ForeignKey () - sw_data_modulecoldfluidnature.codemodulecoldfluidnature)*/ "coolingCapacity": "2", /* Capacité de refroidissement (Double ())*/ "hasAutoLeakDetector": "0", /* A un détecteur de fuite automatique (Valeurs possibles : 0,1) (Bool ())*/ "totalWeight": "35" /* Charge totale (Double ())*/ } ] }
verb: LIST
resultType: simple, extended reprendre les définitions du GET
"filters:" { "codeEquipment": "value", filter is equal "description": "value", filter is contains "serialNumber": "value", filter is equal "equipmentType": "value", filter is equal "equipmentKind": "value", filter is equal "codeCustomerAddress": "value", filter is equal "codeEquipmentStatus": "value", filter is equal "equipmentNotClosed": "value", filter is codeEquipmentStatus <> 'DELETED' and (terminationDate is null OR terminationDate >= value) "useModuleCold": "value", filter is equal (if value = "1" return only equipments that use cold characteristics) "codeEquipmentParent": "value", filter is equal "locationCodeCustomerAddressAndDate": "value1&&value2", filter is codeCustomerAddress = 'value1' AND (ea.startDate IS NULL OR ea.startDate <= 'value2') AND (ea.endDate IS NULL OR ea.endDate >= 'value2') // ea = sw_data_equipmentaddress }, "orderBy": "value"
Valeurs possibles pour le tri "orderBy" :
codeEquipmentAsc : par code équipement ascendant
descriptionAsc : par description ascendant
serialNumberAsc : par n° de série ascendant
installationDateAsc : par date d'installation ascendant
installationDateDesc : par date d'installation descendant
codeEquipmentTypeAsccodeEquipmentAsc : par code type d'équipement ascendant et code équipement ascendant
codeEquipmentKindAsccodeEquipmentAsc : par code genre d'équipement ascendant et code équipement ascendant
codeEquipmentKindAsccodeEquipmentTypeAsccodeEquipmentAsc : par code genre d'équipement ascendant, code type d'équipement ascendant et code équipement ascendant