Tutoriels

Appeler l'API QSYS.QCMDCHK de l'IBM i depuis .NET avec NTi

ParRémi Rouillot

image d’illustration de l’article

Contenu détaillé de l’article:Appeler l'API QSYS.QCMDCHK de l'IBM i depuis .NET avec NTi

Les APIs IBM i offrent de nombreuses fonctionnalités pour l'administration système et la gestion des fichiers spoules. Cet article montre comment appeler l'API QCMDCHK depuis .NET avec NTi Data Provider, en quelques lignes de C# seulement.

Choix de l'API : QSYS.QCMDCHK

L'API QCMDCHK de la bibliothèque QSYS permet de vérifier la syntaxe et la validité d'une commande CL avant exécution. Sa documentation IBM indique qu'elle attend deux paramètres en entrée :

Paramètre Type IBM i Direction Role
Command string Char(*) I/O commande à vérifier
Length of command string Packed(15,5) Input longueur en nombre de caractères

Appel depuis .NET avec NTi

Dans cet exemple, l'API est appelée pour valider la commande suivante :

CRTLIB CLIENTS

Étape 1 - Établir la connexion

var conn = new NTiConnection(connectionString);
conn.Open();

Étape 2 - Déclarer les paramètres

var cmd = "CRTLIB CLIENTS";          
var parms = new List<NTiProgramParameter>()
{
    new NTiProgramParameter(cmd, cmd.Length),
    new NTiProgramParameter(cmd.Length, 15, 5)
};

NTi prend en charge tous les types de paramètres : entiers, décimal packé, chaînes de caractères.

Étape 3 - Appeler l'API

conn.CallProgram("QSYS", "QCMDCHK", parms);

En résumé

L'appel de QCMDCHK est donc réalisé à partir de ce code:

var conn = new NTiConnection(connectionString);
conn.Open();

var cmd = "CRTLIB CLIENTS";
var parms = new List<NTiProgramParameter>()
{
    new NTiProgramParameter(cmd, cmd.Length),
    new NTiProgramParameter(cmd.Length, 15, 5)
};

conn.CallProgram("QSYS", "QCMDCHK", parms);

Deux résultats possibles à l'exécution :

Commande valide - aucune erreur levée, code de retour à 0.

Commande incorrecte - une exception est levée côté C# avec un code CPFXXXX et son explication.

Conclusion

Avec NTi Data Provider, appeler une API système IBM i se fait en quelques lignes de C#, sans passer par un écran vert. En combinant les APIs système, les commandes CL et les services SQL, les tâches d'administration IBM i peuvent s'automatiser et s'intégrer dans des interfaces modernes.

Cet exemple utilise deux paramètres, mais le principe reste identique quelle que soit la complexité de l'API appelée.


Rémi Rouillot

Démarrez dès maintenant

Récupérez votre licence d’essai gratuite en ligne
et connectez vos applications .NET à votre IBM i en quelques minutes.

Créez votre compte

Connectez-vous au portail Aumerial, générez votre licence d’essai et activez NTi sur votre IBM i en quelques instants.

Démarrer l’essai

Ajouter NTi à votre projet

Installez NTi Data Provider depuis NuGet dans Visual Studio et référencez-le dans votre projet .NET.

Voir la documentation

Besoin d’aide ?

Si vous avez des questions sur nos outils ou sur les options de licence, notre équipe est disponible pour vous aider.

Nous contacter
30 jours d’essai gratuit activation immédiate sans engagement aucun composant à installer côté IBM i