...
URL : {{apiBaseUrl}}/v1/Data/[codeProjet]/[entité][?options]
entité : nom de la table (sans « sw_data_ »).
Méthode : GET
Options : La première est précédée de « ? ». Les différentes options employées sont séparées par « & ».
limit=valeur : limite le nombre d’enregistrements renvoyés dans le document.
offset=valeur : offset du premier enregistrement à retourner dans le document.
srvAttrib=valeur : permet de filtrer les résultats sur la valeur du champ srvAttrib (suppression logique). Par défaut, seuls les enregistrements pour lesquels srvAttrib est égal à zéro.
srvExportserverExport=valeur : permet de filtrer les résultats sur la valeur du champ srvExport (à exporter).
...
Bloc de code | ||
---|---|---|
| ||
{ "companyCode": "RHOL", "entityName": "product", "srvExport": 0, "srvAttrib": 0, "limit": 20, "offset": 0, "returnFields": [ { "fieldName": "description", "aliasName": "designation" }, { "fieldName": "productfamily_ID" }, { "fieldName": "product_ID", "aliasName": "productCode" }, { "fieldName": "saleMultiple" } ], "filterFields": [ { "companyCode": "COMPANY", "filterKey": "branchOfficeKey", "fieldName": "branchoffice_ID", "operator": "Equal", "filterValues": [ "Office" "fieldName": "saleMultiple" ] }, ], { "filterFields": [ { "filterKey": "descriptionKey", "fieldName": "description", "operator": "StartWith", "filterValues": [ "BOUTON FK" ] }, { "filterKey": "saleMultipleKey", "fieldName": "saleMultiple", "ifNullValue": 1, "operator": "GreaterThanOrEqual", "filterValues": [ 5 ] } ], "filterGroups": [ { "groupLogicalOperator": "AND", "filterKeys": [ "descriptionKey", "saleMultipleKey" ], "groupKeys": [ "subGroup" ] }, { "groupKey": "subGroup", "groupLogicalOperator": "OR", "filterKeys": [ "descriptionKey", "saleMultipleKey" ] } ], "sortFields": [ { "fieldName": "description", "sortOrder": "Descending" }, { "fieldName": "defaultPrice", "sortOrder": "Ascending" } ] } |
...
companyCode (optionnel) : code de la société pour le filtrage des données. Par défaut, le code société associé à l'utilisateur connecté est utilisé.
entityName (obligatoire) : nom de la table (sans « sw_data_ »).
limit (optionnel) : limite le nombre d’enregistrements renvoyés dans le document. Par défaut, limité à 1000 enregistrements.
offset (optionnel) : offset du premier enregistrement à retourner dans le document. Par défaut, les lignes retournées commencent à l'index 0.
srvAttrib (optionnel) : permet de filtrer les résultats sur la valeur du champ srvAttrib (suppression logique). Par défaut, seuls les enregistrements pour lesquels srvAttrib est égal à zéro sont retournés.
srvExport (optionnel) : permet de filtrer les résultats sur la valeur du champ srvExport (à exporter).
returnFields (obligatoire) : liste des champs à retourner.
fieldName (obligatoire) : nom du champ à sélectionner.
aliasName (optionnel) : nom du champ à retourner dans le document.
filterFields (optionnel) : liste des champs sur lesquels il faut effectuer un filtrage de données.
companyCode (optionnel) : permet d’indiquer un code société dans le cas où le filtre est basé sur une table étrangère.
filterKey (optionnel) : permet d'identifier un filtre pour être utilisé ensuite dans un groupe de plusieurs filtres.
fieldName (obligatoire) : nom du champ à filtrer.
ifNullValue (optionnel) : valeur par défaut dans le filtre si la valeur n'est pas définie en base.
operator (obligatoire) : défini l'opérateur à appliquer dans le filtrage du champ. Les opérateurs possibles dépendent du type de champ, se référer à la matrice ci-dessous.
filterValues (obligatoire/optionnel en fonction de l'opérateur) : défini la ou les valeurs à utiliser dans le filtrage du champ. Pour certains opérateurs, ce champ doit rester vide.
filterGroups (optionnel) : liste des groupes de filtres sur lesquels il faut effectuer un filtrage de données.
groupKey (optionnel) : permet d'identifier un groupe pour être utilisé ensuite en tant que sous-groupe dans un groupe. Un groupe peut être déclaré dans plusieurs sous-groupes. Il n'est pas possible de faire des boucles infinies. Si les groupes sont utilisés, au minimum un groupe ne doit appartenir à aucun sous-groupe (groupe racine).
groupLogicalOperator (optionnel) : permet de définir l'opérateur logique à utiliser entre les filtres du groupe : valeurs possibles "AND" / "OR". Par défaut, l'opérateur "AND" est utilisé.
filterKeys (obligatoire) : liste des identifiants de filtre à inclure dans le groupe. Cette liste est automatiquement dédoublonnée (une seule occurance de filtre par groupe).
groupKeys (optionnel) : liste des identifiants de groupe à inclure dans le groupe (sous-groupes). Cette liste est automatiquement dédoublonnée (une seule occurance de sous-groupe par groupe).
sortFields (optionnel) : liste des champs sur lesquelles faire le tri des résultats retournés. Le tri est fait dans l'ordre de déclaration des champs.
fieldName (obligatoire) : nom du champ à trier.
sortOrder (optionnel) : sens du tri à appliquer : valeurs possibles "Ascending" / "Descending". Par défaut, le sens "Ascending" est utilisé.
Matrice des opérateurs autorisés en fonction du type de champ (est précisé les données à fournir en tant que valeur pour le filtre) :
Integer / Double / DateTime :
Undefined : aucune valeur de filtre
Defined : aucune valeur de filtre
Equal : une seule valeur de filtre
Different : une seule valeur de filtre
LessThanOrEqual : une seule valeur de filtre
LessThan : une seule valeur de filtre
GreaterThanOrEqual : une seule valeur de filtre
GreaterThan : une seule valeur de filtre
InList : une ou plusieurs valeurs de filtre
String :
Undefined : aucune valeur de filtre
Defined : aucune valeur de filtre
Equal : une seule valeur de filtre
Different : une seule valeur de filtre
StartWith : une seule valeur de filtre
InList : une ou plusieurs valeurs de filtre
Boolean :
Undefined : aucune valeur de filtre
Defined : aucune valeur de filtre
IsTrue : aucune valeur de filtre
IsFalse : aucune valeur de filtre
Blob :
Undefined : aucune valeur de filtre
Defined : aucune valeur de filtre
ForeignKey :
Undefined : aucune valeur de filtre
Defined : aucune valeur de filtre
Equal : une seule valeur de filtre
Different : une seule valeur de filtre
InList : une ou plusieurs valeurs de filtre
...
URL : {{apiBaseUrl}}/v1/Data/[codeProjet]/DataSet?[deleteMode]&[companyCode]&[srvExportserverExport]
Méthode : POST
DeleteMode : le mode de suppression est obligatoire et permet de déterminer le comportement de l’API concernant les enregistrements liés à l’enregistrement principal, et dont l’entité est citée dans le document, qui seraient absents du document. Trois modes sont distingués :
deleteMode=0 : aucune suppression n’est effectuée
deleteMode=1 : les enregistrements absents sont supprimés de manière logique (prévu mais non fonctionnel à ce jour)
deleteMode=2 : les enregistrements absent sont supprimés de manière physique.
srvExport serverExport(obligatoire) : permet de spécifier la valeur à mettre à jour pour le statut “export” (champ “srvExport”).
companyCode (optionnel) : code de la société pour le filtrage des données. Par défaut, le code société associé à l'utilisateur connecté est utilisé.
...
Bloc de code | ||
---|---|---|
| ||
{
"intervention": {
"intervention_ID": "INTER-SWM-01",
"customeraddress_ID": "SWING",
"startDate": "2017-11-27 08:30:00",
"endDate": "2017-11-27 17:00:00",
"interventiontype_ID": "MAINT",
"interventionpart": [{
"interventionpart_ID": "INTER-SWM-01-1",
"intervention_ID": "INTER-SWL-01",
"interventionequipment_ID": "BEU0364/3-1",
"product_ID": {
"product_ID": "CHRONO345/1",
"description": "Chrono 0345 1",
"productfamily_ID": {
"productfamily_ID": "CHRONO",
"label": "Chrono",
"productfamily_ID_parentfamily": {
…
}
}
},
"lineNumber": "1",
"estimatedQuantity": "2",
"productdepot_ID_source": "DPO-PRINC",
"removeFromStock": "1"
}, {
"interventionpart_ID": "INTER-SWM-01-2",
"intervention_ID": "INTER-SWM-01",
"interventionequipment_ID": "BEU0364/3-1",
"product_ID": " CHRONO343"
"lineNumber": "2",
"estimatedQuantity": "1",
"productdepot_ID_source": "DPO-PRINC",
"removeFromStock": "1"
}]
}
} |
...
URL : {{apiBaseUrl}}/v1/Data/[codeProjet]/ImportDataSet/?statistics=true|false
Dans le cadre de l’ajout/mise à jour, l’existence du code de l’enregistrement détermine s’il faut créer un enregistrement ou modifier l’enregistrement existant.
Chaque enregistrement doit contenir les mêmes champs.
Il est possible de fournir pour chaque enregistrement la valeur à appliquer aux champs systèmes srvExport
et srvAttrib
Méthode : POST
Document à envoyer :
...
URL : {{apiBaseUrl}}/v1/Data/[codeProjet]/RelationalDataSet?noServerExportUpdate=true|false
Dans le cadre de l’ajout/mise à jour, l’existence du code de l’enregistrement détermine s’il faut créer un enregistrement ou modifier l’enregistrement existant.
Les suppressions sont traitées en premier, puis les ajout/mise à jour et enfin les relations entre les entités.
La gestion des relations permets de mettre à jour la clé étrangère d’une entité (target) pour la faire pointer vers une autre entité (target).
Dans le cadre de la suppression, l’absence d’un enregistrement est toléré et ne lèvera pas d’exception.
Les modifications sont gérées de manière atomique ; si l’une des mises à jour échoue, l’ensemble de la transaction est annulé.
Le paramètre ‘noServerExportUpdate' permet de désactiver la mise à jour automatique du champ ‘srvExport’ lors de la modification d’un enregistrement existant.
Méthode : POST
Document à envoyer :
...