SDK du Modélisateur de Processus
Le SDK du modélisateur de processus est disponible dans toute variable d'entrée ou de sortie du modélisateur de processus. Il permet aux utilisateurs d'accéder aux ressources du processus et d'exécuter des calculs complexes lors de l'exécution de l'instance.
Le SDK est accessible via la variable SF.
Le SDK a les attributs suivants
var SF = {
collection : Object,
user : Object,
file : Object,
utils : Object,
sql : Object,
instance : Object,
task : Object,
process : Object,
softyTable : Object,
mode : String,
};
Dans les sections suivantes, nous expliquerons chaque attribut et les méthodes autorisées.
L'objet utils contient les méthodes qui vous permettront de
Génère un numéro incrémenternel basé sur un nom de chaîne unique. L'ID résultant peut être complété par des zéros à une longueur spécifiée si souhaité.
| Nom | Type | Description |
|---|
| name | string | Un nom unique utilisé comme clé pour générer l'ID. |
| padding | number | (Optionnel) Le nombre de chiffres à ajouter au résultat (par ex., 6 → 000001). |
| Type | Description |
|---|
| Promise | Une Promesse qui se résout en l'ID généré. |
let id = await SF.utils.nextValue("leave_request");
let id = await SF.utils.nextValue("leave_request",5);
Est une fonction qui exécute une commande shell locale et retourne la sortie rognée.
| Nom | Type | Description |
|---|
cmd | string | La commande shell à exécuter. |
| Type | Description |
|---|
Promise<{data: string}> | Une Promesse qui se résout en un objet contenant la sortie standard rognée. |
let result = await SF.utils.shellExecLocal('echo Hello World');
let result = await SF.utils.shellExecLocal('pwd');
Est une fonction qui exécute une commande shell sur un serveur distant.
| Nom | Type | Description |
|---|
cdm | string | La commande shell à exécuter à distance. |
options | object | Options de connexion SSH (host, port, username, password/privateKey, etc.). |
| Type | Description |
|---|
Promise<{data: string, code: number}> | Une Promesse qui se résout en un objet contenant : – data : Le résultat de la sortie standard sous forme de chaîne. – code : Le code de sortie de la commande distante. |
let result = await SF.utils.shellExecRemote('ls -l', {
host: '192.168.1.10',
port: 22,
username: 'user',
password: 'password'
});
Axios est un client HTTP basé sur des Promesses pour le navigateur et node.js
En savoir plus Voir la documentation officielle
let id = SF.utils.axios.get('/data/json/123')
.then(function (response) {
console.log(response);
}).catch(function (error) {
console.log(error);
});
Permet d'insérer un tableau de JSON dans une collection
| Nom | Type | Description |
|---|
collection | string | Nom de la collection dans Softyflow. |
data | array | Tableau de données à insérer dans la collection. |
| Type | Description |
|---|
Promise | Une Promesse indiquant le résultat de l'opération d'insertion. |
await SF.collection.insertMany("cost-centers",[{label : "IT", value : "it"}])
Permet d'insérer un JSON dans une collection
| Nom | Type | Description |
|---|
collection | string | Nom de la collection dans Softyflow. |
data | object | Objet JSON représentant une valeur unique à insérer dans la collection. |
| Type | Description |
|---|
Promise | Une Promesse indiquant le résultat de l'opération d'insertion. |
await SF.collection.insertOne("cost-centers",{label : "IT", value : "it"})
Retourne un document qui satisfait les critères de requête spécifiés. Si plusieurs documents satisfont la requête, cette méthode retourne le premier document.
| Nom | Type | Description |
|---|
collection | string | Nom de la collection dans Softyflow. |
query | object | Objet JSON de valeurs à correspondre dans la collection. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.collection.findOne("cost-centers",{value : "it"})
Retourne tous les documents qui satisfont les critères de requête spécifiés.
| Nom | Type | Description |
|---|
collection | string | Nom de la collection dans Softyflow. |
query | object | Objet JSON représentant les critères pour correspondre aux documents dans la collection. |
| Type | Description |
|---|
Promise | Une Promesse indiquant le résultat de l'opération de recherche. |
await SF.collection.find("cost-centers",{value : "it"})
Met à jour le premier document qui satisfait les critères de requête spécifiés.
| Nom | Type | Description |
|---|
collection | string | Nom de la collection dans Softyflow. |
query | object | Objet JSON représentant les critères pour correspondre aux documents dans la collection. |
body | object | Objet JSON représentant les champs et valeurs à mettre à jour. |
| Type | Description |
|---|
Promise | Une Promesse indiquant le résultat de l'opération de mise à jour. |
await SF.collection.updateOne("cost-centers",{value : "it"})
Met à jour tous les documents qui satisfont les critères de requête spécifiés.
| Nom | Type | Description |
|---|
collection | string | Nom de la collection dans Softyflow. |
query | object | Objet JSON représentant la valeur à correspondre dans la collection. |
body | object | Objet JSON représentant la valeur à mettre à jour dans la collection. |
| Type | Description |
|---|
Promise | Retourne une Promesse. |
await SF.collection.update("cost-centers",{value : "it"})
Retourne le nombre de documents dans la collection.
| Nom | Type | Description |
|---|
collection | string | Nom de la collection dans Softyflow. |
| Type | Description |
|---|
Promise | Retourne une Promesse. |
await SF.collection.count("cost-centers")
Permet de supprimer un document d'une collection.
| Nom | Type | Description |
|---|
collection | string | Nom de la collection dans Softyflow. |
query | object | Objet JSON représentant la valeur à correspondre dans la collection. |
| Type | Description |
|---|
Promise | Retourne une Promesse. |
await SF.collection.deleteOne("cost-centers")
Permet de supprimer plusieurs documents d'une collection.
| Nom | Type | Description |
|---|
collection | string | Nom de la collection dans Softyflow. |
query | object | Objet JSON représentant la valeur à correspondre dans la collection. |
| Type | Description |
|---|
Promise | Retourne une Promesse. |
await SF.collection.delete("cost-centers")
Les opérations d'agrégation traitent les enregistrements de données et retournent les résultats calculés
| Nom | Type | Description |
|---|
collection | string | Nom de la collection dans Softyflow. |
aggregation | array | Tableau d'agrégation. |
| Type | Description |
|---|
Promise | Retourne une Promesse. |
let aggregation = [
{
"$match": { "type": "type1" }
},
{
"$project" : {
"_id": 1,
"name": 1
}
}
]
await SF.collection.aggregate("cost-centers",[aggregation]);
Supprime tous les documents d'une collection.
| Nom | Type | Description |
|---|
collection | string | Nom de la collection dans Softyflow. |
| Type | Description |
|---|
Promise | Retourne une Promesse. |
await SF.collection.cleanCollection("cost-centers")
Est une fonction qui effectue plusieurs opérations d'écriture (insertion, mise à jour, suppression) en un seul lot sur une collection MongoDB spécifiée.
| Nom | Type | Description |
|---|
col | string | Le nom de la collection (sans suffixe). |
bulkOps | Array | Un tableau d'opérations d'écriture en lot (insertOne, updateOne, deleteOne, etc.). |
| Type | Description |
|---|
Promise | Retourne une Promesse qui se résout une fois que toutes les opérations en lot sont terminées. |
let bulkOps = [
{ insertOne: { document: { name: 'John', age: 30 } } },
{ updateOne: { filter: { name: 'John' }, update: { $set: { age: 31 } } } },
{ deleteOne: { filter: { name: 'John' } } }
];
await SF.utils.bulkWrite('users', bulkOps);
Obtenir tous les utilisateurs dans un groupe donné
| Nom | Type | Description |
|---|
group | string | ID du groupe. |
| Type | Description |
|---|
Promise | Retourne une Promesse. |
await SF.user.getUsersinGroup("6042551d231e8c8ade19bc09")
Obtenir les utilisateurs qui existent dans certains groupes.
| Nom | Type | Description |
|---|
groups | string[] | Tableau d'ID de groupes. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.user.getUsersInGroupList(["6042551d231e8c8ade19bc09","6040e3679c81cf1b60b698f4"])
Est une fonction qui récupère un document de groupe de la collection "groups" par son ID unique.
| Nom | Type | Description |
|---|
id | string | L'ID du groupe à récupérer. |
| Type | Description |
|---|
| `Promise<object | null>` |
let group = await SF.utils.getGroupById("60c72b2f9f1b2c3c8f3b8b0b");
let group = await SF.utils.getGroupById("60c72b2f9f1b2c3c8f3b8b0c");
Obtenir les informations de l'utilisateur en utilisant son ID.
| Nom | Type | Description |
|---|
id | string | ID de l'utilisateur. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.user.getUserById("6042551d231e8c8ade19bc09")
Obtenir les informations de l'utilisateur en utilisant son email.
| Nom | Type | Description |
|---|
email | string | Email de l'utilisateur. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.user.getUserByMail("test@softydev.com")
Mettre à jour les informations de l'utilisateur en utilisant son ID.
| Nom | Type | Description |
|---|
id | string | ID de l'utilisateur. |
data | object | Objet JSON des valeurs à mettre à jour. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.user.updateUserById("6042551d231e8c8ade19bc09",{firstName : "test"})
Mettre à jour une liste d'utilisateurs individuellement : à chaque utilisateur sa propre charge utile.
| Nom | Type | Description |
|---|
Array | Array | Tableau d'objets, chacun contenant un ID d'utilisateur et une charge utile. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.user.updateUsersEach([{ _id: "6042551d231e8c8ade19bc09", payload: { firstName: 'firstUser' } }, { _id: "6042551d231e8c8ade19bc10", payload: { firstName: 'secondUser' } }])
Mettre à jour les métadonnées de l'utilisateur en utilisant son ID.
| Nom | Type | Description |
|---|
id | string | ID de l'utilisateur. |
field | object | Objet JSON des métadonnées à mettre à jour. |
value | object | Objet JSON des valeurs à mettre à jour. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.user.updateUserMetadataById("6042551d231e8c8ade19bc09", "Manager", "test")
Obtenir les informations des utilisateurs.
| Type | Description |
|---|
Promise | Retourne une Promesse |
Obtenir les métadonnées de l'utilisateur en utilisant son ID.
| Nom | Type | Description |
|---|
id | string | ID de l'utilisateur. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.user.getUserMetadata("6042551d231e8c8ade19bc09")
Ajouter un utilisateur à un groupe en utilisant l'ID utilisateur et l'ID groupe.
| Nom | Type | Description |
|---|
userId | string | ID de l'utilisateur. |
groupid | string | ID du groupe. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.user.addUserToGroup("6042551d231e8c8ade19bc09", "62c2b6f74d16c2a2c19dcdb7")
Retirer un utilisateur d'un groupe en utilisant l'ID utilisateur et l'ID groupe.
| Nom | Type | Description |
|---|
userId | string | ID de l'utilisateur. |
groupid | string | ID du groupe. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.user.removeUserfromGroup("6042551d231e8c8ade19bc09", "62c2b6f74d16c2a2c19dcdb7")
Permet de créer un nouvel utilisateur.
| Nom | Type | Description |
|---|
data | object | Contenu JSON des données utilisateur |
| 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 IDs des groupes de production de l'utilisateur (array) |
| group_test | Optionnel. Les IDs des groupes de test de l'utilisateur (array) |
| group_uat | Optionnel. Les IDs des groupes UAT de l'utilisateur (array) |
| metadata_test | Optionnel. Les métadonnées de test de l'utilisateur (json) |
| metadata_uat | Optionnel. Les métadonnées UAT de l'utilisateur (json) |
| metadata_prod | Optionnel. Les métadonnées de production de l'utilisateur (json) |
| ideAccess | Requis. Droit d'accès à l'IDE (boolean) |
| blocked | Optionnel. Blocage de l'utilisateur (boolean) |
| sendMail | Optionnel. Envoyer une notification par email à l'utilisateur (boolean) |
| getPassword | Optionnel. Récupérer le mot de passe généré dans la réponse (boolean) |
var newUser = {
firstName: "Jean",
lastName: "Martin",
email: "jean.martin@softy.io",
group_test: [],
group_uat: [],
group: [],
metadata_test: {},
metadata_uat: {},
metadata_prod: {},
ideAccess: false,
blocked: false,
sendMail: false,
getPassword: false
};
var user = await SF.user.createUser(newUser);
La classe File gère les fichiers stockés dans le système GridFS de MongoDB, fournissant des méthodes pour télécharger, récupérer, supprimer et générer des PDF à partir de modèles EJS.
const file = new File(gridfsBucket);
Récupérer le contenu textuel d'un fichier par son ID.
| Nom | Type | Description |
|---|
id | string | ObjectId du fichier |
encoding | string | Encodage à utiliser (par défaut : 'utf8') |
| Type | Description |
|---|
Promise<object> | Métadonnées du fichier avec champ content |
let result = await file.getFileContentById("64bfa28cfabc123...", "utf8");
console.log(result.content);
Récupérer le contenu binaire d'un fichier sous forme de Buffer.
| Nom | Type | Description |
|---|
id | string | ObjectId du fichier |
| Type | Description |
|---|
Promise<Buffer> | Données du fichier sous forme de Buffer |
let buffer = await file.getFileBufferById("64bfa28cfabc123...");
Générer un PDF à partir d'un fichier modèle EJS stocké et le sauvegarder dans GridFS.
| Nom | Type | Description |
|---|
dump_var | any | Non utilisé |
fid | string | ID du fichier modèle |
context | object | Contexte de génération PDF |
| Type | Description |
|---|
Promise<object> | Métadonnées du fichier PDF sauvegardé |
context.variables : Variables injectées dans le modèle.context.SF_pdfName : Nom optionnel pour le PDF généré.
await file.generatePDFFromTemplate(null, 'templateId', {
variables: { name: "John" },
SF_pdfName: "user-report.pdf"
});
Créer et télécharger un fichier à partir d'un Buffer.
| Nom | Type | Description |
|---|
fileMetadata | object | Métadonnées (filename, contentType, etc.) |
bufferContent | Buffer | Contenu binaire du fichier |
| Type | Description |
|---|
Promise<object> | Métadonnées du fichier sauvegardé |
await file.createFileFromBuffer({ filename: "doc.txt", contentType: "text/plain" }, Buffer.from("Hello"));
Remplir un modèle de document (Word, Excel, LibreOffice, etc.) avec des données en utilisant le moteur de rendu Carbone. Cette méthode prend un fichier modèle stocké dans la base de données, le fusionne avec les données fournies et crée un nouveau document rempli.
| Nom | Type | Description |
|---|
id | string | ObjectId du fichier modèle |
data | object | Données JSON à injecter dans le modèle |
| Type | Description |
|---|
Promise<string> | ID du fichier du document rempli nouvellement créé |
Pour créer des modèles compatibles avec cette méthode :
- Utilisez des logiciels bureautiques standard (Microsoft Office, LibreOffice, OpenOffice)
- Insérez des espaces réservés en utilisant la syntaxe Carbone :
{d.fieldName} - Formats supportés : DOCX, XLSX, PPTX, ODT, ODS, ODP, et plus
Pour des informations détaillées sur la création de modèles et les fonctionnalités avancées (boucles, conditions, formateurs), consultez la documentation officielle de Carbone.
let data = {
customerName: "John Doe",
amount: 1500,
date: "2025-01-15",
items: [
{ product: "Widget A", quantity: 5, price: 100 },
{ product: "Widget B", quantity: 10, price: 50 }
]
};
let filledDocumentId = await SF.file.fillTemplate("64bfa28cfabc123...", data);
console.log("ID du document rempli:", filledDocumentId);
Le moteur Carbone prend en charge des fonctionnalités avancées :
- Boucles : Répéter des sections pour des tableaux de données
- Conditions : Afficher/masquer du contenu en fonction des données
- Formateurs : Formater les dates, nombres, texte
- Objets imbriqués : Accéder aux structures de données imbriquées
- Calculs : Effectuer des calculs dans les modèles
Exemple de modèle avec boucles :
Articles de la facture :
{d.items[i].product} - Qté : {d.items[i].quantity} - Prix : {d.items[i].price}
Pour plus d'informations, visitez Documentation Carbone.io.
Est une fonction qui supprime un fichier de la base de données par son ID unique.
| Nom | Type | Description |
|---|
id | string | L'ID du fichier à supprimer. |
| Type | Description |
|---|
Promise<object> | Se résout en un objet indiquant le statut de suppression : { deleted: 1 } en cas de succès, { deleted: 0 } en cas d'échec. |
let result = await SF.utils.deleteFileById("60c72b2f9f1b2c3c8f3b8b0b");
let result = await SF.utils.deleteFileById("60c72b2f9f1b2c3c8f3b8b0c");
Insérer une ligne dans votre table SQL
| Nom | Type | Description |
|---|
id | string | ID de la base de données. |
data | object | Données à insérer dans la base de données. |
| Type | Description |
|---|
object | Retourne un objet |
await SF.sql.insertOne("610c0343f6ebc7ddcb49cc3b", "client", {
code: 'MMA',
codepostal: 225
})
Insérer un tableau de lignes dans votre table SQL
| Nom | Type | Description |
|---|
id | string | ID de la base de données. |
data | array | Données à insérer dans la base de données. |
| Type | Description |
|---|
object | Retourne un objet |
await SF.sql.insertMany("610c0343f6ebc7ddcb49cc3b", "client", [{
code: 'MMA',
codepostal: 225
}])
Trouver des données dans votre table SQL.
| Nom | Type | Description |
|---|
id | string | ID de la base de données. |
name | string | Nom de la table. |
data | string | Critères pour interroger la base de données. |
| Type | Description |
|---|
object | Retourne un objet |
await SF.sql.findOne("610c0343f6ebc7ddcb49cc3b", "client", "code='MGMT'")
Trouver toutes les lignes dans votre table SQL qui correspondent à un certain critère.
| Nom | Type | Description |
|---|
id | string | ID de la base de données. |
name | string | Nom de la table. |
data | string | Critères pour interroger la base de données. |
| Type | Description |
|---|
object | Retourne un objet |
await SF.sql.find("610c0343f6ebc7ddcb49cc3b", "client", "code='MGMT'")
Mettre à jour les données dans votre base de données.
| Nom | Type | Description |
|---|
id | string | ID de la base de données. |
name | string | Nom de la table. |
data | string | Critères pour interroger la base de données. |
newData | object | Données mises à jour. |
| Type | Description |
|---|
object | Retourne un objet |
await SF.sql.update("610c0343f6ebc7ddcb49cc3b", "client", "code='MDMS'", {
code: 'CLEA'
})
Supprimer des lignes de votre base de données.
| Nom | Type | Description |
|---|
id | string | ID de la base de données. |
name | string | Nom de la table. |
data | string | Critères pour interroger la base de données. |
| Type | Description |
|---|
object | Retourne un objet |
await SF.sql.delete("610c0343f6ebc7ddcb49cc3b", "client", "code='CLEA'")
Compter les lignes dans votre base de données.
| Nom | Type | Description |
|---|
id | string | ID de la base de données. |
name | string | Nom de la table. |
data | string | Critères pour interroger la base de données. |
| Type | Description |
|---|
object | Retourne un objet |
await SF.sql.count("610c0343f6ebc7ddcb49cc3b", "client", "code='CLEA'")
Exécuter des instructions personnalisées/complexes sur votre base de données.
| Nom | Type | Description |
|---|
id | string | ID de la base de données. |
query | string | Instruction SQL. |
| Type | Description |
|---|
object | Retourne un objet |
await SF.sql.execute('610c0343f6ebc7ddcb49cc3b', "DELETE FROM client WHERE code='KL'")
Initier un processus existant.
| Nom | Type | Description |
|---|
processId | string | ID du processus. |
| Type | Description |
|---|
object | Retourne un objet |
await SF.instance.launchProcess('610c0343f6ebc7ddcb49cc3b')
Trouver une instance qui satisfait les critères de requête spécifiés.
| Nom | Type | Description |
|---|
query | object | Objet JSON de critères pour correspondre à l'instance. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.instance.findOne({ _id: ObjectId('610c0343f6ebc7ddcb49cc3b') })
Trouver toutes les instances qui satisfont les critères de requête spécifiés.
| Nom | Type | Description |
|---|
query | object | Objet JSON de critères pour correspondre aux instances. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.instance.find({ status: 'running' })
Obtenir la dernière tâche en attente de l'instance
| Nom | Type | Description |
|---|
instanceId | string | ID de l'instance. |
| Type | Description |
|---|
object | Retourne un objet |
await SF.instance.pendingTask('610c0343f6ebc7ddcb49cc3b')
Obtenir les Mesures de l'instance
| Nom | Type | Description |
|---|
instanceId | string | ID de l'instance. |
| Type | Description |
|---|
object | Retourne un objet |
await SF.instance.getMeasures('610c0343f6ebc7ddcb49cc3b')
Valider une tâche.
| Nom | Type | Description |
|---|
taskId | string | ID de la tâche. |
variables | object | JSON des variables. |
| Type | Description |
|---|
object | Retourne un objet |
let variables = {
"variable1": "value1",
"variable2": 1,
"variable3": true
}
await SF.instance.validateTask('610c0343f6ebc7ddcb49cc3b',variables)
Mettre à jour les variables en utilisant l'ID de l'instance.
| Nom | Type | Description |
|---|
Id | string | ID de l'instance. |
data | object | JSON des données des variables. |
| Type | Description |
|---|
object | Retourne un objet |
let data = {
"variable1": "value1",
"variable2": 1,
"variable3": true
}
await SF.instance.updateVariablesById('610c0343f6ebc7ddcb49cc3b',data)
Est une fonction qui lie une instance enfant à une instance père dans la collection "instances", basée sur une étape d'activité spécifique.
| Nom | Type | Description |
|---|
fatherId | string | L'ID de l'instance père. |
childId | string | L'ID de l'instance enfant à attacher. |
stepId | string | L'ID de l'étape représentant l'activité dans l'instance père. |
| Type | Description |
|---|
Promise<object> | Se résout en { done: true } si l'attachement réussit. |
let result = await SF.utils.attachChildInstance(
"661e9d8a1a2b2f7f8d3c4e1f",
"661e9d9b2b5e2f8f8d3c5f0a",
"step123"
);
Est une fonction qui récupère un document d'instance par son ID, avec une projection optionnelle pour sélectionner des champs spécifiques.
| Nom | Type | Description |
|---|
instanceId | string | L'ID de l'instance à récupérer. |
projection | object | (Optionnel) Projection MongoDB pour spécifier quels champs retourner. |
| Type | Description |
|---|
Promise<object \| null> | Se résout en document d'instance s'il est trouvé, ou null sinon. |
let instance = await SF.utils.getVariablesById("661e9d8a1a2b2f7f8d3c4e1f");
let instance = await SF.utils.getVariablesById("661e9d8a1a2b2f7f8d3c4e1f", { variables: 1 });
Supprime une instance par son ID, et supprime également tous les historiques, tâches et instancelights associés à cette instance.
| Nom | Type | Description |
|---|
id | string | L'ID de l'instance à supprimer. |
| Type | Description |
|---|
Promise<object> | Se résout en { done: true } si la suppression réussit. |
let result = await SF.instance.deleteInstanceById("661e9d8a1a2b2f7f8d3c4e1f");
Supprime plusieurs instances et instancelights associés à un ID de processus donné et une requête supplémentaire. Cette méthode ne supprime PAS les tâches et historiques associés pour des raisons de performance.
| Nom | Type | Description |
|---|
processId | string | L'ID du processus dont les instances doivent être supprimées. |
query | object | Paramètres de requête supplémentaires pour filtrer les instances à supprimer. |
| Type | Description |
|---|
Promise<object> | Se résout en { done: true } si réussi. |
let result = await SF.instance.deleteManyInstances("661e9d8a1a2b2f7f8d3c4e1f", { status: "completed" });
Supprime plusieurs instances avec toutes leurs données associées (tâches, historiques et instancelights) associées à un ID de processus donné et une requête. Il s'agit d'une opération de nettoyage complète.
| Nom | Type | Description |
|---|
processId | string | L'ID du processus dont les instances doivent être supprimées. |
query | object | Paramètres de requête supplémentaires pour filtrer les instances à supprimer. |
| Type | Description |
|---|
Promise<object> | Se résout en { done: true } si réussi. |
let result = await SF.instance.deleteManyInstancesWithTasksAndHistories(
"661e9d8a1a2b2f7f8d3c4e1f",
{ status: "completed" }
);
let result = await SF.instance.deleteManyInstancesWithTasksAndHistories(
"661e9d8a1a2b2f7f8d3c4e1f",
{ createdAt: { $lt: new Date('2024-01-01') } }
);
Est une fonction qui met à jour les variables d'une instance, recalcule les mesures associées basées sur la définition du processus, et les met à jour à la fois dans l'instance et la dernière tâche associée.
| Nom | Type | Description |
|---|
id | string | L'ID de l'instance à mettre à jour. |
data | object | Paires clé-valeur de variables à mettre à jour dans l'instance. |
| Type | Description |
|---|
Promise<object> | Se résout en { done: true } si la mise à jour réussit. |
let result = await SF.utils.updateInstanceVariables("661e9d8a1a2b2f7f8d3c4e1f", {
amount: 1500,
dueDate: "2025-05-30"
});
Le SDK SoftyTable 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 table.
Le SoftyTable est disponible en tant qu'instance directe sur l'objet SF. Toutes les méthodes prennent l'ID de la table comme premier paramètre :
await SF.softyTable.list('tableId123', criteria);
Récupérer les lignes d'une SoftyTable avec filtrage, tri et pagination optionnels.
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
criteria | object | Critères de requête avec where, attributes, include, group, etc. optionnels (par défaut : {}) |
limit | number | Nombre maximum de lignes à retourner (par défaut : 100) |
page | number | Numéro de page pour la pagination (par défaut : 0) |
sortby | string | Nom du champ pour trier (par défaut : 'createdAt') |
direction | number | Direction du tri : 1 pour ASC, -1 pour DESC (par défaut : 1) |
order | array | Tableau d'ordre personnalisé, par ex. [['field', 'ASC']] (par défaut : null) |
| Type | Description |
|---|
Promise | Se résout en un tableau de lignes de table |
let rows = await SF.softyTable.list('610c0343f6ebc7ddcb49cc3b');
let activeRows = await SF.softyTable.list(
'610c0343f6ebc7ddcb49cc3b',
{ where: { status: 'active' } },
50,
0,
'createdAt',
-1
);
let rows = await SF.softyTable.list(
'610c0343f6ebc7ddcb49cc3b',
{
where: { age: { $gte: 18 } },
attributes: ['name', 'email', 'age']
},
20,
0
);
Compter le nombre de lignes dans une SoftyTable avec filtrage optionnel.
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
criteria | object | Critères de requête avec clause where optionnelle (par défaut : {}) |
| Type | Description |
|---|
Promise | Se résout en un objet avec propriété count |
let result = await SF.softyTable.count('610c0343f6ebc7ddcb49cc3b');
let result = await SF.softyTable.count(
'610c0343f6ebc7ddcb49cc3b',
{ where: { status: 'active' } }
);
Créer une seule ligne dans une SoftyTable.
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
data | object | L'objet de données à insérer comme ligne |
| Type | Description |
|---|
Promise | Se résout en données de la ligne créée |
let newRow = await SF.softyTable.create(
'610c0343f6ebc7ddcb49cc3b',
{
name: 'John Doe',
email: 'john@example.com',
age: 30,
status: 'active'
}
);
Créer plusieurs lignes dans une SoftyTable en une seule fois.
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
data | array | Tableau d'objets de données à insérer |
| Type | Description |
|---|
Promise | Se résout en un tableau de lignes créées |
let newRows = await SF.softyTable.createMany(
'610c0343f6ebc7ddcb49cc3b',
[
{ 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 }
]
);
Récupérer une seule ligne d'une SoftyTable par son ID.
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
rowId | string | L'ID de la ligne |
| Type | Description |
|---|
Promise | Se résout en données de la ligne |
let row = await SF.softyTable.retrieve('610c0343f6ebc7ddcb49cc3b', '12345');
Mettre à jour une seule ligne dans une SoftyTable par son ID.
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
rowId | string | L'ID de la ligne à mettre à jour |
data | object | Les champs et valeurs à mettre à jour |
| Type | Description |
|---|
Promise | Se résout en ligne mise à jour |
let updated = await SF.softyTable.update(
'610c0343f6ebc7ddcb49cc3b',
'12345',
{
status: 'inactive',
updatedAt: new Date()
}
);
Mettre à jour plusieurs lignes dans une SoftyTable qui correspondent à des critères spécifiques.
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
criteria | object | Critères de requête avec clause where |
data | object | Les champs et valeurs à mettre à jour |
| Type | Description |
|---|
Promise | Se résout en résultat de l'opération de mise à jour |
let result = await SF.softyTable.updateMany(
'610c0343f6ebc7ddcb49cc3b',
{ status: 'pending' },
{ status: 'active', processedAt: new Date() }
);
Supprimer une seule ligne d'une SoftyTable par son ID.
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
rowId | string | L'ID de la ligne |
| Type | Description |
|---|
Promise | Se résout en résultat de suppression |
await SF.softyTable.delete('610c0343f6ebc7ddcb49cc3b', '12345');
Supprimer plusieurs lignes d'une SoftyTable qui correspondent à des critères spécifiques.
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
criteria | object | Critères de requête avec clause where |
| Type | Description |
|---|
Promise | Se résout en résultat de suppression |
await SF.softyTable.deleteMany(
'610c0343f6ebc7ddcb49cc3b',
{ status: 'inactive' }
);
await SF.softyTable.deleteMany(
'610c0343f6ebc7ddcb49cc3b',
{ createdAt: { $lt: new Date('2024-01-01') } }
);
Effacer toutes les lignes d'une SoftyTable (supprimer toutes les données).
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
| Type | Description |
|---|
Promise | Se résout en résultat de suppression |
await SF.softyTable.clear('610c0343f6ebc7ddcb49cc3b');
Récupérer les options pour les champs de sélection dans une SoftyTable.
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
optionsId | string | L'ID du champ d'options |
| Type | Description |
|---|
Promise | Se résout en tableau d'options |
let options = await SF.softyTable.getOptions(
'610c0343f6ebc7ddcb49cc3b',
'status_field'
);
Lister les lignes d'une table jointe (relation plusieurs-à-plusieurs).
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
joinTableId | string | L'ID du champ de table de jointure |
criteria | object | Critères de requête avec clause where optionnelle (par défaut : {}) |
limit | number | Nombre maximum de lignes à retourner (par défaut : 100) |
page | number | Numéro de page pour la pagination (par défaut : 0) |
sortby | string | Nom du champ pour trier (par défaut : 'createdAt') |
direction | number | Direction du tri : 1 pour ASC, -1 pour DESC (par défaut : 1) |
order | array | Tableau d'ordre personnalisé (par défaut : null) |
| Type | Description |
|---|
Promise | Se résout en un tableau de lignes jointes |
let relatedItems = await SF.softyTable.joinTableList(
'610c0343f6ebc7ddcb49cc3b',
'related_products'
);
let items = await SF.softyTable.joinTableList(
'610c0343f6ebc7ddcb49cc3b',
'related_products',
{ where: { category: 'electronics' } },
20,
0,
'price',
-1
);
Compter les lignes d'une table jointe (relation plusieurs-à-plusieurs).
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
joinTableId | string | L'ID du champ de table de jointure |
criteria | object | Critères de requête avec clause where optionnelle (par défaut : {}) |
| Type | Description |
|---|
Promise | Se résout en un objet avec count |
let result = await SF.softyTable.joinTableCount(
'610c0343f6ebc7ddcb49cc3b',
'related_products'
);
let result = await SF.softyTable.joinTableCount(
'610c0343f6ebc7ddcb49cc3b',
'related_products',
{ where: { category: 'electronics' } }
);
Exécuter une requête SQL personnalisée sur la SoftyTable.
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
query | string | La requête SQL à exécuter |
options | object | Options de requête avec replacements et type (par défaut : {}) |
| 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' |
| Type | Description |
|---|
Promise | Se résout en résultats de la requête |
let results = await SF.softyTable.execute(
'610c0343f6ebc7ddcb49cc3b',
'SELECT * FROM my_table WHERE status = :status',
{
replacements: { status: 'active' },
type: 'SELECT'
}
);
let results = await SF.softyTable.execute(
'610c0343f6ebc7ddcb49cc3b',
'UPDATE my_table SET status = "processed" WHERE created_at < NOW() - INTERVAL 30 DAY',
{ type: 'UPDATE' }
);
Migrer les lignes dans une SoftyTable (pour les opérations de migration de données).
| Nom | Type | Description |
|---|
tableId | string | L'ID de la SoftyTable |
migrationData | object | Données de configuration de migration |
| Type | Description |
|---|
Promise | Se résout en résultat de migration |
let result = await SF.softyTable.migrate(
'610c0343f6ebc7ddcb49cc3b',
{
}
);
Le SDK Task fournit des méthodes pour interagir avec les ressources de tâche, vous permettant d'interroger, mettre à jour, sauvegarder et supprimer des tâches.
Trouver une tâche qui satisfait les critères de requête spécifiés.
| Nom | Type | Description |
|---|
query | object | Objet JSON de critères pour correspondre à la tâche. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.task.findOne({ _id: ObjectId('610c0343f6ebc7ddcb49cc3b') })
Trouver toutes les tâches qui satisfont les critères de requête spécifiés.
| Nom | Type | Description |
|---|
query | object | Objet JSON de critères pour correspondre aux tâches. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.task.find({ status: 'pending' })
Supprimer une tâche par son ID.
| Nom | Type | Description |
|---|
id | string | ID de la tâche. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.task.deleteTaskById('610c0343f6ebc7ddcb49cc3b')
Supprimer plusieurs tâches qui correspondent aux critères de requête spécifiés.
| Nom | Type | Description |
|---|
query | object | Objet JSON de critères pour correspondre aux tâches. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.task.deleteMany({ status: 'completed' })
await SF.task.deleteMany({ instanceId: ObjectId('610c0343f6ebc7ddcb49cc3b') })
Supprimer tous les enregistrements d'historique associés à une tâche spécifique.
| Nom | Type | Description |
|---|
taskId | string | ID de la tâche. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.task.deleteHistoryByTaskId('610c0343f6ebc7ddcb49cc3b')
Supprimer tous les enregistrements d'historique associés à une instance spécifique.
| Nom | Type | Description |
|---|
instanceId | string | ID de l'instance. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.task.deleteHistoryByInstanceId('610c0343f6ebc7ddcb49cc3b')
Supprimer les enregistrements d'historique qui correspondent aux critères de requête spécifiés.
| Nom | Type | Description |
|---|
query | object | Objet JSON de critères pour correspondre aux historiques. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.task.deleteHistory({ action: 'task_completed' })
await SF.task.deleteHistory({ createdAt: { $lt: new Date('2024-01-01') } })
Sauvegarder une tâche avec des données mises à jour.
| Nom | Type | Description |
|---|
taskId | string | ID de la tâche. |
body | object | Objet JSON avec données de tâche. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.task.saveTask('610c0343f6ebc7ddcb49cc3b', {
status: 'in-progress',
assignee: 'user123'
})
Mettre à jour une tâche par son ID.
| Nom | Type | Description |
|---|
id | string | ID de la tâche. |
data | object | Objet JSON des valeurs à mettre à jour. |
| Type | Description |
|---|
Promise | Retourne une Promesse |
await SF.task.updateTask('610c0343f6ebc7ddcb49cc3b', {
status: 'completed',
completedAt: new Date()
})