WebHook Baseuser (V5.4)
Résumé
Manipulation de l'entité BaseUser (Utilisateurs) en lecture/écriture/suppression via un objet métier depuis une application externe.
Par défaut, les enregistrements baseuser renvoyés correspondent uniquement à des "vraies" personnes (donc sont exclus les baseuser où resourcetype_id, teamtype_id ou customer_ID_subcontractor sont renseignés)
Tables
Les tables utilisées sont :
sw_data_baseuser : Table des utilisateurs
Les tables liées sont :
sw_data_baseprofileheaderuser : Table des entêtes de profils utilisateurs (avant Divalto weavy 6.2)
sw_data_baseuserprofile : Table des profils utilisateurs (variables) (avant Divalto weavy 6.2)
sw_data_permission_profiletemplateheader : Table des entêtes de modèles de profils (à partir de Divalto weavy 6.2)
sw_sys_device : Table système des comptes
Critères d'activation
WHK_Baseuser est défini dans la gestion des webhooks du studio.
Fonctionnement
settings parameters
"settings":
{
"addAssignmentsFromProfileTemplate": "", // pour le verb PUT permet d'assigner les droits liés au code modèle à l'utilisateur (sw_data_permission_profiletemplateheader.codepermission_profiletemplateheader)
}
verb: GET
resultType: simple
"baseuser":{
"codebaseuser": "RJ",
"lastName": "ROSEN",
"firstName": "Jean",
"initials": "RJ",
"email": "jrosen@papyrus.fr",
"phoneNumber": "03 88 81 50 10",
"faxNumber": "",
"address1": "12 rue des érables",
"address2": "",
"postalCode": "67000",
"city": "STRASBOURG",
"position": "User",
"department": "",
"generictype_ID_country": "FR",
"generictype_ID_province": "",
"baseculture_ID": "FR-FR",
"branchoffice_ID": "SXB",
"resourcetype_ID": ""
}
verb: GET
resultType: extended
"baseuser":{
"codebaseuser": "RJ",
"lastName": "ROSEN",
"firstName": "Jean",
"initials": "RJ",
"email": "jrosen@papyrus.fr",
"phoneNumber": "03 88 81 50 10",
"faxNumber": "",
"address1": "12 rue des érables",
"address2": "",
"postalCode": "67000",
"city": "STRASBOURG",
"position": "User",
"department": "",
"generictype_ID_country": "FR",
"generictype_ID_province": "",
"baseculture_ID": "FR-FR",
"branchoffice_ID": "SXB",
"resourcetype_ID": "",
"supervisor": "",
"useMileageRate": "",
"account": "",
"analyticSection": "",
"productdepot_ID": "Dépôt Jean ROSEN",
"lastGPSDate": "",
"gpsLongitude": "",
"gpsLatitude": "",
"fullView": "",
"changeAuthorization": "",
"productdepot_ID_current": "",
"techSyncRule": "",
"homePage": "",
"teamtype_ID": "",
"customer_ID_subcontractor": ""
}
verb: GET
resultType: extendedRelated
en complément du résultat pour resultType: extended on aura le détail pour les tables productdepot, productdepot_current, generictype_country, generictype_province, baseculture, branchoffice, resourcetype et teamtype
"related":[
{
"productdepot":{
"codeproductdepot": "D-RJ",
"label": "Dépôt Jean ROSEN",
"vehicle": "1",
"main": "0",
"vehicleRegistration": "DV-092-SW"
},
"productdepot_current":{
"codeproductdepot": "",
"label": "",
"vehicle": "",
"main": "",
"vehicleRegistration": ""
},
"generictype_country":{
"codegenerictype": "COUNTRY-FR",
"label": "FRANCE",
"originalCode": "FR",
"dataType": "COUNTRY",
"description": "",
"translationKey": "GenType_COUNTRY-FR",
"generictype_ID_parent": "",
"tag": "",
"orderNumber": ""
},
"generictype_province":{
"codegenerictype": "",
"label": "",
"originalCode": "",
"dataType": "",
"description": "",
"translationKey": "",
"generictype_ID_parent": "",
"tag": "",
"orderNumber": ""
},
"baseculture":{
"codebaseculture": "FR-FR",
"label": "French - France",
"codelanguage": "FR"
},
"branchoffice":{
"codebranchoffice": "SXB",
"name": "Strasbourg",
"address1": "10 Rue du Homard",
"address2": "",
"postalCode": "67000",
"city": "Strasbourg",
"generictype_ID_country": "FR",
"phoneNumber": "0388123456",
"faxNumber": "0388123400",
"email": "weavysxb@divalto.com",
"website": "",
"bankholidayparamheader_ID": "FRANCE-ALSACE-MOSELLE",
"gpsLongitude": "7.7475",
"gpsLatitude": "48.58367",
"baseusergroup_ID": "SXB-BRANCHOFFICE"
},
"resourcetype":{
"coderesourcetype": "",
"label": ""
},
"teamtype":{
"codeteamtype": "",
"label": ""
}
}]
verb: PUT
{
"baseuser": {
"codebaseuser": "RJ", /* Code globalement unique de l'utilisateur (Varchar (255))*/
"lastName": "ROSEN", /* Nom de famille (Varchar (64))*/
"firstName": "Jean", /* Prénom (Varchar (64))*/
"initials": "RJ", /* Initiales (Varchar (64))*/
"email": "jrosen@papyrus.fr", /* Email (Varchar (255))*/
"phoneNumber": "03 88 81 50 10", /* Numéro de téléphone (Varchar (64))*/
"faxNumber": "", /* Numéro de télécopie (Varchar (64))*/
"address1": "", /* Adresse 1 (Varchar (64))*/
"address2": "", /* Adresse 2 (Varchar (64))*/
"postalCode": "67000", /* Code postal (Varchar (10))*/
"city": "STRASBOURG", /* Ville (Varchar (64))*/
"position": "User", /* Fonction (Varchar (64))*/
"department": "", /* Service (Varchar (64))*/
"supervisor": "0", /* Superviseur (Valeurs possibles : 0,1) (Bool ())*/
"useMileageRate": "0", /* Forfait indemnité kilométrique (Valeurs possibles : 0,1) (Bool ())*/
"account": "", /* Compte comptable (Varchar (64))*/
"analyticSection": "", /* Section analytique (Varchar (64))*/
"productdepot_ID": "1", /* Code dépôt (ForeignKey () - sw_data_productdepot.codeproductdepot)*/
"productdepot_ID_current": "", /* Code dépôt actuel (ForeignKey () - sw_data_productdepot.codeproductdepot)*/
"password": "", /* Mot de passe (Varchar (255))*/
"fullView": 0, /* Vue totale (Valeurs possibles : 0,1) (Bool ())*/
"changeAuthorization": "", /* Niveau d'autorisation de modification (Int ())*/
"generictype_ID_country": "COUNTRY-FR", /* Code pays (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = COUNTRY)*/
"generictype_ID_province": "", /* Code province (ForeignKey () - sw_data_generictype.codegenerictype avec datatype = PROVINCE)*/
"baseculture_ID": "FR-FR", /* Code culture (ForeignKey () - sw_data_baseculture.codebaseculture)*/
"branchoffice_ID": "SXB", /* Code de l'agence de rattachement (ForeignKey () - sw_data_branchoffice.codebranchoffice)*/
"techSyncRule": "", /* Règle de synchronisation du technicien (Valeurs possibles : 0,1,2,3) (Int ())*/
"homePage": "", /* Page d'accueil (Varchar (255))*/
"resourcetype_ID": "", /* Code type de ressource (ForeignKey () - sw_data_resourcetype.coderesourcetype)*/
"teamtype_ID": "", /* Code type d'équipe (ForeignKey () - sw_data_teamtype.codeteamtype)*/
"customer_ID_subcontractor": "" /* Code tiers sous-traitant (ForeignKey () - sw_data_customer.codecustomer)*/
},
/* Avant Divalto weavy 6.2 - Profils de l'utilisateur (0 Ã n) */
"baseprofileheaderuser": [
{
"codebaseprofileheaderuser": "RJ-COMM", /* Code globalement unique de l'entête du profil utilisateur. Composé : codebaseuser + "-" + codebaseprofileheader. Si non fourni, code=ID (Varchar (255))*/
"baseuser_ID": "RJ", /* Code utilisateur. Optionnel : reprendre le code utilisateur du bloc json "baseuser", si non fourni reprend automatiquement le code utilisateur (ForeignKey () - sw_data_baseuser.codebaseuser)*/
"baseprofileheader_ID": "COMM", /* Code entête de profil (ForeignKey () - sw_data_baseprofileheader.codebaseprofileheader)*/
"orderNumber": 1 /* Numéro d'ordre (Int ())*/
},
{
"codebaseprofileheaderuser": "RJ-COORD", /* Code globalement unique de l'entête du profil utilisateur. Composé : codebaseuser + "-" + codebaseprofileheader. Si non fourni, code=ID (Varchar (255))*/
"baseuser_ID": "RJ", /* Code utilisateur. Optionnel : reprendre le code utilisateur du bloc json "baseuser", si non fourni reprend automatiquement le code utilisateur (ForeignKey () - sw_data_baseuser.codebaseuser)*/
"baseprofileheader_ID": "COORD", /* Code entête de profil (ForeignKey () - sw_data_baseprofileheader.codebaseprofileheader)*/
"orderNumber": 2 /* Numéro d'ordre (Int ())*/
}],
/* Avant Divalto weavy 6.2 - Groupe de variable de l'utilisateur (0 Ã 1) */
"baseuserprofile": {
"codebaseuserprofile": "RJ-SWS.Options", /* Code globalement unique du profil utilisateur. Composé : codebaseuser + "-" + codebasevariablegroup. Si non fourni, code=ID (Varchar (255))*/
"baseuser_ID": "RJ", /* Code utilisateur. Optionnel : reprendre le code utilisateur du bloc json "baseuser", si non fourni reprend automatiquement le code utilisateur (ForeignKey () - sw_data_baseuser.codebaseuser)*/
"basevariablegroup_ID": "SWS.Options" /* Code groupement de variable (ForeignKey () - sw_data_basevariablegroup.codebasevariablegroup)*/
}
}
Compléments :
Valeurs du champ "techSyncRule" :
0 : [Clients] Le technicien récupère tous les tiers
1 : [Interventions] Le technicien récupère uniquement les tiers des interventions qui lui sont attribuées
2 : [Contrats] Le technicien récupère les tiers des interventions qui lui sont attribuées ainsi que les tiers sous contrat de l'agence à laquelle il est rattaché
3 : [Agence] Le technicien récupère les tiers des interventions qui lui sont attribuées ainsi que tous les tiers de l'agence à laquelle il est rattaché
A la fin de la création/modification d'un utilisateur, l'event "Webhook Account creation" est appelé afin de créer les comptes manquants pour les profils coordinateurs, commerciaux et techniciens. Cet event ne fera pas de mise à jour.
Rétrocompatibilité profils
A partir de Divalto weavy 6.2, la gestion des profils a évoluée.
Les balises "baseprofileheaderuser" et "baseuserprofile" qui alimentent les tables sw_data_baseprofileheaderuser et sw_data_baseuserprofile sont devenues obsolètes.
Il est vivement conseillé d’utiliser le paramètre de settings "addAssignmentsFromProfileTemplate" pour attribuer un profil modèle à un utilisateur.
Cependant pour assurer la rétrocompatibilité un mapping automatique est effectué entre les anciens et les nouveaux profils dans la fonction de script “FuncWebhook_CreateProfileAssignment“. Cette fonction pourra être surchargée si vous voulez gérer d’autres rétrocompatibilités.
baseprofileheader_ID | codeProfileTemplateHeader |
---|---|
COMM | FIELDSERVICE-COMMERCIAL |
COORD | FIELDSERVICE-COORDINATOR |
TECH | FIELDSERVICE-TECHNICIAN-WEB |
ADMIN | FIELDSERVICE-ADMINISTRATOR |
basevariablegroup_ID | codeProfileTemplateHeader |
---|---|
SWS.Options | FIELDSERVICE-TECHNICIAN-MOBILE |
verb: LIST
resultType: simple, extended reprendre les définitions du GET
"filters:" {
"codeBaseuser": "value", filter is equal
"lastName": "value", filter is contains
"firstName": "value", filter is contains
"codeCountry": "value", filter is equal
"codeBranchoffice": "value", filter is equal
"codeResourcetype": "value", filter is equal
"codeTeamtype": "value", filter is equal
"codeQueue": "value", filter is equal
"deviceName": "value", filter is equal
},
"orderBy": "value"
Valeurs possibles pour le tri "orderBy" :
lastNameAscfirstNameAsc : par nom et prénom ascendant
Compléments :
Pour les verb LIST et GET, les utilisateurs renvoyés ne correspondent qu'à des personnes (sont exclus les ressources, les équipes et les sous-traitants)
verb: DELETE
Une suppression d'un utilisateur (sw_data_baseuser) va supprimer en cascade les éléments dans les tables liées sw_data_baseprofileheaderuser et sw_data_baseuserprofile.