En este módulo, desarrollaremos un sistema de gestión de inventarios utilizando RPG. Este estudio de caso te permitirá aplicar los conceptos aprendidos en los módulos anteriores y te dará una visión práctica de cómo construir una aplicación completa en RPG.

Objetivos del Estudio de Caso

  • Comprender los requisitos del sistema de gestión de inventarios.
  • Diseñar la estructura de datos necesaria.
  • Implementar las funcionalidades básicas del sistema.
  • Probar y depurar el sistema.

Requisitos del Sistema

El sistema de gestión de inventarios debe cumplir con los siguientes requisitos:

  1. Agregar nuevos productos al inventario.
  2. Actualizar la información de los productos existentes.
  3. Eliminar productos del inventario.
  4. Consultar la información de los productos.
  5. Generar reportes de inventario.

Diseño de la Estructura de Datos

Para este sistema, utilizaremos una tabla de base de datos para almacenar la información de los productos. La estructura de la tabla será la siguiente:

Campo Tipo de Dato Descripción
ProductID CHAR(10) Identificador único del producto
ProductName CHAR(50) Nombre del producto
Quantity INT Cantidad en inventario
Price DECIMAL(10,2) Precio del producto

Implementación del Sistema

  1. Crear la Tabla de Productos

Primero, crearemos la tabla de productos en la base de datos.

CREATE TABLE Products (
    ProductID CHAR(10) PRIMARY KEY,
    ProductName CHAR(50),
    Quantity INT,
    Price DECIMAL(10,2)
);

  1. Programa para Agregar Productos

A continuación, implementaremos un programa en RPG para agregar nuevos productos al inventario.

H DFTACTGRP(*NO) ACTGRP(*NEW)

D ProductID       S             10A
D ProductName     S             50A
D Quantity        S             10I 0
D Price           S             10P 2

 /FREE
    // Solicitar datos del producto
    dsply 'Ingrese el ID del producto: ' '' ProductID;
    dsply 'Ingrese el nombre del producto: ' '' ProductName;
    dsply 'Ingrese la cantidad: ' '' Quantity;
    dsply 'Ingrese el precio: ' '' Price;

    // Insertar datos en la tabla
    exec sql
        INSERT INTO Products (ProductID, ProductName, Quantity, Price)
        VALUES (:ProductID, :ProductName, :Quantity, :Price);

    if sqlcod = 0;
        dsply 'Producto agregado exitosamente.';
    else;
        dsply 'Error al agregar el producto.';
    endif;

    *inlr = *on;
 /END-FREE

  1. Programa para Actualizar Productos

Implementaremos un programa para actualizar la información de los productos existentes.

H DFTACTGRP(*NO) ACTGRP(*NEW)

D ProductID       S             10A
D ProductName     S             50A
D Quantity        S             10I 0
D Price           S             10P 2

 /FREE
    // Solicitar ID del producto a actualizar
    dsply 'Ingrese el ID del producto a actualizar: ' '' ProductID;

    // Solicitar nuevos datos del producto
    dsply 'Ingrese el nuevo nombre del producto: ' '' ProductName;
    dsply 'Ingrese la nueva cantidad: ' '' Quantity;
    dsply 'Ingrese el nuevo precio: ' '' Price;

    // Actualizar datos en la tabla
    exec sql
        UPDATE Products
        SET ProductName = :ProductName, Quantity = :Quantity, Price = :Price
        WHERE ProductID = :ProductID;

    if sqlcod = 0;
        dsply 'Producto actualizado exitosamente.';
    else;
        dsply 'Error al actualizar el producto.';
    endif;

    *inlr = *on;
 /END-FREE

  1. Programa para Eliminar Productos

Implementaremos un programa para eliminar productos del inventario.

H DFTACTGRP(*NO) ACTGRP(*NEW)

D ProductID       S             10A

 /FREE
    // Solicitar ID del producto a eliminar
    dsply 'Ingrese el ID del producto a eliminar: ' '' ProductID;

    // Eliminar producto de la tabla
    exec sql
        DELETE FROM Products
        WHERE ProductID = :ProductID;

    if sqlcod = 0;
        dsply 'Producto eliminado exitosamente.';
    else;
        dsply 'Error al eliminar el producto.';
    endif;

    *inlr = *on;
 /END-FREE

  1. Programa para Consultar Productos

Implementaremos un programa para consultar la información de los productos.

H DFTACTGRP(*NO) ACTGRP(*NEW)

D ProductID       S             10A
D ProductName     S             50A
D Quantity        S             10I 0
D Price           S             10P 2

 /FREE
    // Solicitar ID del producto a consultar
    dsply 'Ingrese el ID del producto a consultar: ' '' ProductID;

    // Consultar datos del producto
    exec sql
        SELECT ProductName, Quantity, Price
        INTO :ProductName, :Quantity, :Price
        FROM Products
        WHERE ProductID = :ProductID;

    if sqlcod = 0;
        dsply 'Nombre del producto: ' ProductName;
        dsply 'Cantidad: ' Quantity;
        dsply 'Precio: ' Price;
    else;
        dsply 'Producto no encontrado.';
    endif;

    *inlr = *on;
 /END-FREE

  1. Generar Reportes de Inventario

Implementaremos un programa para generar reportes de inventario.

H DFTACTGRP(*NO) ACTGRP(*NEW)

D ProductID       S             10A
D ProductName     S             50A
D Quantity        S             10I 0
D Price           S             10P 2

 /FREE
    // Consultar todos los productos
    exec sql
        DECLARE C1 CURSOR FOR
        SELECT ProductID, ProductName, Quantity, Price
        FROM Products;

    exec sql
        OPEN C1;

    exec sql
        FETCH NEXT FROM C1 INTO :ProductID, :ProductName, :Quantity, :Price;

    dow sqlcod = 0;
        dsply 'ID: ' ProductID;
        dsply 'Nombre: ' ProductName;
        dsply 'Cantidad: ' Quantity;
        dsply 'Precio: ' Price;

        exec sql
            FETCH NEXT FROM C1 INTO :ProductID, :ProductName, :Quantity, :Price;
    enddo;

    exec sql
        CLOSE C1;

    *inlr = *on;
 /END-FREE

Pruebas y Depuración

Es importante probar cada funcionalidad del sistema para asegurarse de que todo funciona correctamente. Aquí hay algunos pasos para realizar pruebas:

  1. Agregar varios productos al inventario y verificar que se agreguen correctamente.
  2. Actualizar la información de algunos productos y verificar que los cambios se reflejen en la base de datos.
  3. Eliminar algunos productos y verificar que se eliminen correctamente.
  4. Consultar la información de varios productos y verificar que los datos sean correctos.
  5. Generar un reporte de inventario y verificar que incluya todos los productos con la información correcta.

Conclusión

En este estudio de caso, hemos desarrollado un sistema de gestión de inventarios utilizando RPG. Hemos cubierto la creación de la estructura de datos, la implementación de las funcionalidades básicas y la generación de reportes. Este ejercicio te ha permitido aplicar los conceptos aprendidos en los módulos anteriores y te ha dado una visión práctica de cómo construir una aplicación completa en RPG.

En el próximo módulo, exploraremos cómo integrar RPG con tecnologías modernas, como servicios web y APIs.

© Copyright 2024. Todos los derechos reservados