AVANT_OUVRE

Description

Cette action est la première appelée lorsqu'on entre en gestion d'un OBJet ; elle n'est appelée qu'une seule fois. La table principale déclarée en gestion d'OBJet est ouverte mais les tables secondaires ne le sont pas encore.

Type d'OBJet

Simple, Tableau, Combiné

Transaction

Non

Utilisation

Le besoin d'utiliser cette action est très rare.
Cette action donne la possibilité d'arrêter le traitement en positionnant OK=0 et éventuellement d'afficher un message dans GMESSAGE.

Exemple : dans l'OBJet des factures de ventes ( SUBSIHA )

Dans l'action AVANT_OUVRE, on récupère le niveau de localité des tables secondaires ouvertes. Ceci est nécessaire, lorsqu'il y a picking sur une même table dans l'OBJet appelant et l'OBJet courant. Ensuite, l'OBJet ouvre les tables secondaires. Puis, dans l'action OUVRE, on force l'ouverture de la table utilisée dans le picking, si celle-ci n'a pas été ouverte par l'OBJet.

$AVANT_OUVRE
Global Integer GFILELEVSOP
Raz GFILELEVSOP
If clalev([F:SOP])<>0 GFILELEVSOP=filelev([F:SOP]) Endif
Return

$OUVRE
# La table SOP a été ouverte dans un autre sous-prog (niveau différent)
# Il faut la réouvrir pour pouvoir faire un nouveau 'Link'
If filelev([F:SOP]) = GFILELEVSOP
   Local File SORDERP [SOP]
Endif
Return