1ère méthode pour parcourir la collection résultat (conseillée):
sObjname est une chaîne sur 10;
sObjlibname est une chaîne sur 10;
sObjname = "EASYCOMLOG";
sObjlibname = "EASYCOM";
sFullQualifiedObjName est une chaîne sur 20;
sFullQualifiedObjName = Complète(sObjname,10," ") + Complète(sObjlibname,10," ");
sObjType est une chaîne = "*FILE";
sMemberName est une chaîne = "*ALL";
sResLockSkel est une chaîne = [
Job Name . . . . . . . . . . . . . . . . . . . : %1
Job Username . . . . . . . . . . . . . . . . . : %2
Job Number . . . . . . . . . . . . . . . . . . : %3
Lock State . . . . . . . . . . . . . . . . . . : %4
Lock Status . . . . . . . . . . . . . . . . . . : %5
Lock Status Desc . . . . . . . . . . . . . . . : %6
Lock Type . . . . . . . . . . . . . . . . . . . : %7
Lock Type Desc . . . . . . . . . . . . . . . . : %8
Member Name . . . . . . . . . . . . . . . . . . : %9
Share . . . . . . . . . . . . . . . . . . . . . : %10
Share Desc . . . . . . . . . . . . . . . . . . : %11
Lock Scope . . . . . . . . . . . . . . . . . . : %12
Lock Scope Desc . . . . . . . . . . . . . . . . : %13
Thread Identifier . . . . . . . . . . . . . . . : %14
Lock %15 on %16
]
lockColl est une ASObjLockCollection ;
HOuvreConnexion(MaConnexionpower8)
//SI PAS ASObjLocks(lockColl, MaConnexionpower8,sObjname, sObjlibname,sObjType,sMemberName,"","*SYSBAS") ALORS
SI PAS ASObjLocks(lockColl, MaConnexionpower8,sObjname, sObjlibname,sObjType) ALORS
//SI PAS ASVerrousObjets(lockColl, MaConnexionpower8,"TSECOFR", "QUSRSYS","*MSGQ","","","*SYSBAS") ALORS
//SI PAS ASVerrousObjets(lockColl, MaConnexionpower8,"QCQMONMQ", "QSVMSS","*MSGQ","","","*") ALORS
Erreur(ErreurInfo(errComplet))
SINON
nInd est un entier
nInd = 1
POUR TOUT objlock DE lockColl
sResLock est une chaîne;
sResLock = ChaîneConstruit(sResLockSkel,
objlock.JobName,
objlock.jobUsername,
objlock.JobNumber,
objlock.LockState,
objlock.LockStatus,
objlock.lockStatusDescription,
objlock.locktype,
objlock.locktypeDescription,
objlock.MemberName,
objlock.share,
objlock.shareDescription,
objlock.LockScope,
objlock.lockScopeDescription,
objlock.threadId,
nInd,
lockColl..CollectionASObjLock..Occurrence)
Info(sResLock);
nInd++
FIN
FIN
2ème méthode pour parcourir la collection résultat :
//*** Récupéré lock objet ***/
sObjname est une chaîne sur 10;
sObjlibname est une chaîne sur 10;
sObjname = "EASYCOMLOG";
sObjlibname = "EASYCOM";
sFullQualifiedObjName est une chaîne sur 20;
sFullQualifiedObjName = Complète(sObjname,10," ") + Complète(sObjlibname,10," ");
sObjType est une chaîne = "*FILE";
sMemberName est une chaîne = "*ALL";
sResLockSkel est une chaîne = [
Job Name . . . . . . . . . . . . . . . . . . . : %1
Job Username . . . . . . . . . . . . . . . . . : %2
Job Number . . . . . . . . . . . . . . . . . . : %3
Lock State . . . . . . . . . . . . . . . . . . : %4
Lock Status . . . . . . . . . . . . . . . . . . : %5
Lock Status Desc . . . . . . . . . . . . . . . : %6
Lock Type . . . . . . . . . . . . . . . . . . . : %7
Lock Type Desc . . . . . . . . . . . . . . . . : %8
Member Name . . . . . . . . . . . . . . . . . . : %9
Share . . . . . . . . . . . . . . . . . . . . . : %10
Share Desc . . . . . . . . . . . . . . . . . . : %11
Lock Scope . . . . . . . . . . . . . . . . . . : %12
Lock Scope Desc . . . . . . . . . . . . . . . . : %13
Thread Identifier . . . . . . . . . . . . . . . : %14
Lock %15 on %16
]
lockColl est une ASObjLockCollection ;
HOuvreConnexion(MaConnexionpower8)
SI PAS ASObjLocks(lockColl, MaConnexionpower8,sObjname, sObjlibname,sObjType,sMemberName,"","*SYSBAS") ALORS
//SI PAS ASObjLocks(lockColl, MaConnexionpower8,sObjname, sObjlibname,sObjType) ALORS
//SI PAS ASVerrousObjets(lockColl, MaConnexionpower8,"TSECOFR", "QUSRSYS","*MSGQ","","","*SYSBAS") ALORS
//SI PAS ASVerrousObjets(lockColl, MaConnexionpower8,"QCQMONMQ", "QSVMSS","*MSGQ","","","*") ALORS
Erreur(ErreurInfo(errComplet))
SINON
POUR I = 1 _À_ lockColl..CollectionASObjLock..Occurrence
sResLock est une chaîne;
objlock est un ASObjLock;
objlock = lockColl[I];
sResLock = ChaîneConstruit(sResLockSkel,
objlock.JobName,
objlock.jobUsername,
objlock.JobNumber,
objlock.LockState,
objlock.LockStatus,
objlock.lockStatusDescription,
objlock.locktype,
objlock.locktypeDescription,
objlock.MemberName,
objlock.share,
objlock.shareDescription,
objlock.LockScope,
objlock.lockScopeDescription,
objlock.threadId,
I,
lockColl..CollectionASObjLock..Occurrence)
Info(sResLock);
FIN
FIN