PreviousNext
Help > Développement > Fonctions W-Langage pour AS/400 > Fonctions Appel de Programmes/Procédure > AsExec
AsExec

 Lance l'exécution d'une commande sur AS/400.

Pour appeler une commande de type Retrieve voir les fonctions ASAppelRTV et ASRésultatRTV.

Pour appeler un programme voir la fonction ASLanceRPC.

 

Syntaxe

 

bResult = ASExec(Commande [, Connexion])

 

Paramètres

 

bResult

Booléen - Vrai si la commande a réussi, Faux en cas d'erreur.

Commande

Chaîne - le détail de la commande à exécuter

Connexion [optionnel]

Connexion - nom de la connexion

 

Détail

 

Seules les commandes NON INTERACTIVES (pas d'entrées clavier et de sorties écran) de l'AS/400 peuvent êtres lancées. Cette fonction ne permet pas de récupérer les valeurs de retour de la commande lancée (voir ASAppelRTV et ASRésultatRTV).

 

La fonction ASExec permet d'envoyer toutes sortes de commandes et elle peut être très utile à la gestion des bibliothèques (ADDLIBLE, CHGCURLIB... ) et des fichiers (OVRDBF...).

 

Il est conseillé d'utiliser ASExec lorsque le programme ne retourne pas de valeurs.

ASLanceRPC est à utiliser dans tous les autres cas.

 

Exemples

 

// Envoi du message "Bonjour" à l'utilisateur "QPGMR"

ASExec("SNDMSG MSG('BONJOUR')TOUSR(QPGMR)")

 

// Changement de la bibliothèque courante

ASExec("CHGCURLIB PROD2005")

 

 

// Création d'un récepteur, d'un journal et démarrage de la journalisation avec contrôle des erreurs

 

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

 

 

Dans l'exemple avec AsAppelRTV et ASRésultatRTV on utilise un RTVMBRD pour récupérer des propriétés d'un fichier mais on peut imaginer aussi la création d'un fichier avec un DSPFD

 

ASExec("DSPFD FILE(EASYCOM/SP_CUST) TYPE(*MBR) OUTPUT(*OUTFILE) OUTFILE(QTEMP/SORTIE)")

sortie est une Source de Données

HDéclareExterne("QTEMP/SORTIE",sortie,MaConnexion)

HLitPremier(sortie)

Info("Nombre d'enregistrements :"+sortie.mbnrcd)

Info("Nombre d'enregistrements supprimés :"+sortie.mbndtr)

 

ASExec("DLTF FILE(QTEMP/SORTIE)")