Sujets connexes | Sommaire des aspects techniques liés à la version full-web Arborescence des classes de données complexes Les champs gérés directement par le serveur |
Fonction REST "fw_CRUD"
Les tables concernées
Les tables de type "Fichier"
Nom de la table | Clef sur l'index à utiliser | Champs complémentaires | Nom de l'unité | Plus d'information |
---|---|---|---|---|
Famille | ID | ListeCerfa MontantTotalCerfa | RecordFamille | Structure de la table |
Personne | ID | RecordPersonne | Structure de la table |
Privacy by design des tables "Famille" & "Personne"
La fonction assure le filtrage à la source coté serveur c'est à dire :
- que seul les données que l'utilisateur peut consulter sont envoyé à l'interface client
- que les données qui sont reçu de l'interface client sont filtrées avant d'être enregistré afin d'éviter tout risque
Fonction | Droit générique | Droit complémentaire pour certains champs | Géré par | |
---|---|---|---|---|
Nom du champ | Droit nécessaire | |||
Voir | dfLecture | TSQLLoGeAsRecord.IsAutorisetable | ||
Cerfa* | dfLectureComptable ou dcLecture ou dfVoirEstDonateur | TSQLLoGeAsRecord.GetListeChamp | ||
ListeCerfa MontantTotalCerfa | dfLectureComptable ou dcLecture | TSQLLoGeAsRecord.CRUD_Read | ||
MemoPerso | dfLectureConfidentielle | TSQLLoGeAsRecord.GetListeChamp | ||
Champs perso “comptable” | dfLectureComptable ou dcLectur | TSQLLoGeAsRecord.GetListeChamp | ||
si archivé en plus | dfVoirArchive | |||
pour Modifier | dfEdition | Interface & TSQLLoGeAsRecord.CRUD_Update | ||
pour Créer | dfAjout | Interface & TSQLLoGeAsRecord.CRUD_Create | ||
pour Supprimer | dfSuppression | Interface & TSQLLoGeAsRecord.CRUD_Delete |
Les tables de type "Comptable"
Nom de la table | Clef sur l'index à utiliser | Champs complémentaires | Nom de l'unité | Plus d'information |
---|
Les autres tables
Nom de la table | Clef sur l'index à utiliser | Champs complémentaires | Nom de l'unité | Plus d'information |
---|---|---|---|---|
Config | NomFichier | RecordConfig | Structure de la table Détail du contenu |
|
FichierTexte | NomFichier | RecordFichierTexte | Structure de la table Détail du contenu |
Paramètres d'entrée
NB : Pour accéder à cette fonction le demandeur doit au préalable être identifié
Nom du paramètres | Attendu |
---|---|
Fonction | Indique le type d'action attendu du serveur (seul la première lettre est significative). |
Record | Json correspondant à une classe descendante de “TSQLLoGeAsRecord” |
SQLTableName | Nom de la table à “travailler” |
Info | Information sur le demandeur sous forme d'un Json'{"SUIDBase":"31ADD2E180378001", "Exercice":2019,"Secteur":1, "LogonName":"jetest@pgi.logeas.fr"}'
|
Contenu de record suivant la fonction
Fonction | Explication | Contenu de Record | Droits à vérifier | Actions spécifiques |
---|---|---|---|---|
Create | Création/ajout d'un nouvel enregistrement dans la table | Le champ ID doit être inférieur ou égal à 0 Les autres champs contenir les valeurs attendus (hors champs automatiques) Voir dans la doc les champs obligatoires | dfAjout | * Mise à jour des champs automatique |
Read | Lecture d'un enregistrement de la table | Le champ Key de la table doit contenir la valeur attendu | dfLecture | |
Lecture de la table entiére | Le champ Key de la table doit contenir la valeur 0 ou ' ' | dfLecture | ||
Update | Modification d'un enregistrement de la table | Le champ ID doit contenir le numéro de l'enregistrement Les autres champs contenir les valeurs attendus (hors champs automatiques) | dfEdition | * Mise à jour des champs automatique |
Delete | Effacement d'un enregistrement de la table | Le champ ID doit contenir le numéro de l'enregistrement à dfSuppression | dfLecture |
NB:
- L'archivage d'un enregistrement passe par un update (Champ “archive')
- Chaque modification est pisté dans le piste d'audit
Appel de la fonction CRUD depuis Angular
Appel "Simple"
Ce mode d'appel est à utiliser par exemple pour récupérer une liste de paramétrage
constructor( private REST:MormotClientService ) {};
L'appel nécessite la bibliothèque MormotClientService qui elle même utilise la bibliothèque mORMotClient.js
ngOnInit(): void { this.REST.CRUD('Read','FichierTexte',{NomFichier:"/PersonneTitre.Txt"}).subscribe({ next: (res:any) => {this.PersonneTitre=res}, error: (error) => {this.SuiteValidation(false,error)} }); }
On demande l'initialisation de la liste via un observable.
A sa réalisation celui-ci initialisera la variable PersonneTitre sinon il appellera la fonction SuiteValidation en indiquant l'erreur
Appel via un "Service"
Ce mode d'appel est à utiliser quand la ressource est utilisé par plusieurs composant
Unité "service"
private InfoEcranFamille = new TInfoFamille; infoEcranFamille = new BehaviorSubject<TInfoFamille>(this.InfoEcranFamille);
On déclare “BehaviorSubject”
constructor(private REST:MormotClientService){ this.REST.CRUD('Read','Famille','').subscribe((res:any) => { this.InfoEcranFamille.chargeData(JSON.parse(res.result)); this.emitInfofamille(); }); }
Dans cette version quand la data est accessible la fonction emitInfofamille est appelé, c'est elle qui va propager la data chez les client..
private emitInfofamille() { console.log('EMIT INFO'); if (this.InfoEcranFamille.charge()) {this.infoEcranFamille.next(this.InfoEcranFamille);} };
Dans l'unité cliente
constructor( private restFamille:FamilleService ) {};
On déclare le service
ngOnInit(): void { this.restFamille.infoEcranFamille.subscribe((value) => this.onChangeTableFamille(value)); }
On souscrit à la variable du service, lors de la dispo on peut initialiser une variable ou appeler une fonction qui fera un traitement
onChangeTableFamille(value:TInfoFamille){ if (value.charge()) { console.log('ONCHANGEFAMILLE ',value) this.TableFamille=value.data; this.columnsFamille=value.format; this.FamilleCourante=this.TableFamille[0]; if (value.marker.length>0) { this.TableMakers = []; value.marker.forEach((e) => { console.log('e.id '+e.ID); let mark:TMarkers = {"id":e.ID, "location" : e.location, "tooltip" : {"isShown" : false, "text":e.tooltip}}; this.TableMakers.push(mark); }); console.log('onChangeTableFamille '+JSON.stringify(this.TableMakers)) } } }
Sortie
Exécution correcte
Dans le cas ou l'exécution c'est bien passé le serveur retourne un json contenant le TSQLFamille tel qu'enregistré dans la base.
Erreur lors de l'exécution
Code erreur | Explication possible |
---|---|
400 | Il manque des paramètres à la fonction |
Autres codes | Voir le texte d'explication |