Le SDK du web modeler est disponible dans le web modeler. Il permet aux utilisateurs d'accéder aux ressources depuis l'interface utilisateur et d'exécuter des calculs complexes lors de l'exécution de l'interface utilisateur.
Le SDK possède les classes suivantes
class Softyflow {}
class Collection {}
class SQLDatabase {}
class SoftyTables {}
class CustomList {}
class Report {}
class Instance {}
class Task {}
class Api {}
class Email {}
class File {}
Dans les sections suivantes, nous allons détailler chaque classe et les méthodes autorisées.
1 - Softyflow​
La classe Softyflow contient les méthodes système de Softyflow
Utilisation​
Cette classe est instanciée par défaut comme un objet nommé SF lorsque l'interface utilisateur est chargée, vous pouvez donc utiliser les méthodes directement en les appelant via l'objet "SF"
let currentMode = this.SF.getSF_mode();
getSF_mode​
Est une fonction qui retourne le mode de l'interface utilisateur en cours d'exécution
Retourne​
| Type | Description |
|---|
string | Retourne une chaîne de caractères ('test', 'uat', 'prod') |
Exemples​
let currentMode = this.SF.getSF_mode();
getSF_Version​
Est une fonction qui retourne la version de l'interface utilisateur en cours d'exécution
Retourne​
| Type | Description |
|---|
string | Retourne une chaîne de caractères ('test', 'uat', 'prod') |
Exemples​
let currentVersion = this.SF.getSF_Version();
queryParams​
Est une fonction qui retourne les paramètres de requête
| params | Description |
|---|
| select | optionnel. Les champs à sélectionner (champs: SF_mode, SF_version, SF_screen) |
Paramètres​
| Nom | Type | Description |
|---|
select | string | Les champs sélectionnés |
Retourne​
| Type | Description |
|---|
string | Retourne une chaîne de caractères |
Exemples​
let currentMode = this.SF.getSF_mode('SF_mode SF_version');
console.log(currentMode)
startProcess​
Est une fonction qui démarre un processus spécifique
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant du processus |
body | object | JSON des variables du processus |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let variables = {
"variable1": "value1",
"variable2": 1,
"variable3": true
}
await this.SF.startProcess('processId', variables);
validateCaptcha​
Est une fonction qui valide une action Google reCAPTCHA v3 et retourne le jeton généré.
Paramètres​
| Nom | Type | Description |
|---|
action | string | Le nom de l'action utilisé pour la vérification reCAPTCHA v3. |
Retourne​
| Type | Description |
|---|
Promise<string> | Retourne une Promise qui se résout en une chaîne de jeton reCAPTCHA. |
Exemples​
let token = await SF.utils.validateCaptcha("login_form");
saveNew​
Est une fonction qui vous permet de sauvegarder l'état de l'interface utilisateur
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de l'interface |
body | object | JSON des variables de l'interface |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let variables = {
"variable1": "value1",
"variable2": 1,
"variable3": true
}
await this.SF.saveNew('interfaceId', variables);
saveTask​
Est une fonction qui vous permet de sauvegarder l'état de l'interface de tâche
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de la tâche |
body | object | JSON des variables de la tâche |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let variables = {
"variable1": "value1",
"variable2": 1,
"variable3": true
}
await this.SF.saveTask('taskId', variables);
validateTask​
Permet de valider une tâche
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de la tâche |
body | object | JSON des variables de la tâche |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let variables = {
"variable1": "value1",
"variable2": 1,
"variable3": true
}
await this.SF.validateTask('taskId', variables);
getUserPendingTask​
Permet d'obtenir les tâches en attente assignées à l'utilisateur connecté.
Paramètres​
| Nom | Type | Description |
|---|
limit | string | Limite de résultats par page. |
page | string | Numéro de page |
dueDate | string | Date associée. |
fields | string | Champs. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await this.SF.getUserPendingTask('limit', 'page', 'dueDate', 'fields');
uploadImage​
Est une fonction qui télécharge une image sur le serveur en utilisant une requête POST multipart/form-data.
Paramètres​
| Nom | Type | Description |
|---|
data | FormData | Un objet FormData contenant le fichier image et toutes métadonnées supplémentaires. |
Retourne​
| Type | Description |
|---|
Promise<object> | Retourne une Promise qui se résout en données de réponse du serveur. |
Exemples​
const formData = new FormData();
formData.append("profileImage", file);
let response = await SF.utils.uploadImage(formData);
setListFromCollection​
Permet de définir une liste de données à partir d'une collection spécifique.
Paramètres​
| Nom | Type | Description |
|---|
collection | string | Identifiant de la collection. |
criteria | object | JSON de requĂŞte. |
limit | string | Limite de résultats. |
sort | string | Option de tri. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let criteria = {
firstName: new RegExp("p", "i")
}
await this.SF.setListFromCollection('collectionId', criteria, 10, 'sort');
setListFromCollectionAggregation​
Est une fonction qui effectue une opération d'agrégation sur une collection spécifiée en utilisant le pipeline d'agrégation fourni.
Paramètres​
| Nom | Type | Description |
|---|
collection | string | Le nom ou l'identifiant de la collection cible à agréger. |
aggreg | Array<object> | Un tableau d'étapes de pipeline d'agrégation (framework d'agrégation MongoDB). |
Retourne​
| Type | Description |
|---|
Promise<Array> | Retourne une Promise qui se résout en résultat de la requête d'agrégation. |
Exemples​
let results = await SF.utils.setListFromCollectionAggregation("users", [
{ $match: { age: { $gte: 18 } } },
{ $group: { _id: "$country", count: { $sum: 1 } } }
]);
setListFromReport​
Est une fonction qui effectue une requête d'agrégation dynamique sur une collection de rapport, en utilisant des filtres, un tri et des options de limite.
Paramètres​
| Nom | Type | Description |
|---|
report | string | L'identifiant ou le nom de la collection de rapport. |
query | object | Un objet représentant les conditions de filtre utilisant des opérateurs personnalisés ou MongoDB. |
[limit] | number | (Optionnel) Limite le nombre de documents retournés. |
[sort] | object | (Optionnel) Options de tri avec le champ by et la direction (-1 ou 1). |
Retourne​
| Type | Description |
|---|
Promise<Array> | Retourne une Promise qui se résout en résultat de l'agrégation. |
Exemples​
let result = await SF.utils.setListFromReport("monthly_sales", {
SF_createdBy: "admin@example.com",
region: "NA"
}, 10, { by: "createdAt", direction: -1 });
setListFromReportAggregation​
Est une fonction qui effectue une agrégation personnalisée sur une instance de rapport en utilisant un pipeline d'agrégation fourni.
Paramètres​
| Nom | Type | Description |
|---|
report | string | L'identifiant ou le nom de la collection de rapport. |
aggreg | Array<object> | Le pipeline d'agrégation à exécuter. |
Retourne​
| Type | Description |
|---|
Promise<Array> | Retourne une Promise qui se résout en résultat de l'agrégation. |
Exemples​
let data = await SF.utils.setListFromReportAggregation("monthly_reports", [
{ $match: { status: "completed" } },
{ $group: { _id: "$region", total: { $sum: "$amount" } } }
]);
setListFromSQL​
Permet de définir une liste de données à partir de la base de données cliente.
Paramètres​
| Nom | Type | Description |
|---|
clientDatabase | string | Identifiant de la base de données cliente. |
query | string | RequĂŞte de tableau. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await this.SF.setListFromSQL('clientDatabaseID', "code='MMA'");
setListFromCustomList​
Permet de définir une liste de données à partir de CustomList.
Paramètres​
| Nom | Type | Description |
|---|
CustomList | string | Identifiant de CustomList. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await this.SF.setListFromCustomList('CustomListID');
aggregateQuery​
Permet de définir une liste de données à partir de CustomList.
Paramètres​
| Nom | Type | Description |
|---|
type | string | Type de la ressource (collection, report, users, projects, external databases). |
id | string | Identifiant de la ressource. |
query | object | JSON d'une valeur Ă faire correspondre dans la ressource. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await this.SF.aggregateQuery('collection', '610c0343f6ebc7ddcb49cc3b', {value : "it"});
deleteFile​
Permet de supprimer un fichier en utilisant son identifiant.
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de la ressource. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await this.SF.deleteFile('610c0343f6ebc7ddcb49cc3b');
2 - Projects​
La classe Projects contient les méthodes qui vous permettront de gérer les projets.
Utilisation​
const projects = new Projects({ mode: 'test' });
aggregate​
Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés
Paramètres​
| Nom | Type | Description |
|---|
aggregation | array | Tableau d'agrégation |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let aggregation = [
{
"$match": { "status": "active" }
},
{
"$group": {
"_id": "$category",
"total": { "$sum": 1 }
}
}
]
let results = await projects.aggregate(aggregation);
3 - Users​
La classe Users contient les méthodes qui vous permettront de gérer les utilisateurs.
Utilisation​
const users = new Users();
Permet de créer un nouvel utilisateur.
Paramètres​
| Nom | Type | Description |
|---|
data | object | Contenu JSON des données utilisateur |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Voici les données utilisateur autorisées :
| champ | Description |
|---|
| email | Requis et unique. L'email de l'utilisateur (string) |
| lastName | Requis. Le nom de famille de l'utilisateur (string) |
| firstName | Requis. Le prénom de l'utilisateur (string) |
| group | Requis. Les identifiants des groupes d'utilisateur (array) |
| metadata | optionnel. Les métadonnées de l'utilisateur (json) |
| ideAccess | Requis. Droit d'accès à l'IDE (boolean) |
| blocked | optionnel. Blocage de l'utilisateur (boolean) |
Exemples​
let user = {
email: "email@softydev.com",
lastName : "last name",
firstName: "first name",
group: [],
metadata: {},
ideAccess: true,
blocked: false
}
await users.create(user);
Permet de mettre Ă jour un utilisateur
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de l'utilisateur. |
data | object | Données utilisateur. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Les mêmes données autorisées lors de la création d'un utilisateur. Les champs sont optionnels.
Exemples​
let newData = {
ideAccess: false
}
await users.update("userId", newData);
Permet de supprimer un utilisateur.
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de l'utilisateur. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await users.delete("userId");
findById​
Permet d'obtenir un utilisateur par identifiant.
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de l'utilisateur. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let user = await users.findById("userId");
Permet de lister les utilisateurs.
Paramètres​
| Nom | Type | Description |
|---|
criteria | object | JSON de requĂŞte. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let criteria = {
firstName: new RegExp("p", "i")
}
let usersList = await users.find(criteria);
Permet d'obtenir le nombre d'utilisateurs.
Paramètres​
| Nom | Type | Description |
|---|
criteria | object | JSON de requĂŞte |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let criteria = {
blocked: false
}
let count = await users.count(criteria);
findAndCount​
Obtenir une liste et le nombre d'utilisateurs
Paramètres​
| Nom | Type | Description |
|---|
body | object | JSON d'options. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Options​
Ces options sont optionnelles
| Option | Description |
|---|
| criteria | Spécifie le filtre de sélection (par défaut : {}) |
| fields | Sélectionne des champs spécifiques (exemple: "createdAt email") |
| limit | Nombre d'instances retournées (par défaut : 100/ sans limite : 0) |
| page | Numéro de page dépend de la limite (par défaut : 0) |
| sortby | Trie les résultats par clé (par défaut : createdAt) |
| direction | Ordre croissant (1) ou décroissant (-1) (par défaut : -1) |
Exemples​
let body = {
criteria: {
firstName: new RegExp("p", "i")
},
limit: 10,
page: 0,
sortBy: "createdAt",
direction: -1
}
let res = await users.findAndCount(body);
let usersList = res.data;
let count = res.count;
aggregate​
Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés
Paramètres​
| Nom | Type | Description |
|---|
aggregation | array | Tableau d'agrégation |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let aggregation = [
{
"$match": { "firstName": new RegExp("z", "i") }
},
{
"$project" : {
"_id": 1,
"firstName": 1,
"lastName": 1,
"email": 1
}
}
]
let usersList = await users.aggregate([aggregation]);
addRole​
Ajoute un rĂ´le Ă l'utilisateur en utilisant l'identifiant utilisateur et l'identifiant du groupe.
Paramètres​
| Nom | Type | Description |
|---|
userId | string | Identifiant utilisateur. |
groupid | string | Identifiant du groupe. |
mode | string | Mode de l'interface utilisateur en cours d'exécution |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await users.addRole("userId","groupId","SF_mode");
removeRole​
Retire un rĂ´le de l'utilisateur en utilisant l'identifiant utilisateur et l'identifiant du groupe.
Paramètres​
| Nom | Type | Description |
|---|
userId | string | Identifiant utilisateur. |
groupid | string | Identifiant du groupe. |
mode | string | Mode de l'interface utilisateur en cours d'exécution |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await users.removeRole("userId","groupId","SF_mode");
4 - Groups​
La classe Groups contient les méthodes qui vous permettront de gérer les groupes d'utilisateurs.
Utilisation​
const groups = new Groups();
findById​
Trouve un groupe par son identifiant unique.
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant du groupe |
Retourne​
| Type | Description |
|---|
promise | Retourne les données du groupe |
Exemples​
let group = await groups.findById("groupId123");
Trouve les groupes en fonction d'un critère de filtre.
Paramètres​
| Nom | Type | Description |
|---|
criteria | object | Objet de critères de recherche |
Retourne​
| Type | Description |
|---|
promise | Retourne un tableau de groupes |
Exemples​
let list = await groups.find({ name: /admin/i });
Compte le nombre de groupes correspondant aux critères.
Paramètres​
| Nom | Type | Description |
|---|
criteria | object | Critères de filtre |
Retourne​
| Type | Description |
|---|
promise | Retourne le nombre |
Exemples​
let total = await groups.count({ type: "system" });
findAndCount​
Trouve les groupes et retourne à la fois les résultats et le nombre total.
Paramètres​
| Nom | Type | Description |
|---|
body | object | Corps de requĂŞte avec filtres et pagination |
Retourne​
| Type | Description |
|---|
promise | Retourne un objet { data, count } |
Exemples​
let result = await groups.findAndCount({ limit: 10, offset: 0 });
aggregate​
Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés.
Paramètres​
| Nom | Type | Description |
|---|
aggregation | array | Tableau du pipeline d'agrégation |
Retourne​
| Type | Description |
|---|
promise | Retourne le résultat de l'agrégation |
Exemples​
let aggregation = [
{ $match: { type: "system" } },
{ $group: { _id: "$status", total: { $sum: 1 } } }
];
let stats = await groups.aggregate(aggregation);
Crée un nouveau groupe avec les données fournies.
Paramètres​
| Nom | Type | Description |
|---|
body | object | Données du groupe |
Retourne​
| Type | Description |
|---|
promise | Retourne le groupe créé |
Exemples​
let newGroup = await groups.create({ name: "Developers", type: "custom" });
Met Ă jour un groupe existant par identifiant.
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant du groupe |
body | object | Charge utile de mise Ă jour |
Retourne​
| Type | Description |
|---|
promise | Retourne le groupe mis Ă jour |
Exemples​
let updated = await groups.update("groupId123", { name: "Admins Updated" });
Supprime un groupe par identifiant.
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant du groupe |
Retourne​
| Type | Description |
|---|
promise | Retourne le résultat de suppression |
Exemples​
await groups.delete("groupId123");
groupUsers​
Récupère les utilisateurs appartenant à un groupe spécifique.
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant du groupe |
Retourne​
| Type | Description |
|---|
promise | Retourne un tableau d'utilisateurs dans le groupe |
Exemples​
let users = await groups.groupUsers("groupId123");
5 - Collection​
La classe Collection contient les méthodes qui vous permettront de gérer votre collection
Utilisation​
Vous pouvez instancier une classe Collection avec l'identifiant ou le nom de la collection. Vous pouvez ajouter l'option mode
| Option | Description |
|---|
| id | Requis. Identifiant ou nom de la collection |
| mode | optionnel. Spécifie le mode de la collection (par défaut : "test") |
const collection = new Collection({ id: 'collectionId', mode: 'test' });
Permet d'insérer un json dans une collection
Paramètres​
| Nom | Type | Description |
|---|
data | object | JSON d'une valeur à insérer dans la collection. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await collection.insert({ name: "name1", type : "type1" });
insertMany​
Permet d'insérer un tableau de json dans une collection.
Paramètres​
| Nom | Type | Description |
|---|
data | object | JSON d'une valeur à insérer dans la collection. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await collection.insertMany([{label : "IT", value : "it"}]);
updateMany​
Met à jour tous les documents qui satisfont les critères de requête spécifiés.
Paramètres​
| Nom | Type | Description |
|---|
criteria | object | JSON de requĂŞte. |
data | object | JSON de nouvelles données. |
options | object | JSON d'options |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let criteria = {
firstName: new RegExp("p", "i")
}
await collection.updateMany(criteria, [{ type : "type2" }], { upsert: true });
Permet de mettre Ă jour un document dans la collection
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant du document. |
data | object | JSON de nouvelles données. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await collection.update("documentId", { type : "type2" });
Permet de supprimer un document de la collection
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant du document. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await collection.delete("documentId");
findById​
Permet d'obtenir un objet par identifiant depuis la collection
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant du document. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let document = await collection.findById(id);
Permet de sélectionner les documents dans une collection
Paramètres​
| Nom | Type | Description |
|---|
body | object | JSON d'options. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Options​
Ces options sont optionnelles
| Option | Description |
|---|
| criteria | Spécifie le filtre de sélection (par défaut : {}) |
| limit | Nombre de documents retournés (par défaut : 100/ sans limite : 0) |
| page | Numéro de page dépend de la limite (par défaut : 0) |
| sortby | Trie les résultats par clé (par défaut : createdAt) |
| direction | Ordre croissant (1) ou décroissant (-1) (par défaut : -1) |
Exemples​
let body = {
criteria: {
name: new RegExp("p", "i"),
type: "type1"
},
limit: 10,
page: 0,
sortBy: "createdAt",
direction: -1
}
let documents = await collection.find(body);
Permet d'obtenir le nombre de documents qui correspondraient Ă une requĂŞte pour la collection
Paramètres​
| Nom | Type | Description |
|---|
criteria | object | JSON de requĂŞte |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let count = await collection.count({ type: "type1" });
aggregate​
Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés
Paramètres​
| Nom | Type | Description |
|---|
aggregation | array | Tableau d'agrégation |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let aggregation = [
{
"$match": { "type": "type1" }
},
{
"$project" : {
"_id": 1,
"name": 1
}
}
]
let documents = await collection.aggregate([aggregation]);
6 - SQLDatabase​
Gérez vos bases de données SQL externes via la classe SQLDatabase.
Utilisation​
Vous pouvez instancier une classe SQL avec l'identifiant et le mode (optionnel).
| Option | Description |
|---|
| id | Requis. Identifiant ou nom de la base de données |
| mode | optionnel. Spécifie le mode de la base de données (par défaut : "test") |
const sql = new SQLDatabase({ id: '610c0343f6ebc7ddcb49cc3b', mode: 'test' });
findOne​
Obtient les données d'une ligne de tableau
Paramètres​
| Nom | Type | Description |
|---|
tableName | string | Nom du tableau. |
Criteria | string | RequĂŞte de tableau. |
Retourne​
Exemples​
let res = await sql.findOne("client", "code='MMA'"))
Liste plusieurs lignes d'un tableau SQL
Paramètres​
| Nom | Type | Description |
|---|
tableName | string | Nom du tableau. |
options | string | RequĂŞte de tableau. |
Retourne​
Exemples​
let res = sql.find("client", "code='MMA'")
Obtient le nombre de lignes pour un tableau avec un critère
Paramètres​
| Nom | Type | Description |
|---|
tableName | string | Nom du tableau. |
options | string | RequĂŞte de tableau. |
Retourne​
| Type | Description |
|---|
array | Tableau avec un élément contenant le nombre |
Exemples​
let count = await sql.count("client", "code='MMA'");
execute​
Exécute une requête personnalisée sur la base de données.
Paramètres​
| Nom | Type | Description |
|---|
query | string | Chaîne de requête. |
Retourne​
| Type | Description |
|---|
array | Retourne un tableau. |
Exemples​
sql.execute("INSERT INTO client(code, intitule, representant, codepostal) VALUES('MDSX', 'holder', 'holder', 14000)")
Insère une ligne dans un tableau.
Paramètres​
| Nom | Type | Description |
|---|
tableName | string | Nom du tableau. |
data | object | Corps JSON. |
Retourne​
Exemples​
sql.insert("client", {
code: 'HelloWord',
codepostal: 14000
}
insertMany​
Insère plusieurs lignes dans un tableau
Paramètres​
| Nom | Type | Description |
|---|
tableName | string | Nom du tableau. |
data | array | Corps JSON. |
Retourne​
Exemples​
sql.insertMany("client", [
{ code: '#1' },
{ code: '#2' }
])
Met Ă jour les lignes.
Paramètres​
| Nom | Type | Description |
|---|
tableName | string | Nom du tableau. |
query | string | RequĂŞte de tableau. |
data | object | Corps JSON mis Ă jour. |
Retourne​
Exemples​
sql.update('client', "code='MMA'",
{
code: "MQS"
})
Supprime une/des ligne(s) dans votre tableau.
Paramètres​
| Nom | Type | Description |
|---|
tableName | string | Nom du tableau. |
query | string | RequĂŞte de tableau. |
Retourne​
Exemples​
sql.delete("client", "id=223")
7 - SoftyTables​
La classe SoftyTables fournit des méthodes pour interagir avec les ressources SoftyTable, vous permettant d'effectuer des opérations CRUD, d'exécuter des requêtes et de gérer les données de tableau depuis l'interface web.
Utilisation​
Vous pouvez instancier une classe SoftyTables avec les options id et mode.
| Option | Description |
|---|
| id | Requis. Identifiant de la SoftyTable |
| mode | optionnel. Spécifie le mode de SoftyTable (par défaut : "test") |
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
findById​
Récupère une seule ligne d'une SoftyTable par son identifiant.
Paramètres​
| Nom | Type | Description |
|---|
rowId | string | L'identifiant de la ligne |
Retourne​
| Type | Description |
|---|
promise | Se résout en données de la ligne |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
let row = await softyTable.findById('12345');
Liste les lignes d'une SoftyTable avec filtrage, tri et pagination optionnels.
Paramètres​
| Nom | Type | Description |
|---|
body | object | JSON d'options (criteria, limit, page, sortby, direction) |
Retourne​
| Type | Description |
|---|
promise | Se résout en un tableau de lignes de tableau |
Options​
Ces options sont optionnelles
| Option | Description |
|---|
| criteria | Spécifie le filtre de sélection avec clause where (par défaut : {}) |
| limit | Nombre de lignes retournées (par défaut : 100/ sans limite : 0) |
| page | Numéro de page dépend de la limite (par défaut : 0) |
| sortby | Trie les résultats par nom de champ (par défaut : createdAt) |
| direction | Ordre croissant (1) ou décroissant (-1) (par défaut : -1) |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
let rows = await softyTable.find({});
let body = {
criteria: {
where: { status: 'active' }
},
limit: 50,
page: 0,
sortby: 'createdAt',
direction: -1
}
let activeRows = await softyTable.find(body);
Compte le nombre de lignes dans une SoftyTable avec filtrage optionnel.
Paramètres​
| Nom | Type | Description |
|---|
criteria | object | Critères de requête avec clause where optionnelle |
Retourne​
| Type | Description |
|---|
promise | Se résout en un objet avec propriété count |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
let result = await softyTable.count({});
let result = await softyTable.count({
criteria: { where: { status: 'active' } }
});
findAndCount​
Obtient à la fois une liste de lignes et le nombre total correspondant aux critères.
Paramètres​
| Nom | Type | Description |
|---|
body | object | JSON d'options (criteria, limit, page, sortby, direction) |
Retourne​
| Type | Description |
|---|
promise | Se résout en objet { data, count } |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
let body = {
criteria: {
where: { status: 'active' }
},
limit: 10,
page: 0,
sortby: 'createdAt',
direction: -1
}
let result = await softyTable.findAndCount(body);
let rows = result.data;
let count = result.count;
Crée une seule ligne dans une SoftyTable.
Paramètres​
| Nom | Type | Description |
|---|
body | object | L'objet de données à insérer comme ligne |
Retourne​
| Type | Description |
|---|
promise | Se résout en données de la ligne créée |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
let newRow = await softyTable.insert({
name: 'John Doe',
email: 'john@example.com',
age: 30,
status: 'active'
});
insertMany​
Crée plusieurs lignes dans une SoftyTable en une seule fois.
Paramètres​
| Nom | Type | Description |
|---|
data | array | Tableau d'objets de données à insérer |
Retourne​
| Type | Description |
|---|
promise | Se résout en un tableau de lignes créées |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
let newRows = await softyTable.insertMany([
{ name: 'John Doe', email: 'john@example.com', age: 30 },
{ name: 'Jane Smith', email: 'jane@example.com', age: 25 },
{ name: 'Bob Johnson', email: 'bob@example.com', age: 35 }
]);
Met Ă jour une seule ligne dans une SoftyTable par son identifiant.
Paramètres​
| Nom | Type | Description |
|---|
rowId | string | L'identifiant de la ligne Ă mettre Ă jour |
body | object | Les champs et valeurs Ă mettre Ă jour |
Retourne​
| Type | Description |
|---|
promise | Se résout en ligne mise à jour |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
let updated = await softyTable.update('12345', {
status: 'inactive',
updatedAt: new Date()
});
updateMany​
Met à jour plusieurs lignes dans une SoftyTable qui correspondent à des critères spécifiques.
Paramètres​
| Nom | Type | Description |
|---|
criteria | object | Critères de requête avec clause where |
value | object | Les champs et valeurs Ă mettre Ă jour |
options | object | Options supplémentaires (optionnel) |
Retourne​
| Type | Description |
|---|
promise | Se résout en résultat de l'opération de mise à jour |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
let result = await softyTable.updateMany(
{ status: 'pending' },
{ status: 'active', processedAt: new Date() }
);
Supprime une seule ligne d'une SoftyTable par son identifiant.
Paramètres​
| Nom | Type | Description |
|---|
rowId | string | L'identifiant de la ligne |
Retourne​
| Type | Description |
|---|
promise | Se résout en résultat de suppression |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
await softyTable.delete('12345');
deleteMany​
Supprime plusieurs lignes d'une SoftyTable qui correspondent à des critères spécifiques.
Paramètres​
| Nom | Type | Description |
|---|
criteria | object | Critères de requête avec clause where |
Retourne​
| Type | Description |
|---|
promise | Se résout en résultat de suppression |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
await softyTable.deleteMany({ status: 'inactive' });
await softyTable.deleteMany({
createdAt: { $lt: new Date('2024-01-01') }
});
Efface toutes les lignes d'une SoftyTable (supprime toutes les données).
Retourne​
| Type | Description |
|---|
promise | Se résout en résultat de suppression |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
await softyTable.clear();
getOptions​
Récupère les options pour les champs de sélection dans une SoftyTable.
Retourne​
| Type | Description |
|---|
promise | Se résout en tableau d'options |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
let options = await softyTable.getOptions();
execute​
Exécute une requête SQL personnalisée sur la SoftyTable.
Paramètres​
| Nom | Type | Description |
|---|
query | string | La requête SQL à exécuter |
options | object | Options de requĂŞte avec replacements et type |
Objet Options​
| Champ | Type | Description |
|---|
replacements | object | Valeurs à remplacer dans les requêtes paramétrées |
type | string | Type de requĂŞte: 'SELECT', 'INSERT', 'UPDATE', 'DELETE', 'RAW', 'SHOWTABLES' |
Retourne​
| Type | Description |
|---|
promise | Se résout en résultats de la requête |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
let results = await softyTable.execute(
'SELECT * FROM my_table WHERE status = :status',
{
replacements: { status: 'active' },
type: 'SELECT'
}
);
let results = await softyTable.execute(
'UPDATE my_table SET status = "processed" WHERE created_at < NOW() - INTERVAL 30 DAY',
{ type: 'UPDATE' }
);
migrate​
Migre les lignes dans une SoftyTable (pour les opérations de migration de données).
Retourne​
| Type | Description |
|---|
promise | Se résout en résultat de migration |
Exemples​
const softyTable = new SoftyTables({id: 'tableId', mode: 'test'});
let result = await softyTable.migrate();
8 - CustomList​
La classe CustomList contient les méthodes qui vous permettront de gérer votre liste personnalisée
Utilisation​
Vous pouvez instancier une classe CustomList avec l'identifiant de la liste personnalisée. Vous pouvez ajouter d'autres options (mode, versionId)
| Option | Description |
|---|
| id | Requis. Identifiant de la liste personnalisée |
| mode | optionnel. Spécifie le mode de la liste personnalisée (par défaut : "test") |
| versionId | optionnel. Identifiant de la version depuis laquelle obtenir la liste personnalisée |
const customList = new CustomList({id: 'id', mode: 'test', versionId: "vId"});
Obtient les données d'une liste personnalisée
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let customListData = await customList.get();
9 - Report​
La classe Report vous permettra de manipuler un rapport spécifique
Utilisation​
Vous pouvez instancier une classe Report avec l'identifiant du rapport. Vous pouvez ajouter l'option mode
| Option | Description |
|---|
| id | Requis. Spécifie le mode de la liste personnalisée (par défaut : "test") |
| mode | optionnel. Spécifie le mode de la liste personnalisée (par défaut : "test") |
const report = new Report({id: 'id', mode: 'test'});
aggregate​
Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés
Paramètres​
| Nom | Type | Description |
|---|
aggregation | array | Tableau d'agrégation |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let aggregation = [
{
"$match": { "SF_status": "Running" }
},
{
"$sort": { "SF_createdAt": -1 }
}
]
let instances = await report.aggregate(aggregation);
10 - Instance​
La classe Instance contient les méthodes qui vous permettront de gérer les instances
Utilisation​
const inctance = new Instance();
findById​
Obtient une instance par identifiant
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de l'instance. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let oneInctance = await inctance.findById(id);
Liste les instances
Paramètres​
| Nom | Type | Description |
|---|
criteria | object | JSON de requĂŞte. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let instances = await inctance.find({ status: "Running" });
Permet d'obtenir le nombre d'instances qui correspondraient Ă une requĂŞte
Paramètres​
| Nom | Type | Description |
|---|
criteria | object | JSON de requĂŞte |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let count = await inctance.count({ status: "Running" });
findAndCount​
Obtient une liste et le nombre d'instances
Paramètres​
| Nom | Type | Description |
|---|
body | object | JSON d'options. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Options​
Ces options sont optionnelles
| Option | Description |
|---|
| criteria | Spécifie le filtre de sélection (par défaut : {}) |
| fields | Sélectionne des champs spécifiques (exemple: "createdAt name status") |
| limit | Nombre d'instances retournées (par défaut : 100/ sans limite : 0) |
| page | Numéro de page dépend de la limite (par défaut : 0) |
| sortby | Trie les résultats par clé (par défaut : createdAt) |
| direction | Ordre croissant (1) ou décroissant (-1) (par défaut : -1) |
Exemples​
let body = {
criteria: {
status: "Running"
},
limit: 10,
page: 0,
sortBy: "createdAt",
direction: -1
}
let res = await inctance.findAndCount(body);
let instances = res.data;
let count = res.count;
aggregate​
Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés
Paramètres​
| Nom | Type | Description |
|---|
aggregation | array | Tableau d'agrégation |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let aggregation = [
{
"$match": { "status": "End" }
},
{
"$project" : {
"_id": 1,
"name": 1
}
}
]
let inctances = await inctance.aggregate([aggregation]);
Met Ă jour une instance
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de l'instance. |
data | object | JSON de nouvelles données. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await inctance.update(id, { status : "End" });
Supprime une instance
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de l'instance. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await inctance.delete(id);
history​
Obtient l'historique de l'instance.
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de l'instance. |
data | object | JSON de données. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await inctance.history(id, { status : "End" });
11 - Task​
La classe Task contient les méthodes qui vous permettront de gérer les tâches
Utilisation​
findById​
Obtient une tâche par identifiant
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de la tâche. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let oneTask = await task.findById(id);
Liste les tâches
Paramètres​
| Nom | Type | Description |
|---|
criteria | object | JSON de requĂŞte. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let tasks = await task.find({ instanceId: "instanceId" });
Permet d'obtenir le nombre de tâches qui correspondraient à une requête
Paramètres​
| Nom | Type | Description |
|---|
criteria | object | JSON de requĂŞte |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let count = await task.count({ instanceId: "instanceId" });
findAndCount​
Obtient une liste et le nombre de tâches
Paramètres​
| Nom | Type | Description |
|---|
body | object | JSON d'options. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Options​
Ces options sont optionnelles
| Option | Description |
|---|
| criteria | Spécifie le filtre de sélection (par défaut : {}) |
| assignedToConnected | Pour obtenir les tâches de l'utilisateur connecté (par défaut : false) |
| fields | Sélectionne des champs spécifiques (exemple: "createdAt name status") |
| limit | Nombre d'instances retournées (par défaut : 100/ sans limite : 0) |
| page | Numéro de page dépend de la limite (par défaut : 0) |
| sortby | Trie les résultats par clé (par défaut : createdAt) |
| direction | Ordre croissant (1) ou décroissant (-1) (par défaut : -1) |
Exemples​
let body = {
criteria: {
status: "Running"
},
assignedToConnected: true,
limit: 10,
page: 0,
sortBy: "createdAt",
direction: -1
}
let res = await task.findAndCount(body);
let tasks = res.data;
let count = res.count;
aggregate​
Les opérations d'agrégation traitent les enregistrements de données et retournent des résultats calculés
Paramètres​
| Nom | Type | Description |
|---|
aggregation | array | Tableau d'agrégation |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let aggregation = [
{
"$match": { "status": "End" }
},
{
"$project" : {
"_id": 1,
"name": 1
}
}
]
let tasks = await task.aggregate([aggregation]);
Met à jour une tâche
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de la tâche. |
data | object | JSON de nouvelles données. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await task.update(id, { status : "End" });
Supprime une tâche
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de la tâche. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
getNextValue​
Obtient la valeur suivante d'une tâche.
Paramètres​
| Nom | Type | Description |
|---|
name | string | Nom de la variable. |
[padding] | number | Remplissage du résultat avec 000000. |
mode | string | Mode de l'utilisateur en cours d'exécution. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await task.getNextValue("name",5,"SF_mode");
history​
Obtient l'historique d'une tâche par son identifiant.
Paramètres​
| Nom | Type | Description |
|---|
id | string | Identifiant de la tâche |
body | object | Paramètres de requête (optionnel) |
Retourne​
| Type | Description |
|---|
promise | Retourne un objet { data, count } |
Exemples​
let log = await task.history("taskId123", {});
12 - Api​
La classe Api contient les méthodes qui vous permettront de gérer vos Apis.
Utilisation​
Invoque une API.
Paramètres​
| Nom | Type | Description |
|---|
body | object | JSON d'options. |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
let body = {
const myElement = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
myElement.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
myElement.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
}
await api.invoke(body);
13 - Email​
La classe Email contient les méthodes qui vous permettront de gérer vos emails.
Utilisation​
const email = new Email();
Envoie un email.
Paramètres​
| Nom | Type | Description |
|---|
assignee | string | Email de l'utilisateur destinataire. |
subject | string | Sujet de l'email. |
variables | object | JSON d'options. |
mailTemplate | object | Modèle d'email. |
mailProvider | object | Fournisseur par défaut Softyflow. |
cc | string | JSON d'options. |
from | string | Email de l'utilisateur expéditeur. |
replyTo | string | * |
Retourne​
| Type | Description |
|---|
promise | Retourne une promesse |
Exemples​
await email.send("assignee","subject",{"var1", "var2"},{"mailTemplate"},{"mailProvider"},"mail of user in cc", "senderMail","replyTo");
14 - DataSource​
La classe DataSource fournit des méthodes génériques de manipulation de données pour diverses sources telles que les collections, les tableaux ou les rapports.
Utilisation​
const ds = new DataSource();
findOne​
Récupère un seul document d'une source de données.
Paramètres​
| Nom | Type | Description |
|---|
source | string | Nom de la source |
options | object | Options de requĂŞte |
Retourne​
| Type | Description |
|---|
promise | Retourne un seul document |
Exemples​
let doc = await ds.findOne("users", { filter: { email: "user@example.com" } });
Liste plusieurs documents d'une source de données.
Paramètres​
| Nom | Type | Description |
|---|
source | string | Nom de la source |
options | object | Options de requĂŞte |
Retourne​
| Type | Description |
|---|
promise | Retourne un tableau de documents |
Exemples​
let docs = await ds.list("users", { filter: { active: true } });
Compte le nombre de documents dans une source de données.
Paramètres​
| Nom | Type | Description |
|---|
source | string | Nom de la source |
options | object | Options de requĂŞte |
Retourne​
| Type | Description |
|---|
promise | Retourne le nombre de documents |
Exemples​
let total = await ds.count("orders", { filter: { status: "delivered" } });
Met à jour des documents dans une source de données.
Paramètres​
| Nom | Type | Description |
|---|
source | string | Nom de la source |
options | object | Conditions de requĂŞte |
data | object | Données à mettre à jour |
Retourne​
| Type | Description |
|---|
promise | Retourne le résultat de mise à jour |
Exemples​
await ds.update("products", { filter: { stock: 0 } }, { restock: true });
Insère un seul document dans une source de données.
Paramètres​
| Nom | Type | Description |
|---|
source | string | Nom de la source |
data | object | Document à insérer |
options | object | Options supplémentaires |
Retourne​
| Type | Description |
|---|
promise | Retourne le résultat d'insertion |
Exemples​
await ds.insert("logs", { action: "login", userId: "abc123" });
insertMany​
Insère plusieurs documents dans une source de données.
Paramètres​
| Nom | Type | Description |
|---|
source | string | Nom de la source |
data | array | Tableau de documents |
options | object | Options supplémentaires |
Retourne​
| Type | Description |
|---|
promise | Retourne le résultat d'insertion |
Exemples​
await ds.insertMany("logs", [{ action: "view" }, { action: "edit" }]);
Supprime des documents d'une source de données.
Paramètres​
| Nom | Type | Description |
|---|
source | string | Nom de la source |
options | object | Critères de suppression |
Retourne​
| Type | Description |
|---|
promise | Retourne le résultat de suppression |
Exemples​
await ds.delete("sessions", { filter: { expired: true } });
execute​
Exécute une action ou commande personnalisée sur une source de données.
Paramètres​
| Nom | Type | Description |
|---|
source | string | Nom de la source |
options | object | Paramètres d'exécution |
Retourne​
| Type | Description |
|---|
promise | Retourne le résultat d'exécution |
Exemples​
await ds.execute("jobs", { action: "resetAll" });
15 - File​
La classe File fournit des méthodes pour générer des fichiers PDF à partir de modèles HTML stockés et de contextes de variables en utilisant des endpoints API.
generatePDF​
Génère un fichier PDF en récupérant le contenu HTML d'un fichier et en le publiant avec des données contextuelles.
Paramètres​
| Nom | Type | Description |
|---|
filename | string | - Nom souhaité pour le PDF généré |
fid | string | - Identifiant du fichier depuis lequel récupérer le contenu |
context | object | - Données contextuelles pour le rendu PDF (par exemple, variables) |
Retourne​
| Type | Description |
|---|
Promise | - Se résout avec la réponse de génération du PDF |
Example​
const file = new File();
file.generatePDF("output.pdf", "605c72...", { variables: { user: "Alice" } });
genratePDFWithVar​
Génère du contenu PDF en utilisant des variables directement en publiant vers un endpoint de génération de contenu spécifique.
Paramètres​
| Nom | Type | Description |
|---|
name | string | - Nom pour la sortie (non utilisé directement dans l'appel) |
fid | string | - Identifiant du fichier du modèle |
context | object | - Données de variables utilisées pour le rendu du modèle |
Retourne​
| Type | Description |
|---|
Promise | - Se résout avec la réponse du serveur |
Example​
const file = new File();
file.genratePDFWithVar("Invoice", "605c72...", { variables: { amount: 100, user: "Alice" } });