Exécuter une commande CL IBM i (AS/400) en C# (.NET) avec NTi

Introduction

Ce tutoriel montre comment exécuter une commande CL sur un IBM i (AS/400) depuis une application C# (.NET) en utilisant NTi Data Provider.

Les commandes CL (Control Language) permettent d’interagir directement avec le système IBM i pour automatiser des actions comme la création de bibliothèques, la gestion des objets ou l’exécution de traitements batch.

Grâce à NTi, il est possible d’exécuter ces commandes sans passer par une interface 5250, directement depuis du code .NET moderne.


Étape 1 - Ouvrir la connexion

Déclarez une instance de NTiConnection et ouvrez la connexion :

using var conn = new NTiConnection("server=serverName;user=userName;password=password");
conn.Open();

💡 L'utilisation de using var garantit que la connexion sera automatiquement fermée et libérée à la fin du bloc, même en cas d'erreur.


Étape 2 - Exécuter une commande CL

Utilisez la méthode ExecuteClCommand() de NTiConnection pour exécuter une commande CL :

conn.ExecuteClCommand("CRTLIB LIB(MYLIB) TEXT('My new library')");

Étape 3 - Gérer les erreurs

En cas d'erreur, NTi lève une exception de type NTiException contenant le message d'erreur IBM i. Encapsulez l'appel dans un bloc try/catch pour l'intercepter :

try
{
    conn.ExecuteClCommand("CRTLIB LIB(MYLIB) TEXT('My new library')");
}
catch (NTiException ex)
{
    Console.WriteLine(ex.Message);
}

Récapitulatif

Code complet pour exécuter une commande CL depuis .NET avec NTi :

using var conn = new NTiConnection("server=serverName;user=userName;password=password");
conn.Open();

try
{
    conn.ExecuteClCommand("CRTLIB LIB(MYLIB) TEXT('My new library')");
}
catch (NTiException ex)
{
    Console.WriteLine(ex.Message);
}

Et maintenant ?