PreviousNext
Help > Développement > Fonctions W-Langage pour AS/400 > Fonctions Gestion des locks > ASObjLocks  >
Exemple


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