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)*/ }, /* 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 ())*/ }], /* 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 profile 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.