...
Bloc de code |
---|
public function int A5_Proc_Shift_SQL_ (instanceRecordSql, Applic, item, err, txt, f) ; Cette fonction est utilisée pour réserver l'entité "item" après un partage. ; "err" <> 0 provoque le bouclage tant que l'opérateur n'a pas abandonné. ; "err" = 0 n'entraîne que 10 secondes (en interactif) ou 10 minutes (en batch) de bouclage. ; le paramètre "txt" est utilisé en tant que "p3" pour l'affichage du message d'erreur. ; Le paramètre "f" permet de modifier le fonctionnement : ; - si f = nostatus, la fonction ne rend la main que si réservation ok. ; - si f = nowait, la fonction rend immédiatement la main après le premier essai. ; Cas particulier G3 à vérifier : ; si err = 0 et txt = ' ' et f = nostatus, la fonction boucle jusqu'au succès. ; 0 ok ; <> 0 échec de la réservation RecordSqlPtr instanceRecordSql 1 applic >A5DD.dhsd Ap ; Nom de l'application 1 item 256 ; chaîne à partager 1 err 5,0= 0 ; numéro du message d'erreur 1 txt 256= ' ' ; texte complément du message d'erreur 1 f N = 0 ; 0 pour fonctionnement normal ; nostatus pour retour que si ok ; nowait pour retour immédiat si réservé |
Comment appeler - exemple d’appel
L’appel doit se faire via les fonctions de l’objet métier (voir chapitre plus haut)
Voici un exemple
Bloc de code |
---|
;*
Public Procedure Maj_Compteur_article(ref,cpt,ReserverArt)
; Mise à jour d'une comptauer article pour quantité 'cpt'
1 ref >GTFDD.dhsd REF ; référence article
1 cpt >GTFDD.dhsd RESQTE ; quantité
1 ReserverArt 1,0 ; =0 si pas de résevation,= 1 si RES, =2 si shift
1A x X ; retour de fonction
BeginP
if cpt <> 0
; met à jour le compteur article
switch ReserverArt
case 1
x = Res_Art_Lock( ref, 0, NoWait)
if x = H_RESERVED
x = Res_Art_Shift ( ref, 0, NoWait)
ReserverArt = 2 ; Pour remettre en l'état
endif
case 2
x = Res_Art_Shift( ref, 0, NoWait)
default
x = 0
endswitch
if x = 0
if Seek_ARTicle(RS_Article,ref) = 0
RS_Article.CptA = cpt
Update_Article(RS_Article)
endif
switch ReserverArt
case 1
Res_Art_Unlock(ref)
case 2
Res_Art_Share(ref)
endswitch
else
Log_Ano(2269,ref)
endif
endif
EndP
|