Introducción
Las APIs de IBM i ofrecen muchas funciones interesantes, tanto para la administración como para tareas específicas como la gestión de archivos spool.
Voy a mostrarte brevemente cómo, en unas pocas líneas, puedes llamar fácilmente a una API de IBM i usando NTi.
Elegir una API: QSYS.QCMDCHK
Para este ejemplo, utilizaremos la API QCMDCHK de la librería QSYS. Sirve para comprobar la sintaxis y validez de un comando CL antes de ejecutarlo.
Antes de nada, echemos un vistazo a su documentación aquí
Muestra que QCMDCHK espera dos parámetros como entrada:
- 1 - Cadena de comandos - Entrada - Char(*)
- 2 - Longitud de la cadena de comandos - Entrada - Empaquetado(15, 5)
Estos parámetros corresponden respectivamente al comando a comprobar y a su longitud en número de caracteres.
Uso de NTi
En este ejemplo, llamaremos a esta API para comprobar la validez del siguiente comando:
CRTLIB CLIENTS
Paso 1: Configurar la conexión NTi
En primer lugar, creamos un objeto de tipo NTiConnection desde el que podremos llamar a la API:
var conn = new NTiConnection(connectionString);
conn.Open();
Paso 2: Declaración de parámetros
A continuación tenemos que preparar los distintos parámetros que se pasarán a nuestra API creando una lista de objetos de tipo NTiParameter donde cada elemento de la lista corresponde a un parámetro que se pasará a la API:
var cmd = "CRTLIB CLIENTS";
var parms = new List()
{
new NTiProgramParameter(cmd, cmd.Length),
new NTiProgramParameter(cmd.Length, 15, 5)
};
NTi admite todos los tipos de parámetros: enteros, decimales empaquetados, cadenas de caracteres, etc.
Paso 3: Llamar a la API
Por último, sólo tenemos que llamar a la API:
conn.CallProgram("QSYS", "QCMDCHK", parms);
En resumen
Este código se utiliza para llamar a QCMDCHK:
var conn = new NTiConnection(connectionString);
conn.Open();
var cmd = "CRTLIB CLIENTS";
var parms = new List()
{
new NTiProgramParameter(cmd, cmd.Length),
new NTiProgramParameter(cmd.Length, 15, 5)
};
conn.CallProgram("QSYS", "QCMDCHK", parms);
Cuando se ejecutan estas pocas líneas, hay dos posibilidades:
✅ El comando es válido: En este caso, no se plantea ningún error, código de retorno 0.
❌El comando es incorrecto: En este caso, se produce un error en el lado C# con un código CPFXXXX acompañado de una explicación. Este error se gestiona en función del caso de uso.
Conclusión
Con NTi, para llamar a una API del sistema bastan unas pocas líneas. Se pueden prever todo tipo de procesamientos desarrollando únicamente en C# y sin tener que pasar nunca por una pantalla verde. Al combinarlo con comandos CL y servicios SQL, sus tareas de administración de IBM i pueden automatizarse y llevarse a cabo mediante interfaces de usuario modernas e intuitivas.
La integración de IBM i y sus procedimientos es totalmente transparente. No pierda más tiempo y utilice lenguajes de programación conocidos por todos para asegurar sus inversiones en IBM i y aumentar la eficacia!.
Este caso es relativamente sencillo porque sólo tuvimos que proporcionar dos parámetros, pero todo funciona de la misma manera, independientemente de la complejidad de la API utilizada.
Para saber más y probar NTi, póngase en contacto conmigo.
Rémi Rouillot