...
Bloc de code | ||
---|---|---|
| ||
'fieldsList': { 'field1': { 'type': '…', 'length': '…', 'label': '…', 'targetTableName': '…', 'targetFieldName': '…', 'fieldNameToShow': '…', 'alias': '…', 'mandatory': 0 or 1, 'cannotBeNull': 0 or 1, 'canGet': 0 or 1, 'canInsert': 0 or 1, 'canUpdate': 0 or 1, 'deprecated': 0 or 1, 'foreignParent': '…' }, 'field2': { 'type': '…', 'length': '…', 'label': '…', 'targetTableName': '…', 'targetFieldName': '…', 'fieldNameToShow': '…', 'alias': '…', 'mandatory': 0 or 1, 'cannotBeNull': 0 or 1, 'canGet': 0 or 1, 'canInsert': 0 or 1, 'canUpdate': 0 or 1, 'deprecated': 0 or 1, 'foreignParent': '…' }, 'field3': { 'type': '…', 'length': '…', 'label': '…', 'targetTableName': '…', 'targetFieldName': '…', 'fieldNameToShow': '…', 'alias': '…', 'mandatory': 0 or 1, 'cannotBeNull': 0 or 1, 'canGet': 0 or 1, 'canInsert': 0 or 1, 'canUpdate': 0 or 1, 'deprecated': 0 or 1, 'foreignParent': '…' } … }, 'outOfMainTableFields': [ { 'fieldName': '…', 'tableName': '…' } ], |
Description syntaxe
Propriété | Mode utilisation | Description |
---|---|---|
fieldsList | ||
type | LIST, GET | Type du champ dans le résultat (bloc "fieldList"). En standard on a : varchar, text, int, double, bool, datetime, timestamp, foreignkey, mediumblob. |
length | LIST, GET | Longueur du champ dans le résultat (bloc "fieldList)". En standard renseigné pour varchar, text. |
label | LIST, GET | Libellé du champ dans le résultat (bloc "fieldList)". En standard on retourne la clé de traduction en fonction du code langue du json. |
targetTableName | LIST, GET | Nom de la table liée pour les clés étrangères. A utiliser uniquement pour un champ spécifique qui pointe vers une table standard. |
targetFieldName | LIST, GET | Nom du champ à afficher pour les clés étrangères. |
fieldNameToShow | LIST, GET | Permet de changer le nom du champ en retour au lieu d’avoir le nom du champ en base de données. Ex : baseuser_ID -> Utilisateur du client |
alias | PUT | Permet de changer le du nom du champ à renseigner afin qu’il soit plus explicite. L’alias ne doit pas comporter d’espaces. Permet de se détacher de la base de données. Ex : city -> Ville |
mandatory | PUT | Permet de rendre un champ obligatoire dans le json. Valeurs possibles : 0, 1 (Par défaut on aura : 0 - Champ non obligatoire) |
cannotBeNull | PUT | Permet de rendre la valeur d'un champ obligatoire dans le json (c'est-à-dire que la valeur ne peut être à chaine vide ou null). Valeurs possibles : 0, 1 (Par défaut on aura : 0 - Valeur du champ non obligatoire) |
canGet | LIST, GET | Permet d'exclure un champ. Valeurs possibles : 0, 1 (Par défaut on aura : 1 - Champ retourné). |
canInsert | PUT | Permet de ne pas insérer la valeur d'un champ lors d'un ajout. Valeurs possibles : 0, 1 (Par défaut on aura : 1 - Insérer valeur) |
canUpdate | PUT | Permet de ne pas mettre à jour la valeur d'un champ lors d'une mise à jour. Valeurs possibles : 0, 1 (Par défaut on aura : 1 - Mettre à jour valeur) |
deprecated | PUT | Permet de ne plus prendre en compte un champ devenu obsolète. Il ne sera ni vérifié, ni inséré, ni mis à jour. Valeurs possibles : 0, 1 (Par défaut on aura : 0 - Non déprécié) |
checkForeign | PUT | Permet de ne pas contrôler la valeur d'une foreignkey. Valeurs possibles : 0, 1 (Par défaut on aura : 1 : Contrôler la foreignkey) |
canGetDefinitionList | DEFINITION | Permet de lister les valeurs d'une foreignkey. Valeurs possibles : 0, 1 (Par défaut on aura : 0 - Ne pas lister les valeurs) |
definitionLabelFieldName | DEFINITION | Permet de donner le champ à utiliser pour afficher le libellé dans la liste. (Si non renseigné on utilisera le champ "label" s'il existe dans la table). Possibilité d'utiliser des fonctions mysql pour par exemple concaténer le nom et le prénom dans la liste des utilisateurs : 'definitionLabelFieldName': 'CONCAT_WS(' ',lastName,firstName)' |
definitionFilter | DEFINITION | Permet de filtrer les enregistrements retournés. Ex pour ne pas afficher les ressources matérielles et les équipes dans la liste des utilisateurs : 'definitionFilter': 'resourcetype_ID IS NULL AND teamtype_ID IS NULL' |
definitionExtraFields | DEFINITION | Permet d'ajouter des champs additionnels en plus du code et du libellé |
dataType | DEFINITION, PUT | Permet de donner le type de data pour une foreignkey pointant vers une table generictype afin de filtrer et contrôler les données |
foreignParent | LIST, GET | Nom de la clé étrangère dans la table principale. Cas très particulier où on veut pointer vers une table de niveau +2. Sera combiné avec « outOfMainTableFields » Ex d’utilisation en standard : sw_data_intervention -> sw_datacustomeraddress -> sw_data_customer (ici « customeraddress_ID » pour notre exemple) Permet donc dans notre exemple de retourner une info de la table « sw_data_customer » |
outOfMainTableFields (utilisé uniquement en combinaison avec foreignParent) | ||
fieldname | LIST, GET | Nom de la clé étrangère dans la table de niveau +1 (ici « customer_ID » pour notre exemple) |
tableName | LIST, GET | Nom de la table liée de niveau +1 (ici « sw_data_customeraddress » pour notre exemple) |
Pour rappel en mode LIST et GET la réponse du webhook prend la forme ci-dessous :
...
On pourrait considérer que ceci est redondant avec 'extendedFieldsListToExclude', mais il s'agit ici d'une autre façon d'arriver à la même chose mais en plus il permet d'exclure les champs pour le 'resultType' en 'simple'.
Bloc de code | ||
---|---|---|
| ||
'fieldsList': { 'serialnumber': { 'canGet': 0 }, 'location': { 'canGet': 0 } } |
...
Bloc de code | ||
---|---|---|
| ||
"customer": { "codecustomer" : "C0000001", "name": "ENTREPRISE DIJON GUICHARD" "baseuser_ID" : "DUPREZ - Secteur Ouest GRO", |
Après :
Bloc de code | ||
---|---|---|
| ||
"customer": { "Code du client" : "C0000001", "Nom du client": "ENTREPRISE DIJON GUICHARD" "Utilisateur lié au client" : "DUPREZ - Secteur Ouest GRO", |
...
-> Résultat :
Bloc de code | ||
---|---|---|
| ||
"fields": [ { "fieldName" : "name", "fieldType": "varchar" "fieldLength" : "255", "fieldLabel" : "Nom du contact", } ] |
...
Bloc de code | ||
---|---|---|
| ||
"fields": [ { "fieldName" : "generictype_ID_country", "fieldType": "foreignkey" "fieldLength" : "", "fieldLabel" : "Pays", } ] |
Après :
Bloc de code | ||
---|---|---|
| ||
"fields": [ { "fieldName" : "generictype_ID_country", "fieldType": "foreignkey-varchar" "fieldLength" : "255", "fieldLabel" : "Pays", } ] |
...
Bloc de code | ||
---|---|---|
| ||
"action": [ "verb": "PUT" }, "data": { "customer" : { "name" : "ENTREPRISE DIJON GUICHARD", "postalCode": "21000" "city" : "DIJON", ... |
Après :
Bloc de code | ||
---|---|---|
| ||
"action": [ "verb": "PUT" }, "data": { "customer" : { "Nom_du_client" : "ENTREPRISE DIJON GUICHARD", "Code_Postal": "21000" "city" : "DIJON", ... |
...
Les opérateurs disponibles sont :
Opérateur | Correspondance MySql |
---|---|
Null | IS NULL |
NotNull | IS NOT NULL |
Equal | = |
NotEqual | <> |
Greater | > |
GreaterOrEqual | >= |
Less | < |
LessOrEqual | <= |
Contains | LIKE %...% |
In | IN |
Between | BETWEEN |
StartsWith | LIKE ...% |
EndsWith | LIKE %... |
Pour un filtre sur une clé étrangère l’opérateur doit toujours avoir la valeur « In »
...
Bloc de code |
---|
'strictFilters': [
{
'fieldName': 'vacationEnd',
'operator' : Equal,
},
{
'fieldName': 'vacationEndBetween',
'operator' : 'Between',
'targetField': 'vacationEnd'
}
] |
...
Bloc de code | ||
---|---|---|
| ||
"filters": { "v_A101": "1000" } |
Je veux filtrer mes équipements sur une localisation donnée (sw_data_equipmentaddress.customeraddress_ID) qui est active à une date précise (sw_data_equipmentaddress.startDate et endDate)
Bloc de code |
---|
'strictFilters': [
{
'fieldName': 'locationCodeCustomerAddressAndDate',
'operator': 'In',
'targetField': 'equipment_ID',
'query': '( SELECT e.equipment_ID
FROM sw_data_equipment AS e
INNER JOIN sw_data_equipmentaddress AS ea ON ea.equipment_ID = e.equipment_ID
INNER JOIN sw_data_customeraddress AS ca ON ca.customeraddress_ID=ea.customeraddress_ID
WHERE ca.codecustomeraddress = %valueToBeReplaced1%
AND (ea.startDate IS NULL OR ea.startDate <= %valueToBeReplaced2%)
AND (ea.endDate IS NULL OR ea.endDate >= %valueToBeReplaced2%) )'
}
] |
-> Appel webhook avec le filtre :
Bloc de code | ||
---|---|---|
| ||
"filters":
{
"locationCodeCustomerAddressAndDate": "1347&&2024-05-04 07:06:36"
} |
Info |
---|
Les paramètres sont séparés par && Dans notre exemple :
|
Tris
Permet de rajouter des tris spécifiques pour interroger les données en mode LIST.
...
Les ordres de tris disponibles sont :
Ordre | Description |
---|---|
asc | tri ascendant |
desc | tri descendant |
table (optionnel) : nom de la table liée sur laquelle on veut faire le tri. Ne pas utiliser si le tri est effectué sur un champ de la table principale. Ne peut être utilisé que si un champ est déjà lu dans la table liée (selon type “simple” ou “extended”). Pour le type “simple”, les tris sur des tables liées ne seront donc pas forcément tous disponibles.
...