Pour gérer les transactions les fichiers doivent être journalisés et contenir l'option JOURNALED=TRUE dans les infos étendues.
Cet exemple commence par créer un récepteur et un journal dans la bibliothèque EASYCOM :
sCmd est une chaîne
sCmd="CRTJRNRCV JRNRCV(EASYCOM/TMPRCV)"
SI PAS ASExec(sCmd) ALORS
SI ExtraitChaîne(ErreurInfo(),2,CR)="CPF7010" ALORS Info("Récepteur déjà présent") SINON Info(ErreurInfo)
FIN
sCmd="CRTJRN JRN(EASYCOM/TMPJRN) JRNRCV(EASYCOM/TMPRCV)"
SI PAS ASExec(sCmd) ALORS
SI ExtraitChaîne(ErreurInfo(),2,CR)="CPF7015" ALORS Info("Le récepteur contient déjà ce poste de journal") SINON Info(ErreurInfo)
FIN
sCmd="STRJRNPF FILE(EASYCOM/SP_CUST) JRN(EASYCOM/TMPJRN)"
SI PAS ASExec(sCmd) ALORS
SI ExtraitChaîne(ErreurInfo(),2,CR)="CPF7030" ALORS Info("Fichier déjà journalisé") SINON Info(ErreurInfo)
FIN
Un parcours simplifié du fichier propose de faire des modifications dans ce dernier, avec ou sans transaction.
Début de transaction
SI SQLTransaction(sqlDébut,PrinciConnexion)
Info("Transaction démarrée")
btransaction=Vrai
FIN
Fin de transaction (COMMIT)
SI SQLTransaction(sqlFin,PrinciConnexion)
Info("Transaction validée")
btransaction=Faux
SINON
Info(ErreurInfo())
FIN
Fin de transaction (ROLLBACK)
SI SQLTransaction(sqlAnnule,PrinciConnexion)
Info("Transaction annulée")
btransaction=Faux
SINON
Info(ErreurInfo())
FIN