Je ne trouve pas de solution pour implémenter automatiquement des valeurs à une de mes tables lorsque je rajoute une valeur dans une autre table (implémentation automatique de plusieurs lignes dans ma table lorsque j’ajoute un produit dans une autre table de ma base de données).
Exemple : J’ajoute dans une table le produit “Fraise” et je veux que plusieurs lignes se créent automatiquement dans une autre table présentant les actions a réaliser : “ajouter le produit sur l’étalage”, “ajouter le prix du produit sur l’étalage”, “faire de la publicité pour le nouveau produit”. Et donc faire cela à chaque nouveau produit que l’on ajoute dans la BDD.
Cette question relève plus de la formation que du support. Avez vous suivi une formation ? Dites moi en message privé, le cas échéant, dans quel contexte client/partenaire vous intervenez pour qu’on puisse mieux contextualiser nos réponses.
Pour faire simple, dans Simplicité on manipule des objets métier logiques (dont la persistance est, par défaut, dans une table physique d’une base de données mais d’autres cas sont possibles). Donc déjà dans Simplicité, il faut toujours raisonner/travailler au niveau logique, jamais au niveau physique (ou très rarement et pour de bonnes raisons).
Il y a bien entendu des APIs Java pour manipuler les objets logiques pour faire, à minimum, du CRUD. Cf. cette doc qui décrit les hooks des objets logiques et fourni de nombreux exemples d’usage de ces APIs au sein de ces hooks: Simplicité® documentation/01-core/businessobject-code-hooks
Dans votre cas vous devrez sans doute implémenter des appels de type “create” (le C du CRUD) sur l’objet lié “action sur produit” dans le hook postCreate de l’objet “produit”.
ex:
try {
ObjectDB o = getGrant().getTmpObject("MyObject");
BusinessObjectTool t = o.getTool();
t.getForCreate();
o.setFieldValue("myField1", ...);
...
t.validateAndSave();
} catch (Exception e) {
AppLog.error("Error creating my object record", e, getGrant());
...
}
PS: Si vous débutez en Simplicité je vous suggère de vous installer le module de démo (via l’appstore) car celui-ci contient de nombreux exemples/patterns didactiques.
Simplicité est une plateforme low code => 80 à 90 % d’une appli peut en général se faire par paramétrage, le reste c’est des règles métier non méta modélisables pour lesquelles il est nécessaire d’écrire quelques lignes de code.
Ces règles s’implémentent dans des “hooks” = des point d’enrichissement du comportement paramétrable.
Il y a des hooks serveur en Java et des hooks UI en Javascript (les vraies régles metier sont toujours à implémenter coté serveur car la UI n’est qu’un mode d’accès parmi d’autres (il est aussi possible d’interagit avec Simplicité via des APIs (REST, …) et des interfaces “batch” (I/O).
En pratique l’essentiel des règles métier non paramétrables s’implémentent dans les hooks principaux des objets métier qui sont:
le postLoad pour les régles immuable pour toute la session d’un utilisateur donné
les preValidate pour “préparer” un record en vue de sa validation générique avant enregistrement
le postValidate pour ajouter des règles qui vont au delà de la validation générique du record
les pre/postSave/Create/Update/Delete qui permettent de faire des choses avant et après l’enregistrement d’un record (typiquement créer des records liés en cascade comme dans votre cas)
Il existe aussi un entre-deux = les contraintes qui restent paramétrables mais sont proches de code => en gros c’est pour les r-gles de type “if/then”
De manière générale le “but du jeu” avec Simplicité c’est d’écrire le moins de code possible en exploitant au maximum ce qui se paramètre.