...
Lorsque l'objet métier traite les NOTES:
...
L'import peut importer des notes en CREATION uniquement (pas de modification de notes, uniquement création de note lors de la création ou modification d'une entité). Il faut indiquer le nom ODBC : NUMERONOTE ou le nom de la colonne.
...
L'export écrit le texte brut de la note dans la colonne.
Lorsque l'objet métier traite les FICHIERS JOINTS:
...
L'import peut attacher des fichiers joints en CREATION uniquement (pas de modification de fichier joint, uniquement création de lors de la création ou modification d'une entité). Il faut indiquer le nom de la colonne : JOINT
...
L'export écrit les noms des fichiers joints dans la colonne.
Remarques :
...
L'état actuel des objets métier ne permet pas de traiter les rubriques.
Un indicateur dans l'objet métier indique si la table peut être importée ou non par tableur.
Objet métier : gestion des notes
...
La gestion de notes dans les objets métiers se fait un deux phases :
...
Description des 'notes' (ou texte) dans l'objet métier pour donner des caractéristiques à ces
...
notes (indiquer quel est le champ de note, son CE associé, l'objet,…)
Chez l'appelant qui affiche ou saisi des notes pour gérer l'interaction
La phase 'Description' se fait par des fonctions à implémenter dans l'objet métier:
...
Indiquer les champs 'notes' dans la Get_xxx_FieldProperties
Ajouter une fonction Get_xxx_FieldNoteProperties qui donne des propriétés spécifiques aux notes
Ajouter une fonction par note gérée Get_xxx_FieldNote_yyyy
La phase 'Chez l'appelant' va dépendre du niveau de complexité et de rendu de la note : selon que la note est gérée en fenêtre superposée, en affichage rtf dans le masque, en saisie rtf dans le masque.
...
Le code à mettre chez l'appelant:
...
Déclarer A5PMCHK001.dhop
ZoomCreationRes doit faire appel à
A5_ChkNote_Flush() ou un appel à chaque note individuelle via la fonction
A5_ChkNote_Flush(Get_xxx_FieldNote_yyy())
...
ZoomModificationRes doit faire appel à
A5_ChkNote_Flush() ou un appel à chaque note individuelle via la fonction
A5_ChkNote_Flush(Get_xxx_FieldNote_yyy())
...
ZoomConsult lors du traitement de la touche d'affichage de note (K_SF6 en général) doit faire appel à
A5_ChkNote_Display(RSduZoom.xxx,Get_xxx_FieldNote_yyy())
...
ZoomArret lors du traitement de la touche de saisie de note (K_SF6 en général) doit faire appel à
A5_ChkNote_Input(RSduZoom.xxx,Get_xxx_FieldNote_yyy())
XmeToolbarSetButtonInfo(IdOutilZoom,“NOTE”, Condition(RSduZoom.CeNote=OUI, “<BITMAP>NOTE” ,“<BITMAP>NOTE_N”))
Remarques:
...
le module a5pmnotejoint ne sert plus dans le zoom
les anciennes instructions Note_debut, Note_Reinit, Note_chargement, Note_suppression ne servent plus
l'attributions/modification du numéro de note est fait par a5pmchk001 lors du passage dans le moteur sql
le champ CE est modifié dynamiquement à l'appel de A5_ChkNote_Input permettant d'utiliser sa valeur pour les bitmaps
Cas d'une note avec saisie RTF dans le masque
...
Le code à mettre chez l'appelant:
...
ZoomDebut doit faire appel à (pour indiquer un comportement de note différent que la fenêtre superposée)
;zoom spécial : la note est saisie dans le masque du zoom
A5_ChkNote_SetMode_MasqueAppelant(Get_xxx_FieldNote_yyy())
...
ZoomCreationRes doit faire appel à
A5_ChkNote_Flush() ou un appel à chaque note individuelle via la fonction
...
A5_ChkNote_PrepareDuplication(RSduZoom.yyy, Get_xxx_FieldNote_yyy()) EndIf
...
ZoomModificationRes doit faire appel à
A5_ChkNote_Display_ZoomMasqueAppelant(RSduZoom.xxx,Get_xxx_FieldNote_yyy())
...
ZoomAvantConsult doit faire appel à
A5_ChkNote_Display_ZoomMasqueAppelant(RSduZoom.xxx,Getxxx_FieldNote_yyy())
Remarques:
...
le module a5pmnotejoint ne sert plus dans le zoom
les anciennes instructions Note_debut, Note_Reinit, Note_chargement, Note_suppression, Note_Maj_Etat_Charge ne servent plus
l'attributions/modification du numéro de note est fait par a5pmchk001 lors du passage dans le moteur sql
le champ CE est modifié dynamiquement à l'appel de A5_ChkNote_Input permettant d'utiliser sa valeur pour les bitmaps
mw.rtfnom cest toujours utilisé pour l'affichage rtf de la note
Objet métier : gestion des fichiers joints
...
Le mécanisme est strictement similaire aux notes. Le terme NOTE est remplacé par ATTACH.
...
Objet métier : centralisation des fonctions de réservations d'entité
...
Le passage en objet métier entraîne une harmonisation des règles de nommage. Ainsi les fonctions existent sur le même schéma selon les règles suivantes:
...
Reservation_XXX_YYYY(XXX,err,f) correspond à une gestion de réservation par enregistrement XXX complet
Res_XXX_YYYY(champ1,err,f) correspond à une gestion de réservation par champ de la réservation uniquement
YYYY reflète l'action (réserver, libérer, …) : Lock ou UnLock ou Share ou Shift
La chaîne de réservation est construite à un endroit unique : Get_XXX_Reservation
Exemples:
...
Attention, cela implique que toutes les anciennes fonctions de réservation sont probablement renommées, mais sont écrites sous la même forme.
...
(Exemple : GTTMCHKT020) La mise en oeuvre passe par:
...
L'ajout d'une fonction 'Set_xxx_Cache_Mode' qui permet d'activer le cache pour l'entité. Cette fonction fait simplement appel a une fonction commune.
...
L'ajout d'une fonction 'Put_xxx_Cache_Data' qui permet d'ajouter un enregistrement au cache (pour permettre à l'appelant de lire en boucle des éléments et les placer en cache). Cette fonction fait simplement appel a une fonction commune.
...
La modification de l'écriture de la fonction LOAD.
Un premier test pour déterminer si le cache est actif ou non
Si le cache est actif, positionnement de la clé primaire pour la recherche d’existence dans le
cacheRecherche dans le cache, et retour à 0 si trouvé dans le cache
Sinon, lecture de l'enregistrement, puis mise en cache en cas de réussite
Remarques:
...
La mise en cache fonctionne pour une entité complète (allcolumns=true) ou non; chaque 'mode' ayant son propre cache
...
Seuls les éléments existants sont mis en cache (pas de cache sur les recherches en échec)
Seules les fonctions suivantes bénéficient du cache : Load_xxx, Give_xxx
Mise en oeuvre chez l'appelant
...