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/11005603187/WebHook+Baseuser+V5.4) de cette page.

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

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 3) afficher la version suivante »

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.

  • Aucune étiquette