Comment savoir dans un bout de code si une transaction est en cours?

SOLVED

Je suis en train de développer un bout de code dans un point d'entrée (EM V11 P7) et je souhaite écrire une condition du type: 

If [aucune transaction en cours]

Trbegin [F:MATABLE]

Endif

Comment effectuer cette vérification? 

  • +1
    verified answer

    La variable système [S]Adxlog permet de savoir si une transaction est en cours ou non. 

    Elle renvoie l'une de ces deux valeurs : 

    • 0 si aucune transaction n'est en cours
    • 1 si une transaction est en cours. 

    Du coup, il faut écrire quelque chose du type : 


    Local Integer YTRBEG : [L]YTRBEG = 0

    If [S]Adxlog <> 1

           Trbegin [F:MATABLE]

           [L]YTRBEG = 1 : # Il faut garder l'info qu'on a lancé nous même un Trbegin,

    # donc qu'il nous revient de faire un Commit / Rollback

    Endif

    ... Write.. Rewrite..

    Puis: 

    If [L]YTRBEG = 1

    If [L]YOK : Commit : Else : Rollback : Endif

    Endif